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 remotebuildexecution provides access to the Remote Build Execution API.
8//
9// For product documentation, see: https://cloud.google.com/remote-build-execution/docs/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/remotebuildexecution/v2"
16//   ...
17//   ctx := context.Background()
18//   remotebuildexecutionService, err := remotebuildexecution.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//   remotebuildexecutionService, err := remotebuildexecution.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//   remotebuildexecutionService, err := remotebuildexecution.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package remotebuildexecution // import "google.golang.org/api/remotebuildexecution/v2"
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 = "remotebuildexecution:v2"
75const apiName = "remotebuildexecution"
76const apiVersion = "v2"
77const basePath = "https://remotebuildexecution.googleapis.com/"
78const mtlsBasePath = "https://remotebuildexecution.mtls.googleapis.com/"
79
80// OAuth2 scopes used by this API.
81const (
82	// View and manage your data across Google Cloud Platform services
83	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
84)
85
86// NewService creates a new Service.
87func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
88	scopesOption := option.WithScopes(
89		"https://www.googleapis.com/auth/cloud-platform",
90	)
91	// NOTE: prepend, so we don't override user-specified scopes.
92	opts = append([]option.ClientOption{scopesOption}, opts...)
93	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
94	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
95	client, endpoint, err := htransport.NewClient(ctx, opts...)
96	if err != nil {
97		return nil, err
98	}
99	s, err := New(client)
100	if err != nil {
101		return nil, err
102	}
103	if endpoint != "" {
104		s.BasePath = endpoint
105	}
106	return s, nil
107}
108
109// New creates a new Service. It uses the provided http.Client for requests.
110//
111// Deprecated: please use NewService instead.
112// To provide a custom HTTP client, use option.WithHTTPClient.
113// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
114func New(client *http.Client) (*Service, error) {
115	if client == nil {
116		return nil, errors.New("client is nil")
117	}
118	s := &Service{client: client, BasePath: basePath}
119	s.ActionResults = NewActionResultsService(s)
120	s.Actions = NewActionsService(s)
121	s.Blobs = NewBlobsService(s)
122	s.Operations = NewOperationsService(s)
123	s.V2 = NewV2Service(s)
124	return s, nil
125}
126
127type Service struct {
128	client    *http.Client
129	BasePath  string // API endpoint base URL
130	UserAgent string // optional additional User-Agent fragment
131
132	ActionResults *ActionResultsService
133
134	Actions *ActionsService
135
136	Blobs *BlobsService
137
138	Operations *OperationsService
139
140	V2 *V2Service
141}
142
143func (s *Service) userAgent() string {
144	if s.UserAgent == "" {
145		return googleapi.UserAgent
146	}
147	return googleapi.UserAgent + " " + s.UserAgent
148}
149
150func NewActionResultsService(s *Service) *ActionResultsService {
151	rs := &ActionResultsService{s: s}
152	return rs
153}
154
155type ActionResultsService struct {
156	s *Service
157}
158
159func NewActionsService(s *Service) *ActionsService {
160	rs := &ActionsService{s: s}
161	return rs
162}
163
164type ActionsService struct {
165	s *Service
166}
167
168func NewBlobsService(s *Service) *BlobsService {
169	rs := &BlobsService{s: s}
170	return rs
171}
172
173type BlobsService struct {
174	s *Service
175}
176
177func NewOperationsService(s *Service) *OperationsService {
178	rs := &OperationsService{s: s}
179	return rs
180}
181
182type OperationsService struct {
183	s *Service
184}
185
186func NewV2Service(s *Service) *V2Service {
187	rs := &V2Service{s: s}
188	return rs
189}
190
191type V2Service struct {
192	s *Service
193}
194
195// BuildBazelRemoteExecutionV2Action: An `Action` captures all the
196// information about an execution which is required to reproduce it.
197// `Action`s are the core component of the [Execution] service. A single
198// `Action` represents a repeatable action that can be performed by the
199// execution service. `Action`s can be succinctly identified by the
200// digest of their wire format encoding and, once an `Action` has been
201// executed, will be cached in the action cache. Future requests can
202// then use the cached result rather than needing to run afresh. When a
203// server completes execution of an Action, it MAY choose to cache the
204// result in the ActionCache unless `do_not_cache` is `true`. Clients
205// SHOULD expect the server to do so. By default, future calls to
206// Execute the same `Action` will also serve their results from the
207// cache. Clients must take care to understand the caching behaviour.
208// Ideally, all `Action`s will be reproducible so that serving a result
209// from cache is always desirable and correct.
210type BuildBazelRemoteExecutionV2Action struct {
211	// CommandDigest: The digest of the Command to run, which MUST be
212	// present in the ContentAddressableStorage.
213	CommandDigest *BuildBazelRemoteExecutionV2Digest `json:"commandDigest,omitempty"`
214
215	// DoNotCache: If true, then the `Action`'s result cannot be cached, and
216	// in-flight requests for the same `Action` may not be merged.
217	DoNotCache bool `json:"doNotCache,omitempty"`
218
219	// InputRootDigest: The digest of the root Directory for the input
220	// files. The files in the directory tree are available in the correct
221	// location on the build machine before the command is executed. The
222	// root directory, as well as every subdirectory and content blob
223	// referred to, MUST be in the ContentAddressableStorage.
224	InputRootDigest *BuildBazelRemoteExecutionV2Digest `json:"inputRootDigest,omitempty"`
225
226	// Platform: The optional platform requirements for the execution
227	// environment. The server MAY choose to execute the action on any
228	// worker satisfying the requirements, so the client SHOULD ensure that
229	// running the action on any such worker will have the same result. A
230	// detailed lexicon for this can be found in the accompanying
231	// platform.md. New in version 2.2: clients SHOULD set these platform
232	// properties as well as those in the Command. Servers SHOULD prefer
233	// those set here.
234	Platform *BuildBazelRemoteExecutionV2Platform `json:"platform,omitempty"`
235
236	// Salt: An optional additional salt value used to place this `Action`
237	// into a separate cache namespace from other instances having the same
238	// field contents. This salt typically comes from operational
239	// configuration specific to sources such as repo and service
240	// configuration, and allows disowning an entire set of ActionResults
241	// that might have been poisoned by buggy software or tool failures.
242	Salt string `json:"salt,omitempty"`
243
244	// Timeout: A timeout after which the execution should be killed. If the
245	// timeout is absent, then the client is specifying that the execution
246	// should continue as long as the server will let it. The server SHOULD
247	// impose a timeout if the client does not specify one, however, if the
248	// client does specify a timeout that is longer than the server's
249	// maximum timeout, the server MUST reject the request. The timeout is a
250	// part of the Action message, and therefore two `Actions` with
251	// different timeouts are different, even if they are otherwise
252	// identical. This is because, if they were not, running an `Action`
253	// with a lower timeout than is required might result in a cache hit
254	// from an execution run with a longer timeout, hiding the fact that the
255	// timeout is too short. By encoding it directly in the `Action`, a
256	// lower timeout will result in a cache miss and the execution timeout
257	// will fail immediately, rather than whenever the cache entry gets
258	// evicted.
259	Timeout string `json:"timeout,omitempty"`
260
261	// ForceSendFields is a list of field names (e.g. "CommandDigest") to
262	// unconditionally include in API requests. By default, fields with
263	// empty values are omitted from API requests. However, any non-pointer,
264	// non-interface field appearing in ForceSendFields will be sent to the
265	// server regardless of whether the field is empty or not. This may be
266	// used to include empty fields in Patch requests.
267	ForceSendFields []string `json:"-"`
268
269	// NullFields is a list of field names (e.g. "CommandDigest") to include
270	// in API requests with the JSON null value. By default, fields with
271	// empty values are omitted from API requests. However, any field with
272	// an empty value appearing in NullFields will be sent to the server as
273	// null. It is an error if a field in this list has a non-empty value.
274	// This may be used to include null fields in Patch requests.
275	NullFields []string `json:"-"`
276}
277
278func (s *BuildBazelRemoteExecutionV2Action) MarshalJSON() ([]byte, error) {
279	type NoMethod BuildBazelRemoteExecutionV2Action
280	raw := NoMethod(*s)
281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
282}
283
284// BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities: Describes
285// the server/instance capabilities for updating the action cache.
286type BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities struct {
287	UpdateEnabled bool `json:"updateEnabled,omitempty"`
288
289	// ForceSendFields is a list of field names (e.g. "UpdateEnabled") to
290	// unconditionally include in API requests. By default, fields with
291	// empty values are omitted from API requests. However, any non-pointer,
292	// non-interface field appearing in ForceSendFields will be sent to the
293	// server regardless of whether the field is empty or not. This may be
294	// used to include empty fields in Patch requests.
295	ForceSendFields []string `json:"-"`
296
297	// NullFields is a list of field names (e.g. "UpdateEnabled") to include
298	// in API requests with the JSON null value. By default, fields with
299	// empty values are omitted from API requests. However, any field with
300	// an empty value appearing in NullFields will be sent to the server as
301	// null. It is an error if a field in this list has a non-empty value.
302	// This may be used to include null fields in Patch requests.
303	NullFields []string `json:"-"`
304}
305
306func (s *BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities) MarshalJSON() ([]byte, error) {
307	type NoMethod BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities
308	raw := NoMethod(*s)
309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
310}
311
312// BuildBazelRemoteExecutionV2ActionResult: An ActionResult represents
313// the result of an Action being run. It is advised that at least one
314// field (for example `ActionResult.execution_metadata.Worker`) have a
315// non-default value, to ensure that the serialized value is non-empty,
316// which can then be used as a basic data sanity check.
317type BuildBazelRemoteExecutionV2ActionResult struct {
318	// ExecutionMetadata: The details of the execution that originally
319	// produced this result.
320	ExecutionMetadata *BuildBazelRemoteExecutionV2ExecutedActionMetadata `json:"executionMetadata,omitempty"`
321
322	// ExitCode: The exit code of the command.
323	ExitCode int64 `json:"exitCode,omitempty"`
324
325	// OutputDirectories: The output directories of the action. For each
326	// output directory requested in the `output_directories` or
327	// `output_paths` field of the Action, if the corresponding directory
328	// existed after the action completed, a single entry will be present in
329	// the output list, which will contain the digest of a Tree message
330	// containing the directory tree, and the path equal exactly to the
331	// corresponding Action output_directories member. As an example,
332	// suppose the Action had an output directory `a/b/dir` and the
333	// execution produced the following contents in `a/b/dir`: a file named
334	// `bar` and a directory named `foo` with an executable file named
335	// `baz`. Then, output_directory will contain (hashes shortened for
336	// readability): ```json // OutputDirectory proto: { path: "a/b/dir"
337	// tree_digest: { hash: "4a73bc9d03...", size: 55 } } // Tree proto with
338	// hash "4a73bc9d03..." and size 55: { root: { files: [ { name: "bar",
339	// digest: { hash: "4a73bc9d03...", size: 65534 } } ], directories: [ {
340	// name: "foo", digest: { hash: "4cf2eda940...", size: 43 } } ] }
341	// children : { // (Directory proto with hash "4cf2eda940..." and size
342	// 43) files: [ { name: "baz", digest: { hash: "b2c941073e...", size:
343	// 1294, }, is_executable: true } ] } } ``` If an output of the same
344	// name as listed in `output_files` of the Command was found in
345	// `output_directories`, but was not a directory, the server will return
346	// a FAILED_PRECONDITION.
347	OutputDirectories []*BuildBazelRemoteExecutionV2OutputDirectory `json:"outputDirectories,omitempty"`
348
349	// OutputDirectorySymlinks: The output directories of the action that
350	// are symbolic links to other directories. Those may be links to other
351	// output directories, or input directories, or even absolute paths
352	// outside of the working directory, if the server supports
353	// SymlinkAbsolutePathStrategy.ALLOWED. For each output directory
354	// requested in the `output_directories` field of the Action, if the
355	// directory existed after the action completed, a single entry will be
356	// present either in this field, or in the `output_directories` field,
357	// if the directory was not a symbolic link. If an output of the same
358	// name was found, but was a symbolic link to a file instead of a
359	// directory, the server will return a FAILED_PRECONDITION. If the
360	// action does not produce the requested output, then that output will
361	// be omitted from the list. The server is free to arrange the output
362	// list as desired; clients MUST NOT assume that the output list is
363	// sorted. DEPRECATED as of v2.1. Servers that wish to be compatible
364	// with v2.0 API should still populate this field in addition to
365	// `output_symlinks`.
366	OutputDirectorySymlinks []*BuildBazelRemoteExecutionV2OutputSymlink `json:"outputDirectorySymlinks,omitempty"`
367
368	// OutputFileSymlinks: The output files of the action that are symbolic
369	// links to other files. Those may be links to other output files, or
370	// input files, or even absolute paths outside of the working directory,
371	// if the server supports SymlinkAbsolutePathStrategy.ALLOWED. For each
372	// output file requested in the `output_files` or `output_paths` field
373	// of the Action, if the corresponding file existed after the action
374	// completed, a single entry will be present either in this field, or in
375	// the `output_files` field, if the file was not a symbolic link. If an
376	// output symbolic link of the same name as listed in `output_files` of
377	// the Command was found, but its target type was not a regular file,
378	// the server will return a FAILED_PRECONDITION. If the action does not
379	// produce the requested output, then that output will be omitted from
380	// the list. The server is free to arrange the output list as desired;
381	// clients MUST NOT assume that the output list is sorted. DEPRECATED as
382	// of v2.1. Servers that wish to be compatible with v2.0 API should
383	// still populate this field in addition to `output_symlinks`.
384	OutputFileSymlinks []*BuildBazelRemoteExecutionV2OutputSymlink `json:"outputFileSymlinks,omitempty"`
385
386	// OutputFiles: The output files of the action. For each output file
387	// requested in the `output_files` or `output_paths` field of the
388	// Action, if the corresponding file existed after the action completed,
389	// a single entry will be present either in this field, or the
390	// `output_file_symlinks` field if the file was a symbolic link to
391	// another file (`output_symlinks` field after v2.1). If an output
392	// listed in `output_files` was found, but was a directory rather than a
393	// regular file, the server will return a FAILED_PRECONDITION. If the
394	// action does not produce the requested output, then that output will
395	// be omitted from the list. The server is free to arrange the output
396	// list as desired; clients MUST NOT assume that the output list is
397	// sorted.
398	OutputFiles []*BuildBazelRemoteExecutionV2OutputFile `json:"outputFiles,omitempty"`
399
400	// OutputSymlinks: New in v2.1: this field will only be populated if the
401	// command `output_paths` field was used, and not the pre v2.1
402	// `output_files` or `output_directories` fields. The output paths of
403	// the action that are symbolic links to other paths. Those may be links
404	// to other outputs, or inputs, or even absolute paths outside of the
405	// working directory, if the server supports
406	// SymlinkAbsolutePathStrategy.ALLOWED. A single entry for each output
407	// requested in `output_paths` field of the Action, if the corresponding
408	// path existed after the action completed and was a symbolic link. If
409	// the action does not produce a requested output, then that output will
410	// be omitted from the list. The server is free to arrange the output
411	// list as desired; clients MUST NOT assume that the output list is
412	// sorted.
413	OutputSymlinks []*BuildBazelRemoteExecutionV2OutputSymlink `json:"outputSymlinks,omitempty"`
414
415	// StderrDigest: The digest for a blob containing the standard error of
416	// the action, which can be retrieved from the
417	// ContentAddressableStorage.
418	StderrDigest *BuildBazelRemoteExecutionV2Digest `json:"stderrDigest,omitempty"`
419
420	// StderrRaw: The standard error buffer of the action. The server SHOULD
421	// NOT inline stderr unless requested by the client in the
422	// GetActionResultRequest message. The server MAY omit inlining, even if
423	// requested, and MUST do so if inlining would cause the response to
424	// exceed message size limits.
425	StderrRaw string `json:"stderrRaw,omitempty"`
426
427	// StdoutDigest: The digest for a blob containing the standard output of
428	// the action, which can be retrieved from the
429	// ContentAddressableStorage.
430	StdoutDigest *BuildBazelRemoteExecutionV2Digest `json:"stdoutDigest,omitempty"`
431
432	// StdoutRaw: The standard output buffer of the action. The server
433	// SHOULD NOT inline stdout unless requested by the client in the
434	// GetActionResultRequest message. The server MAY omit inlining, even if
435	// requested, and MUST do so if inlining would cause the response to
436	// exceed message size limits.
437	StdoutRaw string `json:"stdoutRaw,omitempty"`
438
439	// ServerResponse contains the HTTP response code and headers from the
440	// server.
441	googleapi.ServerResponse `json:"-"`
442
443	// ForceSendFields is a list of field names (e.g. "ExecutionMetadata")
444	// to unconditionally include in API requests. By default, fields with
445	// empty values are omitted from API requests. However, any non-pointer,
446	// non-interface field appearing in ForceSendFields will be sent to the
447	// server regardless of whether the field is empty or not. This may be
448	// used to include empty fields in Patch requests.
449	ForceSendFields []string `json:"-"`
450
451	// NullFields is a list of field names (e.g. "ExecutionMetadata") to
452	// include in API requests with the JSON null value. By default, fields
453	// with empty values are omitted from API requests. However, any field
454	// with an empty value appearing in NullFields will be sent to the
455	// server as null. It is an error if a field in this list has a
456	// non-empty value. This may be used to include null fields in Patch
457	// requests.
458	NullFields []string `json:"-"`
459}
460
461func (s *BuildBazelRemoteExecutionV2ActionResult) MarshalJSON() ([]byte, error) {
462	type NoMethod BuildBazelRemoteExecutionV2ActionResult
463	raw := NoMethod(*s)
464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
465}
466
467// BuildBazelRemoteExecutionV2BatchReadBlobsRequest: A request message
468// for ContentAddressableStorage.BatchReadBlobs.
469type BuildBazelRemoteExecutionV2BatchReadBlobsRequest struct {
470	// Digests: The individual blob digests.
471	Digests []*BuildBazelRemoteExecutionV2Digest `json:"digests,omitempty"`
472
473	// ForceSendFields is a list of field names (e.g. "Digests") to
474	// unconditionally include in API requests. By default, fields with
475	// empty values are omitted from API requests. However, any non-pointer,
476	// non-interface field appearing in ForceSendFields will be sent to the
477	// server regardless of whether the field is empty or not. This may be
478	// used to include empty fields in Patch requests.
479	ForceSendFields []string `json:"-"`
480
481	// NullFields is a list of field names (e.g. "Digests") to include in
482	// API requests with the JSON null value. By default, fields with empty
483	// values are omitted from API requests. However, any field with an
484	// empty value appearing in NullFields will be sent to the server as
485	// null. It is an error if a field in this list has a non-empty value.
486	// This may be used to include null fields in Patch requests.
487	NullFields []string `json:"-"`
488}
489
490func (s *BuildBazelRemoteExecutionV2BatchReadBlobsRequest) MarshalJSON() ([]byte, error) {
491	type NoMethod BuildBazelRemoteExecutionV2BatchReadBlobsRequest
492	raw := NoMethod(*s)
493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
494}
495
496// BuildBazelRemoteExecutionV2BatchReadBlobsResponse: A response message
497// for ContentAddressableStorage.BatchReadBlobs.
498type BuildBazelRemoteExecutionV2BatchReadBlobsResponse struct {
499	// Responses: The responses to the requests.
500	Responses []*BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse `json:"responses,omitempty"`
501
502	// ServerResponse contains the HTTP response code and headers from the
503	// server.
504	googleapi.ServerResponse `json:"-"`
505
506	// ForceSendFields is a list of field names (e.g. "Responses") to
507	// unconditionally include in API requests. By default, fields with
508	// empty values are omitted from API requests. However, any non-pointer,
509	// non-interface field appearing in ForceSendFields will be sent to the
510	// server regardless of whether the field is empty or not. This may be
511	// used to include empty fields in Patch requests.
512	ForceSendFields []string `json:"-"`
513
514	// NullFields is a list of field names (e.g. "Responses") to include in
515	// API requests with the JSON null value. By default, fields with empty
516	// values are omitted from API requests. However, any field with an
517	// empty value appearing in NullFields will be sent to the server as
518	// null. It is an error if a field in this list has a non-empty value.
519	// This may be used to include null fields in Patch requests.
520	NullFields []string `json:"-"`
521}
522
523func (s *BuildBazelRemoteExecutionV2BatchReadBlobsResponse) MarshalJSON() ([]byte, error) {
524	type NoMethod BuildBazelRemoteExecutionV2BatchReadBlobsResponse
525	raw := NoMethod(*s)
526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
527}
528
529// BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse: A response
530// corresponding to a single blob that the client tried to download.
531type BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse struct {
532	// Data: The raw binary data.
533	Data string `json:"data,omitempty"`
534
535	// Digest: The digest to which this response corresponds.
536	Digest *BuildBazelRemoteExecutionV2Digest `json:"digest,omitempty"`
537
538	// Status: The result of attempting to download that blob.
539	Status *GoogleRpcStatus `json:"status,omitempty"`
540
541	// ForceSendFields is a list of field names (e.g. "Data") to
542	// unconditionally include in API requests. By default, fields with
543	// empty values are omitted from API requests. However, any non-pointer,
544	// non-interface field appearing in ForceSendFields will be sent to the
545	// server regardless of whether the field is empty or not. This may be
546	// used to include empty fields in Patch requests.
547	ForceSendFields []string `json:"-"`
548
549	// NullFields is a list of field names (e.g. "Data") to include in API
550	// requests with the JSON null value. By default, fields with empty
551	// values are omitted from API requests. However, any field with an
552	// empty value appearing in NullFields will be sent to the server as
553	// null. It is an error if a field in this list has a non-empty value.
554	// This may be used to include null fields in Patch requests.
555	NullFields []string `json:"-"`
556}
557
558func (s *BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse) MarshalJSON() ([]byte, error) {
559	type NoMethod BuildBazelRemoteExecutionV2BatchReadBlobsResponseResponse
560	raw := NoMethod(*s)
561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
562}
563
564// BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest: A request message
565// for ContentAddressableStorage.BatchUpdateBlobs.
566type BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest struct {
567	// Requests: The individual upload requests.
568	Requests []*BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest `json:"requests,omitempty"`
569
570	// ForceSendFields is a list of field names (e.g. "Requests") to
571	// unconditionally include in API requests. By default, fields with
572	// empty values are omitted from API requests. However, any non-pointer,
573	// non-interface field appearing in ForceSendFields will be sent to the
574	// server regardless of whether the field is empty or not. This may be
575	// used to include empty fields in Patch requests.
576	ForceSendFields []string `json:"-"`
577
578	// NullFields is a list of field names (e.g. "Requests") to include in
579	// API requests with the JSON null value. By default, fields with empty
580	// values are omitted from API requests. However, any field with an
581	// empty value appearing in NullFields will be sent to the server as
582	// null. It is an error if a field in this list has a non-empty value.
583	// This may be used to include null fields in Patch requests.
584	NullFields []string `json:"-"`
585}
586
587func (s *BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest) MarshalJSON() ([]byte, error) {
588	type NoMethod BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest
589	raw := NoMethod(*s)
590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
591}
592
593// BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest: A request
594// corresponding to a single blob that the client wants to upload.
595type BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest struct {
596	// Data: The raw binary data.
597	Data string `json:"data,omitempty"`
598
599	// Digest: The digest of the blob. This MUST be the digest of `data`.
600	Digest *BuildBazelRemoteExecutionV2Digest `json:"digest,omitempty"`
601
602	// ForceSendFields is a list of field names (e.g. "Data") to
603	// unconditionally include in API requests. By default, fields with
604	// empty values are omitted from API requests. However, any non-pointer,
605	// non-interface field appearing in ForceSendFields will be sent to the
606	// server regardless of whether the field is empty or not. This may be
607	// used to include empty fields in Patch requests.
608	ForceSendFields []string `json:"-"`
609
610	// NullFields is a list of field names (e.g. "Data") to include in API
611	// requests with the JSON null value. By default, fields with empty
612	// values are omitted from API requests. However, any field with an
613	// empty value appearing in NullFields will be sent to the server as
614	// null. It is an error if a field in this list has a non-empty value.
615	// This may be used to include null fields in Patch requests.
616	NullFields []string `json:"-"`
617}
618
619func (s *BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest) MarshalJSON() ([]byte, error) {
620	type NoMethod BuildBazelRemoteExecutionV2BatchUpdateBlobsRequestRequest
621	raw := NoMethod(*s)
622	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
623}
624
625// BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse: A response
626// message for ContentAddressableStorage.BatchUpdateBlobs.
627type BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse struct {
628	// Responses: The responses to the requests.
629	Responses []*BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse `json:"responses,omitempty"`
630
631	// ServerResponse contains the HTTP response code and headers from the
632	// server.
633	googleapi.ServerResponse `json:"-"`
634
635	// ForceSendFields is a list of field names (e.g. "Responses") to
636	// unconditionally include in API requests. By default, fields with
637	// empty values are omitted from API requests. However, any non-pointer,
638	// non-interface field appearing in ForceSendFields will be sent to the
639	// server regardless of whether the field is empty or not. This may be
640	// used to include empty fields in Patch requests.
641	ForceSendFields []string `json:"-"`
642
643	// NullFields is a list of field names (e.g. "Responses") to include in
644	// API requests with the JSON null value. By default, fields with empty
645	// values are omitted from API requests. However, any field with an
646	// empty value appearing in NullFields will be sent to the server as
647	// null. It is an error if a field in this list has a non-empty value.
648	// This may be used to include null fields in Patch requests.
649	NullFields []string `json:"-"`
650}
651
652func (s *BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse) MarshalJSON() ([]byte, error) {
653	type NoMethod BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse
654	raw := NoMethod(*s)
655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
656}
657
658// BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse: A
659// response corresponding to a single blob that the client tried to
660// upload.
661type BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse struct {
662	// Digest: The blob digest to which this response corresponds.
663	Digest *BuildBazelRemoteExecutionV2Digest `json:"digest,omitempty"`
664
665	// Status: The result of attempting to upload that blob.
666	Status *GoogleRpcStatus `json:"status,omitempty"`
667
668	// ForceSendFields is a list of field names (e.g. "Digest") to
669	// unconditionally include in API requests. By default, fields with
670	// empty values are omitted from API requests. However, any non-pointer,
671	// non-interface field appearing in ForceSendFields will be sent to the
672	// server regardless of whether the field is empty or not. This may be
673	// used to include empty fields in Patch requests.
674	ForceSendFields []string `json:"-"`
675
676	// NullFields is a list of field names (e.g. "Digest") to include in API
677	// requests with the JSON null value. By default, fields with empty
678	// values are omitted from API requests. However, any field with an
679	// empty value appearing in NullFields will be sent to the server as
680	// null. It is an error if a field in this list has a non-empty value.
681	// This may be used to include null fields in Patch requests.
682	NullFields []string `json:"-"`
683}
684
685func (s *BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse) MarshalJSON() ([]byte, error) {
686	type NoMethod BuildBazelRemoteExecutionV2BatchUpdateBlobsResponseResponse
687	raw := NoMethod(*s)
688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
689}
690
691// BuildBazelRemoteExecutionV2CacheCapabilities: Capabilities of the
692// remote cache system.
693type BuildBazelRemoteExecutionV2CacheCapabilities struct {
694	// ActionCacheUpdateCapabilities: Capabilities for updating the action
695	// cache.
696	ActionCacheUpdateCapabilities *BuildBazelRemoteExecutionV2ActionCacheUpdateCapabilities `json:"actionCacheUpdateCapabilities,omitempty"`
697
698	// CachePriorityCapabilities: Supported cache priority range for both
699	// CAS and ActionCache.
700	CachePriorityCapabilities *BuildBazelRemoteExecutionV2PriorityCapabilities `json:"cachePriorityCapabilities,omitempty"`
701
702	// DigestFunction: All the digest functions supported by the remote
703	// cache. Remote cache may support multiple digest functions
704	// simultaneously.
705	//
706	// Possible values:
707	//   "UNKNOWN" - It is an error for the server to return this value.
708	//   "SHA256" - The SHA-256 digest function.
709	//   "SHA1" - The SHA-1 digest function.
710	//   "MD5" - The MD5 digest function.
711	//   "VSO" - The Microsoft "VSO-Hash" paged SHA256 digest function. See
712	// https://github.com/microsoft/BuildXL/blob/master/Documentation/Specs/PagedHash.md
713	// .
714	//   "SHA384" - The SHA-384 digest function.
715	//   "SHA512" - The SHA-512 digest function.
716	//   "MURMUR3" - Murmur3 128-bit digest function, x64 variant. Note that
717	// this is not a cryptographic hash function and its collision
718	// properties are not strongly guaranteed. See
719	// https://github.com/aappleby/smhasher/wiki/MurmurHash3 .
720	DigestFunction []string `json:"digestFunction,omitempty"`
721
722	// MaxBatchTotalSizeBytes: Maximum total size of blobs to be
723	// uploaded/downloaded using batch methods. A value of 0 means no limit
724	// is set, although in practice there will always be a message size
725	// limitation of the protocol in use, e.g. GRPC.
726	MaxBatchTotalSizeBytes int64 `json:"maxBatchTotalSizeBytes,omitempty,string"`
727
728	// SupportedCompressor: Compressors supported by the "compressed-blobs"
729	// bytestream resources. Servers MUST support identity/no-compression,
730	// even if it is not listed here. Note that this does not imply which if
731	// any compressors are supported by the server at the gRPC level.
732	//
733	// Possible values:
734	//   "IDENTITY" - No compression. Servers and clients MUST always
735	// support this, and do not need to advertise it.
736	//   "ZSTD" - Zstandard compression.
737	SupportedCompressor []string `json:"supportedCompressor,omitempty"`
738
739	// SymlinkAbsolutePathStrategy: Whether absolute symlink targets are
740	// supported.
741	//
742	// Possible values:
743	//   "UNKNOWN" - Invalid value.
744	//   "DISALLOWED" - Server will return an `INVALID_ARGUMENT` on input
745	// symlinks with absolute targets. If an action tries to create an
746	// output symlink with an absolute target, a `FAILED_PRECONDITION` will
747	// be returned.
748	//   "ALLOWED" - Server will allow symlink targets to escape the input
749	// root tree, possibly resulting in non-hermetic builds.
750	SymlinkAbsolutePathStrategy string `json:"symlinkAbsolutePathStrategy,omitempty"`
751
752	// ForceSendFields is a list of field names (e.g.
753	// "ActionCacheUpdateCapabilities") to unconditionally include in API
754	// requests. By default, fields with empty values are omitted from API
755	// requests. However, any non-pointer, non-interface field appearing in
756	// ForceSendFields will be sent to the server regardless of whether the
757	// field is empty or not. This may be used to include empty fields in
758	// Patch requests.
759	ForceSendFields []string `json:"-"`
760
761	// NullFields is a list of field names (e.g.
762	// "ActionCacheUpdateCapabilities") to include in API requests with the
763	// JSON null value. By default, fields with empty values are omitted
764	// from API requests. However, any field with an empty value appearing
765	// in NullFields will be sent to the server as null. It is an error if a
766	// field in this list has a non-empty value. This may be used to include
767	// null fields in Patch requests.
768	NullFields []string `json:"-"`
769}
770
771func (s *BuildBazelRemoteExecutionV2CacheCapabilities) MarshalJSON() ([]byte, error) {
772	type NoMethod BuildBazelRemoteExecutionV2CacheCapabilities
773	raw := NoMethod(*s)
774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
775}
776
777// BuildBazelRemoteExecutionV2Command: A `Command` is the actual command
778// executed by a worker running an Action and specifications of its
779// environment. Except as otherwise required, the environment (such as
780// which system libraries or binaries are available, and what
781// filesystems are mounted where) is defined by and specific to the
782// implementation of the remote execution API.
783type BuildBazelRemoteExecutionV2Command struct {
784	// Arguments: The arguments to the command. The first argument must be
785	// the path to the executable, which must be either a relative path, in
786	// which case it is evaluated with respect to the input root, or an
787	// absolute path.
788	Arguments []string `json:"arguments,omitempty"`
789
790	// EnvironmentVariables: The environment variables to set when running
791	// the program. The worker may provide its own default environment
792	// variables; these defaults can be overridden using this field.
793	// Additional variables can also be specified. In order to ensure that
794	// equivalent Commands always hash to the same value, the environment
795	// variables MUST be lexicographically sorted by name. Sorting of
796	// strings is done by code point, equivalently, by the UTF-8 bytes.
797	EnvironmentVariables []*BuildBazelRemoteExecutionV2CommandEnvironmentVariable `json:"environmentVariables,omitempty"`
798
799	// OutputDirectories: A list of the output directories that the client
800	// expects to retrieve from the action. Only the listed directories will
801	// be returned (an entire directory structure will be returned as a Tree
802	// message digest, see OutputDirectory), as well as files listed in
803	// `output_files`. Other files or directories that may be created during
804	// command execution are discarded. The paths are relative to the
805	// working directory of the action execution. The paths are specified
806	// using a single forward slash (`/`) as a path separator, even if the
807	// execution platform natively uses a different separator. The path MUST
808	// NOT include a trailing slash, nor a leading slash, being a relative
809	// path. The special value of empty string is allowed, although not
810	// recommended, and can be used to capture the entire working directory
811	// tree, including inputs. In order to ensure consistent hashing of the
812	// same Action, the output paths MUST be sorted lexicographically by
813	// code point (or, equivalently, by UTF-8 bytes). An output directory
814	// cannot be duplicated or have the same path as any of the listed
815	// output files. An output directory is allowed to be a parent of
816	// another output directory. Directories leading up to the output
817	// directories (but not the output directories themselves) are created
818	// by the worker prior to execution, even if they are not explicitly
819	// part of the input root. DEPRECATED since 2.1: Use `output_paths`
820	// instead.
821	OutputDirectories []string `json:"outputDirectories,omitempty"`
822
823	// OutputFiles: A list of the output files that the client expects to
824	// retrieve from the action. Only the listed files, as well as
825	// directories listed in `output_directories`, will be returned to the
826	// client as output. Other files or directories that may be created
827	// during command execution are discarded. The paths are relative to the
828	// working directory of the action execution. The paths are specified
829	// using a single forward slash (`/`) as a path separator, even if the
830	// execution platform natively uses a different separator. The path MUST
831	// NOT include a trailing slash, nor a leading slash, being a relative
832	// path. In order to ensure consistent hashing of the same Action, the
833	// output paths MUST be sorted lexicographically by code point (or,
834	// equivalently, by UTF-8 bytes). An output file cannot be duplicated,
835	// be a parent of another output file, or have the same path as any of
836	// the listed output directories. Directories leading up to the output
837	// files are created by the worker prior to execution, even if they are
838	// not explicitly part of the input root. DEPRECATED since v2.1: Use
839	// `output_paths` instead.
840	OutputFiles []string `json:"outputFiles,omitempty"`
841
842	// OutputNodeProperties: A list of keys for node properties the client
843	// expects to retrieve for output files and directories. Keys are either
844	// names of string-based NodeProperty or names of fields in
845	// NodeProperties. In order to ensure that equivalent `Action`s always
846	// hash to the same value, the node properties MUST be lexicographically
847	// sorted by name. Sorting of strings is done by code point,
848	// equivalently, by the UTF-8 bytes. The interpretation of string-based
849	// properties is server-dependent. If a property is not recognized by
850	// the server, the server will return an `INVALID_ARGUMENT`.
851	OutputNodeProperties []string `json:"outputNodeProperties,omitempty"`
852
853	// OutputPaths: A list of the output paths that the client expects to
854	// retrieve from the action. Only the listed paths will be returned to
855	// the client as output. The type of the output (file or directory) is
856	// not specified, and will be determined by the server after action
857	// execution. If the resulting path is a file, it will be returned in an
858	// OutputFile) typed field. If the path is a directory, the entire
859	// directory structure will be returned as a Tree message digest, see
860	// OutputDirectory) Other files or directories that may be created
861	// during command execution are discarded. The paths are relative to the
862	// working directory of the action execution. The paths are specified
863	// using a single forward slash (`/`) as a path separator, even if the
864	// execution platform natively uses a different separator. The path MUST
865	// NOT include a trailing slash, nor a leading slash, being a relative
866	// path. In order to ensure consistent hashing of the same Action, the
867	// output paths MUST be deduplicated and sorted lexicographically by
868	// code point (or, equivalently, by UTF-8 bytes). Directories leading up
869	// to the output paths are created by the worker prior to execution,
870	// even if they are not explicitly part of the input root. New in v2.1:
871	// this field supersedes the DEPRECATED `output_files` and
872	// `output_directories` fields. If `output_paths` is used,
873	// `output_files` and `output_directories` will be ignored!
874	OutputPaths []string `json:"outputPaths,omitempty"`
875
876	// Platform: The platform requirements for the execution environment.
877	// The server MAY choose to execute the action on any worker satisfying
878	// the requirements, so the client SHOULD ensure that running the action
879	// on any such worker will have the same result. A detailed lexicon for
880	// this can be found in the accompanying platform.md. DEPRECATED as of
881	// v2.2: platform properties are now specified directly in the action.
882	// See documentation note in the Action for migration.
883	Platform *BuildBazelRemoteExecutionV2Platform `json:"platform,omitempty"`
884
885	// WorkingDirectory: The working directory, relative to the input root,
886	// for the command to run in. It must be a directory which exists in the
887	// input tree. If it is left empty, then the action is run in the input
888	// root.
889	WorkingDirectory string `json:"workingDirectory,omitempty"`
890
891	// ForceSendFields is a list of field names (e.g. "Arguments") to
892	// unconditionally include in API requests. By default, fields with
893	// empty values are omitted from API requests. However, any non-pointer,
894	// non-interface field appearing in ForceSendFields will be sent to the
895	// server regardless of whether the field is empty or not. This may be
896	// used to include empty fields in Patch requests.
897	ForceSendFields []string `json:"-"`
898
899	// NullFields is a list of field names (e.g. "Arguments") to include in
900	// API requests with the JSON null value. By default, fields with empty
901	// values are omitted from API requests. However, any field with an
902	// empty value appearing in NullFields will be sent to the server as
903	// null. It is an error if a field in this list has a non-empty value.
904	// This may be used to include null fields in Patch requests.
905	NullFields []string `json:"-"`
906}
907
908func (s *BuildBazelRemoteExecutionV2Command) MarshalJSON() ([]byte, error) {
909	type NoMethod BuildBazelRemoteExecutionV2Command
910	raw := NoMethod(*s)
911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
912}
913
914// BuildBazelRemoteExecutionV2CommandEnvironmentVariable: An
915// `EnvironmentVariable` is one variable to set in the running program's
916// environment.
917type BuildBazelRemoteExecutionV2CommandEnvironmentVariable struct {
918	// Name: The variable name.
919	Name string `json:"name,omitempty"`
920
921	// Value: The variable value.
922	Value string `json:"value,omitempty"`
923
924	// ForceSendFields is a list of field names (e.g. "Name") to
925	// unconditionally include in API requests. By default, fields with
926	// empty values are omitted from API requests. However, any non-pointer,
927	// non-interface field appearing in ForceSendFields will be sent to the
928	// server regardless of whether the field is empty or not. This may be
929	// used to include empty fields in Patch requests.
930	ForceSendFields []string `json:"-"`
931
932	// NullFields is a list of field names (e.g. "Name") to include in API
933	// requests with the JSON null value. By default, fields with empty
934	// values are omitted from API requests. However, any field with an
935	// empty value appearing in NullFields will be sent to the server as
936	// null. It is an error if a field in this list has a non-empty value.
937	// This may be used to include null fields in Patch requests.
938	NullFields []string `json:"-"`
939}
940
941func (s *BuildBazelRemoteExecutionV2CommandEnvironmentVariable) MarshalJSON() ([]byte, error) {
942	type NoMethod BuildBazelRemoteExecutionV2CommandEnvironmentVariable
943	raw := NoMethod(*s)
944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
945}
946
947// BuildBazelRemoteExecutionV2Digest: A content digest. A digest for a
948// given blob consists of the size of the blob and its hash. The hash
949// algorithm to use is defined by the server. The size is considered to
950// be an integral part of the digest and cannot be separated. That is,
951// even if the `hash` field is correctly specified but `size_bytes` is
952// not, the server MUST reject the request. The reason for including the
953// size in the digest is as follows: in a great many cases, the server
954// needs to know the size of the blob it is about to work with prior to
955// starting an operation with it, such as flattening Merkle tree
956// structures or streaming it to a worker. Technically, the server could
957// implement a separate metadata store, but this results in a
958// significantly more complicated implementation as opposed to having
959// the client specify the size up-front (or storing the size along with
960// the digest in every message where digests are embedded). This does
961// mean that the API leaks some implementation details of (what we
962// consider to be) a reasonable server implementation, but we consider
963// this to be a worthwhile tradeoff. When a `Digest` is used to refer to
964// a proto message, it always refers to the message in binary encoded
965// form. To ensure consistent hashing, clients and servers MUST ensure
966// that they serialize messages according to the following rules, even
967// if there are alternate valid encodings for the same message: * Fields
968// are serialized in tag order. * There are no unknown fields. * There
969// are no duplicate fields. * Fields are serialized according to the
970// default semantics for their type. Most protocol buffer
971// implementations will always follow these rules when serializing, but
972// care should be taken to avoid shortcuts. For instance, concatenating
973// two messages to merge them may produce duplicate fields.
974type BuildBazelRemoteExecutionV2Digest struct {
975	// Hash: The hash. In the case of SHA-256, it will always be a lowercase
976	// hex string exactly 64 characters long.
977	Hash string `json:"hash,omitempty"`
978
979	// SizeBytes: The size of the blob, in bytes.
980	SizeBytes int64 `json:"sizeBytes,omitempty,string"`
981
982	// ForceSendFields is a list of field names (e.g. "Hash") to
983	// unconditionally include in API requests. By default, fields with
984	// empty values are omitted from API requests. However, any non-pointer,
985	// non-interface field appearing in ForceSendFields will be sent to the
986	// server regardless of whether the field is empty or not. This may be
987	// used to include empty fields in Patch requests.
988	ForceSendFields []string `json:"-"`
989
990	// NullFields is a list of field names (e.g. "Hash") to include in API
991	// requests with the JSON null value. By default, fields with empty
992	// values are omitted from API requests. However, any field with an
993	// empty value appearing in NullFields will be sent to the server as
994	// null. It is an error if a field in this list has a non-empty value.
995	// This may be used to include null fields in Patch requests.
996	NullFields []string `json:"-"`
997}
998
999func (s *BuildBazelRemoteExecutionV2Digest) MarshalJSON() ([]byte, error) {
1000	type NoMethod BuildBazelRemoteExecutionV2Digest
1001	raw := NoMethod(*s)
1002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1003}
1004
1005// BuildBazelRemoteExecutionV2Directory: A `Directory` represents a
1006// directory node in a file tree, containing zero or more children
1007// FileNodes, DirectoryNodes and SymlinkNodes. Each `Node` contains its
1008// name in the directory, either the digest of its content (either a
1009// file blob or a `Directory` proto) or a symlink target, as well as
1010// possibly some metadata about the file or directory. In order to
1011// ensure that two equivalent directory trees hash to the same value,
1012// the following restrictions MUST be obeyed when constructing a a
1013// `Directory`: * Every child in the directory must have a path of
1014// exactly one segment. Multiple levels of directory hierarchy may not
1015// be collapsed. * Each child in the directory must have a unique path
1016// segment (file name). Note that while the API itself is
1017// case-sensitive, the environment where the Action is executed may or
1018// may not be case-sensitive. That is, it is legal to call the API with
1019// a Directory that has both "Foo" and "foo" as children, but the Action
1020// may be rejected by the remote system upon execution. * The files,
1021// directories and symlinks in the directory must each be sorted in
1022// lexicographical order by path. The path strings must be sorted by
1023// code point, equivalently, by UTF-8 bytes. * The NodeProperties of
1024// files, directories, and symlinks must be sorted in lexicographical
1025// order by property name. A `Directory` that obeys the restrictions is
1026// said to be in canonical form. As an example, the following could be
1027// used for a file named `bar` and a directory named `foo` with an
1028// executable file named `baz` (hashes shortened for readability):
1029// ```json // (Directory proto) { files: [ { name: "bar", digest: {
1030// hash: "4a73bc9d03...", size: 65534 }, node_properties: [ { "name":
1031// "MTime", "value": "2017-01-15T01:30:15.01Z" } ] } ], directories: [ {
1032// name: "foo", digest: { hash: "4cf2eda940...", size: 43 } } ] } //
1033// (Directory proto with hash "4cf2eda940..." and size 43) { files: [ {
1034// name: "baz", digest: { hash: "b2c941073e...", size: 1294, },
1035// is_executable: true } ] } ```
1036type BuildBazelRemoteExecutionV2Directory struct {
1037	// Directories: The subdirectories in the directory.
1038	Directories []*BuildBazelRemoteExecutionV2DirectoryNode `json:"directories,omitempty"`
1039
1040	// Files: The files in the directory.
1041	Files []*BuildBazelRemoteExecutionV2FileNode `json:"files,omitempty"`
1042
1043	NodeProperties *BuildBazelRemoteExecutionV2NodeProperties `json:"nodeProperties,omitempty"`
1044
1045	// Symlinks: The symlinks in the directory.
1046	Symlinks []*BuildBazelRemoteExecutionV2SymlinkNode `json:"symlinks,omitempty"`
1047
1048	// ForceSendFields is a list of field names (e.g. "Directories") to
1049	// unconditionally include in API requests. By default, fields with
1050	// empty values are omitted from API requests. However, any non-pointer,
1051	// non-interface field appearing in ForceSendFields will be sent to the
1052	// server regardless of whether the field is empty or not. This may be
1053	// used to include empty fields in Patch requests.
1054	ForceSendFields []string `json:"-"`
1055
1056	// NullFields is a list of field names (e.g. "Directories") to include
1057	// in API requests with the JSON null value. By default, fields with
1058	// empty values are omitted from API requests. However, any field with
1059	// an empty value appearing in NullFields will be sent to the server as
1060	// null. It is an error if a field in this list has a non-empty value.
1061	// This may be used to include null fields in Patch requests.
1062	NullFields []string `json:"-"`
1063}
1064
1065func (s *BuildBazelRemoteExecutionV2Directory) MarshalJSON() ([]byte, error) {
1066	type NoMethod BuildBazelRemoteExecutionV2Directory
1067	raw := NoMethod(*s)
1068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1069}
1070
1071// BuildBazelRemoteExecutionV2DirectoryNode: A `DirectoryNode`
1072// represents a child of a Directory which is itself a `Directory` and
1073// its associated metadata.
1074type BuildBazelRemoteExecutionV2DirectoryNode struct {
1075	// Digest: The digest of the Directory object represented. See Digest
1076	// for information about how to take the digest of a proto message.
1077	Digest *BuildBazelRemoteExecutionV2Digest `json:"digest,omitempty"`
1078
1079	// Name: The name of the directory.
1080	Name string `json:"name,omitempty"`
1081
1082	// ForceSendFields is a list of field names (e.g. "Digest") to
1083	// unconditionally include in API requests. By default, fields with
1084	// empty values are omitted from API requests. However, any non-pointer,
1085	// non-interface field appearing in ForceSendFields will be sent to the
1086	// server regardless of whether the field is empty or not. This may be
1087	// used to include empty fields in Patch requests.
1088	ForceSendFields []string `json:"-"`
1089
1090	// NullFields is a list of field names (e.g. "Digest") to include in API
1091	// requests with the JSON null value. By default, fields with empty
1092	// values are omitted from API requests. However, any field with an
1093	// empty value appearing in NullFields will be sent to the server as
1094	// null. It is an error if a field in this list has a non-empty value.
1095	// This may be used to include null fields in Patch requests.
1096	NullFields []string `json:"-"`
1097}
1098
1099func (s *BuildBazelRemoteExecutionV2DirectoryNode) MarshalJSON() ([]byte, error) {
1100	type NoMethod BuildBazelRemoteExecutionV2DirectoryNode
1101	raw := NoMethod(*s)
1102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1103}
1104
1105// BuildBazelRemoteExecutionV2ExecuteOperationMetadata: Metadata about
1106// an ongoing execution, which will be contained in the metadata field
1107// of the Operation.
1108type BuildBazelRemoteExecutionV2ExecuteOperationMetadata struct {
1109	// ActionDigest: The digest of the Action being executed.
1110	ActionDigest *BuildBazelRemoteExecutionV2Digest `json:"actionDigest,omitempty"`
1111
1112	// Stage: The current stage of execution.
1113	//
1114	// Possible values:
1115	//   "UNKNOWN" - Invalid value.
1116	//   "CACHE_CHECK" - Checking the result against the cache.
1117	//   "QUEUED" - Currently idle, awaiting a free machine to execute.
1118	//   "EXECUTING" - Currently being executed by a worker.
1119	//   "COMPLETED" - Finished execution.
1120	Stage string `json:"stage,omitempty"`
1121
1122	// StderrStreamName: If set, the client can use this resource name with
1123	// ByteStream.Read to stream the standard error from the endpoint
1124	// hosting streamed responses.
1125	StderrStreamName string `json:"stderrStreamName,omitempty"`
1126
1127	// StdoutStreamName: If set, the client can use this resource name with
1128	// ByteStream.Read to stream the standard output from the endpoint
1129	// hosting streamed responses.
1130	StdoutStreamName string `json:"stdoutStreamName,omitempty"`
1131
1132	// ForceSendFields is a list of field names (e.g. "ActionDigest") to
1133	// unconditionally include in API requests. By default, fields with
1134	// empty values are omitted from API requests. However, any non-pointer,
1135	// non-interface field appearing in ForceSendFields will be sent to the
1136	// server regardless of whether the field is empty or not. This may be
1137	// used to include empty fields in Patch requests.
1138	ForceSendFields []string `json:"-"`
1139
1140	// NullFields is a list of field names (e.g. "ActionDigest") to include
1141	// in API requests with the JSON null value. By default, fields with
1142	// empty values are omitted from API requests. However, any field with
1143	// an empty value appearing in NullFields will be sent to the server as
1144	// null. It is an error if a field in this list has a non-empty value.
1145	// This may be used to include null fields in Patch requests.
1146	NullFields []string `json:"-"`
1147}
1148
1149func (s *BuildBazelRemoteExecutionV2ExecuteOperationMetadata) MarshalJSON() ([]byte, error) {
1150	type NoMethod BuildBazelRemoteExecutionV2ExecuteOperationMetadata
1151	raw := NoMethod(*s)
1152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1153}
1154
1155// BuildBazelRemoteExecutionV2ExecuteRequest: A request message for
1156// Execution.Execute.
1157type BuildBazelRemoteExecutionV2ExecuteRequest struct {
1158	// ActionDigest: The digest of the Action to execute.
1159	ActionDigest *BuildBazelRemoteExecutionV2Digest `json:"actionDigest,omitempty"`
1160
1161	// ExecutionPolicy: An optional policy for execution of the action. The
1162	// server will have a default policy if this is not provided.
1163	ExecutionPolicy *BuildBazelRemoteExecutionV2ExecutionPolicy `json:"executionPolicy,omitempty"`
1164
1165	// ResultsCachePolicy: An optional policy for the results of this
1166	// execution in the remote cache. The server will have a default policy
1167	// if this is not provided. This may be applied to both the ActionResult
1168	// and the associated blobs.
1169	ResultsCachePolicy *BuildBazelRemoteExecutionV2ResultsCachePolicy `json:"resultsCachePolicy,omitempty"`
1170
1171	// SkipCacheLookup: If true, the action will be executed even if its
1172	// result is already present in the ActionCache. The execution is still
1173	// allowed to be merged with other in-flight executions of the same
1174	// action, however - semantically, the service MUST only guarantee that
1175	// the results of an execution with this field set were not visible
1176	// before the corresponding execution request was sent. Note that
1177	// actions from execution requests setting this field set are still
1178	// eligible to be entered into the action cache upon completion, and
1179	// services SHOULD overwrite any existing entries that may exist. This
1180	// allows skip_cache_lookup requests to be used as a mechanism for
1181	// replacing action cache entries that reference outputs no longer
1182	// available or that are poisoned in any way. If false, the result may
1183	// be served from the action cache.
1184	SkipCacheLookup bool `json:"skipCacheLookup,omitempty"`
1185
1186	// ForceSendFields is a list of field names (e.g. "ActionDigest") to
1187	// unconditionally include in API requests. By default, fields with
1188	// empty values are omitted from API requests. However, any non-pointer,
1189	// non-interface field appearing in ForceSendFields will be sent to the
1190	// server regardless of whether the field is empty or not. This may be
1191	// used to include empty fields in Patch requests.
1192	ForceSendFields []string `json:"-"`
1193
1194	// NullFields is a list of field names (e.g. "ActionDigest") to include
1195	// in API requests with the JSON null value. By default, fields with
1196	// empty values are omitted from API requests. However, any field with
1197	// an empty value appearing in NullFields will be sent to the server as
1198	// null. It is an error if a field in this list has a non-empty value.
1199	// This may be used to include null fields in Patch requests.
1200	NullFields []string `json:"-"`
1201}
1202
1203func (s *BuildBazelRemoteExecutionV2ExecuteRequest) MarshalJSON() ([]byte, error) {
1204	type NoMethod BuildBazelRemoteExecutionV2ExecuteRequest
1205	raw := NoMethod(*s)
1206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1207}
1208
1209// BuildBazelRemoteExecutionV2ExecuteResponse: The response message for
1210// Execution.Execute, which will be contained in the response field of
1211// the Operation.
1212type BuildBazelRemoteExecutionV2ExecuteResponse struct {
1213	// CachedResult: True if the result was served from cache, false if it
1214	// was executed.
1215	CachedResult bool `json:"cachedResult,omitempty"`
1216
1217	// Message: Freeform informational message with details on the execution
1218	// of the action that may be displayed to the user upon failure or when
1219	// requested explicitly.
1220	Message string `json:"message,omitempty"`
1221
1222	// Result: The result of the action.
1223	Result *BuildBazelRemoteExecutionV2ActionResult `json:"result,omitempty"`
1224
1225	// ServerLogs: An optional list of additional log outputs the server
1226	// wishes to provide. A server can use this to return execution-specific
1227	// logs however it wishes. This is intended primarily to make it easier
1228	// for users to debug issues that may be outside of the actual job
1229	// execution, such as by identifying the worker executing the action or
1230	// by providing logs from the worker's setup phase. The keys SHOULD be
1231	// human readable so that a client can display them to a user.
1232	ServerLogs map[string]BuildBazelRemoteExecutionV2LogFile `json:"serverLogs,omitempty"`
1233
1234	// Status: If the status has a code other than `OK`, it indicates that
1235	// the action did not finish execution. For example, if the operation
1236	// times out during execution, the status will have a
1237	// `DEADLINE_EXCEEDED` code. Servers MUST use this field for errors in
1238	// execution, rather than the error field on the `Operation` object. If
1239	// the status code is other than `OK`, then the result MUST NOT be
1240	// cached. For an error status, the `result` field is optional; the
1241	// server may populate the output-, stdout-, and stderr-related fields
1242	// if it has any information available, such as the stdout and stderr of
1243	// a timed-out action.
1244	Status *GoogleRpcStatus `json:"status,omitempty"`
1245
1246	// ForceSendFields is a list of field names (e.g. "CachedResult") to
1247	// unconditionally include in API requests. By default, fields with
1248	// empty values are omitted from API requests. However, any non-pointer,
1249	// non-interface field appearing in ForceSendFields will be sent to the
1250	// server regardless of whether the field is empty or not. This may be
1251	// used to include empty fields in Patch requests.
1252	ForceSendFields []string `json:"-"`
1253
1254	// NullFields is a list of field names (e.g. "CachedResult") to include
1255	// in API requests with the JSON null value. By default, fields with
1256	// empty values are omitted from API requests. However, any field with
1257	// an empty value appearing in NullFields will be sent to the server as
1258	// null. It is an error if a field in this list has a non-empty value.
1259	// This may be used to include null fields in Patch requests.
1260	NullFields []string `json:"-"`
1261}
1262
1263func (s *BuildBazelRemoteExecutionV2ExecuteResponse) MarshalJSON() ([]byte, error) {
1264	type NoMethod BuildBazelRemoteExecutionV2ExecuteResponse
1265	raw := NoMethod(*s)
1266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1267}
1268
1269// BuildBazelRemoteExecutionV2ExecutedActionMetadata:
1270// ExecutedActionMetadata contains details about a completed execution.
1271type BuildBazelRemoteExecutionV2ExecutedActionMetadata struct {
1272	// AuxiliaryMetadata: Details that are specific to the kind of worker
1273	// used. For example, on POSIX-like systems this could contain a message
1274	// with getrusage(2) statistics.
1275	AuxiliaryMetadata []googleapi.RawMessage `json:"auxiliaryMetadata,omitempty"`
1276
1277	// ExecutionCompletedTimestamp: When the worker completed executing the
1278	// action command.
1279	ExecutionCompletedTimestamp string `json:"executionCompletedTimestamp,omitempty"`
1280
1281	// ExecutionStartTimestamp: When the worker started executing the action
1282	// command.
1283	ExecutionStartTimestamp string `json:"executionStartTimestamp,omitempty"`
1284
1285	// InputFetchCompletedTimestamp: When the worker finished fetching
1286	// action inputs.
1287	InputFetchCompletedTimestamp string `json:"inputFetchCompletedTimestamp,omitempty"`
1288
1289	// InputFetchStartTimestamp: When the worker started fetching action
1290	// inputs.
1291	InputFetchStartTimestamp string `json:"inputFetchStartTimestamp,omitempty"`
1292
1293	// OutputUploadCompletedTimestamp: When the worker finished uploading
1294	// action outputs.
1295	OutputUploadCompletedTimestamp string `json:"outputUploadCompletedTimestamp,omitempty"`
1296
1297	// OutputUploadStartTimestamp: When the worker started uploading action
1298	// outputs.
1299	OutputUploadStartTimestamp string `json:"outputUploadStartTimestamp,omitempty"`
1300
1301	// QueuedTimestamp: When was the action added to the queue.
1302	QueuedTimestamp string `json:"queuedTimestamp,omitempty"`
1303
1304	// Worker: The name of the worker which ran the execution.
1305	Worker string `json:"worker,omitempty"`
1306
1307	// WorkerCompletedTimestamp: When the worker completed the action,
1308	// including all stages.
1309	WorkerCompletedTimestamp string `json:"workerCompletedTimestamp,omitempty"`
1310
1311	// WorkerStartTimestamp: When the worker received the action.
1312	WorkerStartTimestamp string `json:"workerStartTimestamp,omitempty"`
1313
1314	// ForceSendFields is a list of field names (e.g. "AuxiliaryMetadata")
1315	// to unconditionally include in API requests. By default, fields with
1316	// empty values are omitted from API requests. However, any non-pointer,
1317	// non-interface field appearing in ForceSendFields will be sent to the
1318	// server regardless of whether the field is empty or not. This may be
1319	// used to include empty fields in Patch requests.
1320	ForceSendFields []string `json:"-"`
1321
1322	// NullFields is a list of field names (e.g. "AuxiliaryMetadata") to
1323	// include in API requests with the JSON null value. By default, fields
1324	// with empty values are omitted from API requests. However, any field
1325	// with an empty value appearing in NullFields will be sent to the
1326	// server as null. It is an error if a field in this list has a
1327	// non-empty value. This may be used to include null fields in Patch
1328	// requests.
1329	NullFields []string `json:"-"`
1330}
1331
1332func (s *BuildBazelRemoteExecutionV2ExecutedActionMetadata) MarshalJSON() ([]byte, error) {
1333	type NoMethod BuildBazelRemoteExecutionV2ExecutedActionMetadata
1334	raw := NoMethod(*s)
1335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1336}
1337
1338// BuildBazelRemoteExecutionV2ExecutionCapabilities: Capabilities of the
1339// remote execution system.
1340type BuildBazelRemoteExecutionV2ExecutionCapabilities struct {
1341	// DigestFunction: Remote execution may only support a single digest
1342	// function.
1343	//
1344	// Possible values:
1345	//   "UNKNOWN" - It is an error for the server to return this value.
1346	//   "SHA256" - The SHA-256 digest function.
1347	//   "SHA1" - The SHA-1 digest function.
1348	//   "MD5" - The MD5 digest function.
1349	//   "VSO" - The Microsoft "VSO-Hash" paged SHA256 digest function. See
1350	// https://github.com/microsoft/BuildXL/blob/master/Documentation/Specs/PagedHash.md
1351	// .
1352	//   "SHA384" - The SHA-384 digest function.
1353	//   "SHA512" - The SHA-512 digest function.
1354	//   "MURMUR3" - Murmur3 128-bit digest function, x64 variant. Note that
1355	// this is not a cryptographic hash function and its collision
1356	// properties are not strongly guaranteed. See
1357	// https://github.com/aappleby/smhasher/wiki/MurmurHash3 .
1358	DigestFunction string `json:"digestFunction,omitempty"`
1359
1360	// ExecEnabled: Whether remote execution is enabled for the particular
1361	// server/instance.
1362	ExecEnabled bool `json:"execEnabled,omitempty"`
1363
1364	// ExecutionPriorityCapabilities: Supported execution priority range.
1365	ExecutionPriorityCapabilities *BuildBazelRemoteExecutionV2PriorityCapabilities `json:"executionPriorityCapabilities,omitempty"`
1366
1367	// SupportedNodeProperties: Supported node properties.
1368	SupportedNodeProperties []string `json:"supportedNodeProperties,omitempty"`
1369
1370	// ForceSendFields is a list of field names (e.g. "DigestFunction") to
1371	// unconditionally include in API requests. By default, fields with
1372	// empty values are omitted from API requests. However, any non-pointer,
1373	// non-interface field appearing in ForceSendFields will be sent to the
1374	// server regardless of whether the field is empty or not. This may be
1375	// used to include empty fields in Patch requests.
1376	ForceSendFields []string `json:"-"`
1377
1378	// NullFields is a list of field names (e.g. "DigestFunction") to
1379	// include in API requests with the JSON null value. By default, fields
1380	// with empty values are omitted from API requests. However, any field
1381	// with an empty value appearing in NullFields will be sent to the
1382	// server as null. It is an error if a field in this list has a
1383	// non-empty value. This may be used to include null fields in Patch
1384	// requests.
1385	NullFields []string `json:"-"`
1386}
1387
1388func (s *BuildBazelRemoteExecutionV2ExecutionCapabilities) MarshalJSON() ([]byte, error) {
1389	type NoMethod BuildBazelRemoteExecutionV2ExecutionCapabilities
1390	raw := NoMethod(*s)
1391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1392}
1393
1394// BuildBazelRemoteExecutionV2ExecutionPolicy: An `ExecutionPolicy` can
1395// be used to control the scheduling of the action.
1396type BuildBazelRemoteExecutionV2ExecutionPolicy struct {
1397	// Priority: The priority (relative importance) of this action.
1398	// Generally, a lower value means that the action should be run sooner
1399	// than actions having a greater priority value, but the interpretation
1400	// of a given value is server- dependent. A priority of 0 means the
1401	// *default* priority. Priorities may be positive or negative, and such
1402	// actions should run later or sooner than actions having the default
1403	// priority, respectively. The particular semantics of this field is up
1404	// to the server. In particular, every server will have their own
1405	// supported range of priorities, and will decide how these map into
1406	// scheduling policy.
1407	Priority int64 `json:"priority,omitempty"`
1408
1409	// ForceSendFields is a list of field names (e.g. "Priority") to
1410	// unconditionally include in API requests. By default, fields with
1411	// empty values are omitted from API requests. However, any non-pointer,
1412	// non-interface field appearing in ForceSendFields will be sent to the
1413	// server regardless of whether the field is empty or not. This may be
1414	// used to include empty fields in Patch requests.
1415	ForceSendFields []string `json:"-"`
1416
1417	// NullFields is a list of field names (e.g. "Priority") to include in
1418	// API requests with the JSON null value. By default, fields with empty
1419	// values are omitted from API requests. However, any field with an
1420	// empty value appearing in NullFields will be sent to the server as
1421	// null. It is an error if a field in this list has a non-empty value.
1422	// This may be used to include null fields in Patch requests.
1423	NullFields []string `json:"-"`
1424}
1425
1426func (s *BuildBazelRemoteExecutionV2ExecutionPolicy) MarshalJSON() ([]byte, error) {
1427	type NoMethod BuildBazelRemoteExecutionV2ExecutionPolicy
1428	raw := NoMethod(*s)
1429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1430}
1431
1432// BuildBazelRemoteExecutionV2FileNode: A `FileNode` represents a single
1433// file and associated metadata.
1434type BuildBazelRemoteExecutionV2FileNode struct {
1435	// Digest: The digest of the file's content.
1436	Digest *BuildBazelRemoteExecutionV2Digest `json:"digest,omitempty"`
1437
1438	// IsExecutable: True if file is executable, false otherwise.
1439	IsExecutable bool `json:"isExecutable,omitempty"`
1440
1441	// Name: The name of the file.
1442	Name string `json:"name,omitempty"`
1443
1444	NodeProperties *BuildBazelRemoteExecutionV2NodeProperties `json:"nodeProperties,omitempty"`
1445
1446	// ForceSendFields is a list of field names (e.g. "Digest") to
1447	// unconditionally include in API requests. By default, fields with
1448	// empty values are omitted from API requests. However, any non-pointer,
1449	// non-interface field appearing in ForceSendFields will be sent to the
1450	// server regardless of whether the field is empty or not. This may be
1451	// used to include empty fields in Patch requests.
1452	ForceSendFields []string `json:"-"`
1453
1454	// NullFields is a list of field names (e.g. "Digest") to include in API
1455	// requests with the JSON null value. By default, fields with empty
1456	// values are omitted from API requests. However, any field with an
1457	// empty value appearing in NullFields will be sent to the server as
1458	// null. It is an error if a field in this list has a non-empty value.
1459	// This may be used to include null fields in Patch requests.
1460	NullFields []string `json:"-"`
1461}
1462
1463func (s *BuildBazelRemoteExecutionV2FileNode) MarshalJSON() ([]byte, error) {
1464	type NoMethod BuildBazelRemoteExecutionV2FileNode
1465	raw := NoMethod(*s)
1466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1467}
1468
1469// BuildBazelRemoteExecutionV2FindMissingBlobsRequest: A request message
1470// for ContentAddressableStorage.FindMissingBlobs.
1471type BuildBazelRemoteExecutionV2FindMissingBlobsRequest struct {
1472	// BlobDigests: A list of the blobs to check.
1473	BlobDigests []*BuildBazelRemoteExecutionV2Digest `json:"blobDigests,omitempty"`
1474
1475	// ForceSendFields is a list of field names (e.g. "BlobDigests") to
1476	// unconditionally include in API requests. By default, fields with
1477	// empty values are omitted from API requests. However, any non-pointer,
1478	// non-interface field appearing in ForceSendFields will be sent to the
1479	// server regardless of whether the field is empty or not. This may be
1480	// used to include empty fields in Patch requests.
1481	ForceSendFields []string `json:"-"`
1482
1483	// NullFields is a list of field names (e.g. "BlobDigests") to include
1484	// in API requests with the JSON null value. By default, fields with
1485	// empty values are omitted from API requests. However, any field with
1486	// an empty value appearing in NullFields will be sent to the server as
1487	// null. It is an error if a field in this list has a non-empty value.
1488	// This may be used to include null fields in Patch requests.
1489	NullFields []string `json:"-"`
1490}
1491
1492func (s *BuildBazelRemoteExecutionV2FindMissingBlobsRequest) MarshalJSON() ([]byte, error) {
1493	type NoMethod BuildBazelRemoteExecutionV2FindMissingBlobsRequest
1494	raw := NoMethod(*s)
1495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1496}
1497
1498// BuildBazelRemoteExecutionV2FindMissingBlobsResponse: A response
1499// message for ContentAddressableStorage.FindMissingBlobs.
1500type BuildBazelRemoteExecutionV2FindMissingBlobsResponse struct {
1501	// MissingBlobDigests: A list of the blobs requested *not* present in
1502	// the storage.
1503	MissingBlobDigests []*BuildBazelRemoteExecutionV2Digest `json:"missingBlobDigests,omitempty"`
1504
1505	// ServerResponse contains the HTTP response code and headers from the
1506	// server.
1507	googleapi.ServerResponse `json:"-"`
1508
1509	// ForceSendFields is a list of field names (e.g. "MissingBlobDigests")
1510	// to unconditionally include in API requests. By default, fields with
1511	// empty values are omitted from API requests. However, any non-pointer,
1512	// non-interface field appearing in ForceSendFields will be sent to the
1513	// server regardless of whether the field is empty or not. This may be
1514	// used to include empty fields in Patch requests.
1515	ForceSendFields []string `json:"-"`
1516
1517	// NullFields is a list of field names (e.g. "MissingBlobDigests") to
1518	// include in API requests with the JSON null value. By default, fields
1519	// with empty values are omitted from API requests. However, any field
1520	// with an empty value appearing in NullFields will be sent to the
1521	// server as null. It is an error if a field in this list has a
1522	// non-empty value. This may be used to include null fields in Patch
1523	// requests.
1524	NullFields []string `json:"-"`
1525}
1526
1527func (s *BuildBazelRemoteExecutionV2FindMissingBlobsResponse) MarshalJSON() ([]byte, error) {
1528	type NoMethod BuildBazelRemoteExecutionV2FindMissingBlobsResponse
1529	raw := NoMethod(*s)
1530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1531}
1532
1533// BuildBazelRemoteExecutionV2GetTreeResponse: A response message for
1534// ContentAddressableStorage.GetTree.
1535type BuildBazelRemoteExecutionV2GetTreeResponse struct {
1536	// Directories: The directories descended from the requested root.
1537	Directories []*BuildBazelRemoteExecutionV2Directory `json:"directories,omitempty"`
1538
1539	// NextPageToken: If present, signifies that there are more results
1540	// which the client can retrieve by passing this as the page_token in a
1541	// subsequent request. If empty, signifies that this is the last page of
1542	// results.
1543	NextPageToken string `json:"nextPageToken,omitempty"`
1544
1545	// ServerResponse contains the HTTP response code and headers from the
1546	// server.
1547	googleapi.ServerResponse `json:"-"`
1548
1549	// ForceSendFields is a list of field names (e.g. "Directories") to
1550	// unconditionally include in API requests. By default, fields with
1551	// empty values are omitted from API requests. However, any non-pointer,
1552	// non-interface field appearing in ForceSendFields will be sent to the
1553	// server regardless of whether the field is empty or not. This may be
1554	// used to include empty fields in Patch requests.
1555	ForceSendFields []string `json:"-"`
1556
1557	// NullFields is a list of field names (e.g. "Directories") to include
1558	// in API requests with the JSON null value. By default, fields with
1559	// empty values are omitted from API requests. However, any field with
1560	// an empty value appearing in NullFields will be sent to the server as
1561	// null. It is an error if a field in this list has a non-empty value.
1562	// This may be used to include null fields in Patch requests.
1563	NullFields []string `json:"-"`
1564}
1565
1566func (s *BuildBazelRemoteExecutionV2GetTreeResponse) MarshalJSON() ([]byte, error) {
1567	type NoMethod BuildBazelRemoteExecutionV2GetTreeResponse
1568	raw := NoMethod(*s)
1569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1570}
1571
1572// BuildBazelRemoteExecutionV2LogFile: A `LogFile` is a log stored in
1573// the CAS.
1574type BuildBazelRemoteExecutionV2LogFile struct {
1575	// Digest: The digest of the log contents.
1576	Digest *BuildBazelRemoteExecutionV2Digest `json:"digest,omitempty"`
1577
1578	// HumanReadable: This is a hint as to the purpose of the log, and is
1579	// set to true if the log is human-readable text that can be usefully
1580	// displayed to a user, and false otherwise. For instance, if a
1581	// command-line client wishes to print the server logs to the terminal
1582	// for a failed action, this allows it to avoid displaying a binary
1583	// file.
1584	HumanReadable bool `json:"humanReadable,omitempty"`
1585
1586	// ForceSendFields is a list of field names (e.g. "Digest") to
1587	// unconditionally include in API requests. By default, fields with
1588	// empty values are omitted from API requests. However, any non-pointer,
1589	// non-interface field appearing in ForceSendFields will be sent to the
1590	// server regardless of whether the field is empty or not. This may be
1591	// used to include empty fields in Patch requests.
1592	ForceSendFields []string `json:"-"`
1593
1594	// NullFields is a list of field names (e.g. "Digest") to include in API
1595	// requests with the JSON null value. By default, fields with empty
1596	// values are omitted from API requests. However, any field with an
1597	// empty value appearing in NullFields will be sent to the server as
1598	// null. It is an error if a field in this list has a non-empty value.
1599	// This may be used to include null fields in Patch requests.
1600	NullFields []string `json:"-"`
1601}
1602
1603func (s *BuildBazelRemoteExecutionV2LogFile) MarshalJSON() ([]byte, error) {
1604	type NoMethod BuildBazelRemoteExecutionV2LogFile
1605	raw := NoMethod(*s)
1606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1607}
1608
1609// BuildBazelRemoteExecutionV2NodeProperties: Node properties for
1610// FileNodes, DirectoryNodes, and SymlinkNodes. The server is
1611// responsible for specifying the properties that it accepts.
1612type BuildBazelRemoteExecutionV2NodeProperties struct {
1613	// Mtime: The file's last modification timestamp.
1614	Mtime string `json:"mtime,omitempty"`
1615
1616	// Properties: A list of string-based NodeProperties.
1617	Properties []*BuildBazelRemoteExecutionV2NodeProperty `json:"properties,omitempty"`
1618
1619	// UnixMode: The UNIX file mode, e.g., 0755.
1620	UnixMode int64 `json:"unixMode,omitempty"`
1621
1622	// ForceSendFields is a list of field names (e.g. "Mtime") to
1623	// unconditionally include in API requests. By default, fields with
1624	// empty values are omitted from API requests. However, any non-pointer,
1625	// non-interface field appearing in ForceSendFields will be sent to the
1626	// server regardless of whether the field is empty or not. This may be
1627	// used to include empty fields in Patch requests.
1628	ForceSendFields []string `json:"-"`
1629
1630	// NullFields is a list of field names (e.g. "Mtime") to include in API
1631	// requests with the JSON null value. By default, fields with empty
1632	// values are omitted from API requests. However, any field with an
1633	// empty value appearing in NullFields will be sent to the server as
1634	// null. It is an error if a field in this list has a non-empty value.
1635	// This may be used to include null fields in Patch requests.
1636	NullFields []string `json:"-"`
1637}
1638
1639func (s *BuildBazelRemoteExecutionV2NodeProperties) MarshalJSON() ([]byte, error) {
1640	type NoMethod BuildBazelRemoteExecutionV2NodeProperties
1641	raw := NoMethod(*s)
1642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1643}
1644
1645// BuildBazelRemoteExecutionV2NodeProperty: A single property for
1646// FileNodes, DirectoryNodes, and SymlinkNodes. The server is
1647// responsible for specifying the property `name`s that it accepts. If
1648// permitted by the server, the same `name` may occur multiple times.
1649type BuildBazelRemoteExecutionV2NodeProperty struct {
1650	// Name: The property name.
1651	Name string `json:"name,omitempty"`
1652
1653	// Value: The property value.
1654	Value string `json:"value,omitempty"`
1655
1656	// ForceSendFields is a list of field names (e.g. "Name") to
1657	// unconditionally include in API requests. By default, fields with
1658	// empty values are omitted from API requests. However, any non-pointer,
1659	// non-interface field appearing in ForceSendFields will be sent to the
1660	// server regardless of whether the field is empty or not. This may be
1661	// used to include empty fields in Patch requests.
1662	ForceSendFields []string `json:"-"`
1663
1664	// NullFields is a list of field names (e.g. "Name") to include in API
1665	// requests with the JSON null value. By default, fields with empty
1666	// values are omitted from API requests. However, any field with an
1667	// empty value appearing in NullFields will be sent to the server as
1668	// null. It is an error if a field in this list has a non-empty value.
1669	// This may be used to include null fields in Patch requests.
1670	NullFields []string `json:"-"`
1671}
1672
1673func (s *BuildBazelRemoteExecutionV2NodeProperty) MarshalJSON() ([]byte, error) {
1674	type NoMethod BuildBazelRemoteExecutionV2NodeProperty
1675	raw := NoMethod(*s)
1676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1677}
1678
1679// BuildBazelRemoteExecutionV2OutputDirectory: An `OutputDirectory` is
1680// the output in an `ActionResult` corresponding to a directory's full
1681// contents rather than a single file.
1682type BuildBazelRemoteExecutionV2OutputDirectory struct {
1683	// Path: The full path of the directory relative to the working
1684	// directory. The path separator is a forward slash `/`. Since this is a
1685	// relative path, it MUST NOT begin with a leading forward slash. The
1686	// empty string value is allowed, and it denotes the entire working
1687	// directory.
1688	Path string `json:"path,omitempty"`
1689
1690	// TreeDigest: The digest of the encoded Tree proto containing the
1691	// directory's contents.
1692	TreeDigest *BuildBazelRemoteExecutionV2Digest `json:"treeDigest,omitempty"`
1693
1694	// ForceSendFields is a list of field names (e.g. "Path") to
1695	// unconditionally include in API requests. By default, fields with
1696	// empty values are omitted from API requests. However, any non-pointer,
1697	// non-interface field appearing in ForceSendFields will be sent to the
1698	// server regardless of whether the field is empty or not. This may be
1699	// used to include empty fields in Patch requests.
1700	ForceSendFields []string `json:"-"`
1701
1702	// NullFields is a list of field names (e.g. "Path") to include in API
1703	// requests with the JSON null value. By default, fields with empty
1704	// values are omitted from API requests. However, any field with an
1705	// empty value appearing in NullFields will be sent to the server as
1706	// null. It is an error if a field in this list has a non-empty value.
1707	// This may be used to include null fields in Patch requests.
1708	NullFields []string `json:"-"`
1709}
1710
1711func (s *BuildBazelRemoteExecutionV2OutputDirectory) MarshalJSON() ([]byte, error) {
1712	type NoMethod BuildBazelRemoteExecutionV2OutputDirectory
1713	raw := NoMethod(*s)
1714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1715}
1716
1717// BuildBazelRemoteExecutionV2OutputFile: An `OutputFile` is similar to
1718// a FileNode, but it is used as an output in an `ActionResult`. It
1719// allows a full file path rather than only a name.
1720type BuildBazelRemoteExecutionV2OutputFile struct {
1721	// Contents: The contents of the file if inlining was requested. The
1722	// server SHOULD NOT inline file contents unless requested by the client
1723	// in the GetActionResultRequest message. The server MAY omit inlining,
1724	// even if requested, and MUST do so if inlining would cause the
1725	// response to exceed message size limits.
1726	Contents string `json:"contents,omitempty"`
1727
1728	// Digest: The digest of the file's content.
1729	Digest *BuildBazelRemoteExecutionV2Digest `json:"digest,omitempty"`
1730
1731	// IsExecutable: True if file is executable, false otherwise.
1732	IsExecutable bool `json:"isExecutable,omitempty"`
1733
1734	NodeProperties *BuildBazelRemoteExecutionV2NodeProperties `json:"nodeProperties,omitempty"`
1735
1736	// Path: The full path of the file relative to the working directory,
1737	// including the filename. The path separator is a forward slash `/`.
1738	// Since this is a relative path, it MUST NOT begin with a leading
1739	// forward slash.
1740	Path string `json:"path,omitempty"`
1741
1742	// ForceSendFields is a list of field names (e.g. "Contents") to
1743	// unconditionally include in API requests. By default, fields with
1744	// empty values are omitted from API requests. However, any non-pointer,
1745	// non-interface field appearing in ForceSendFields will be sent to the
1746	// server regardless of whether the field is empty or not. This may be
1747	// used to include empty fields in Patch requests.
1748	ForceSendFields []string `json:"-"`
1749
1750	// NullFields is a list of field names (e.g. "Contents") to include in
1751	// API requests with the JSON null value. By default, fields with empty
1752	// values are omitted from API requests. However, any field with an
1753	// empty value appearing in NullFields will be sent to the server as
1754	// null. It is an error if a field in this list has a non-empty value.
1755	// This may be used to include null fields in Patch requests.
1756	NullFields []string `json:"-"`
1757}
1758
1759func (s *BuildBazelRemoteExecutionV2OutputFile) MarshalJSON() ([]byte, error) {
1760	type NoMethod BuildBazelRemoteExecutionV2OutputFile
1761	raw := NoMethod(*s)
1762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1763}
1764
1765// BuildBazelRemoteExecutionV2OutputSymlink: An `OutputSymlink` is
1766// similar to a Symlink, but it is used as an output in an
1767// `ActionResult`. `OutputSymlink` is binary-compatible with
1768// `SymlinkNode`.
1769type BuildBazelRemoteExecutionV2OutputSymlink struct {
1770	NodeProperties *BuildBazelRemoteExecutionV2NodeProperties `json:"nodeProperties,omitempty"`
1771
1772	// Path: The full path of the symlink relative to the working directory,
1773	// including the filename. The path separator is a forward slash `/`.
1774	// Since this is a relative path, it MUST NOT begin with a leading
1775	// forward slash.
1776	Path string `json:"path,omitempty"`
1777
1778	// Target: The target path of the symlink. The path separator is a
1779	// forward slash `/`. The target path can be relative to the parent
1780	// directory of the symlink or it can be an absolute path starting with
1781	// `/`. Support for absolute paths can be checked using the Capabilities
1782	// API. `..` components are allowed anywhere in the target path.
1783	Target string `json:"target,omitempty"`
1784
1785	// ForceSendFields is a list of field names (e.g. "NodeProperties") to
1786	// unconditionally include in API requests. By default, fields with
1787	// empty values are omitted from API requests. However, any non-pointer,
1788	// non-interface field appearing in ForceSendFields will be sent to the
1789	// server regardless of whether the field is empty or not. This may be
1790	// used to include empty fields in Patch requests.
1791	ForceSendFields []string `json:"-"`
1792
1793	// NullFields is a list of field names (e.g. "NodeProperties") to
1794	// include in API requests with the JSON null value. By default, fields
1795	// with empty values are omitted from API requests. However, any field
1796	// with an empty value appearing in NullFields will be sent to the
1797	// server as null. It is an error if a field in this list has a
1798	// non-empty value. This may be used to include null fields in Patch
1799	// requests.
1800	NullFields []string `json:"-"`
1801}
1802
1803func (s *BuildBazelRemoteExecutionV2OutputSymlink) MarshalJSON() ([]byte, error) {
1804	type NoMethod BuildBazelRemoteExecutionV2OutputSymlink
1805	raw := NoMethod(*s)
1806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1807}
1808
1809// BuildBazelRemoteExecutionV2Platform: A `Platform` is a set of
1810// requirements, such as hardware, operating system, or compiler
1811// toolchain, for an Action's execution environment. A `Platform` is
1812// represented as a series of key-value pairs representing the
1813// properties that are required of the platform.
1814type BuildBazelRemoteExecutionV2Platform struct {
1815	// Properties: The properties that make up this platform. In order to
1816	// ensure that equivalent `Platform`s always hash to the same value, the
1817	// properties MUST be lexicographically sorted by name, and then by
1818	// value. Sorting of strings is done by code point, equivalently, by the
1819	// UTF-8 bytes.
1820	Properties []*BuildBazelRemoteExecutionV2PlatformProperty `json:"properties,omitempty"`
1821
1822	// ForceSendFields is a list of field names (e.g. "Properties") to
1823	// unconditionally include in API requests. By default, fields with
1824	// empty values are omitted from API requests. However, any non-pointer,
1825	// non-interface field appearing in ForceSendFields will be sent to the
1826	// server regardless of whether the field is empty or not. This may be
1827	// used to include empty fields in Patch requests.
1828	ForceSendFields []string `json:"-"`
1829
1830	// NullFields is a list of field names (e.g. "Properties") to include in
1831	// API requests with the JSON null value. By default, fields with empty
1832	// values are omitted from API requests. However, any field with an
1833	// empty value appearing in NullFields will be sent to the server as
1834	// null. It is an error if a field in this list has a non-empty value.
1835	// This may be used to include null fields in Patch requests.
1836	NullFields []string `json:"-"`
1837}
1838
1839func (s *BuildBazelRemoteExecutionV2Platform) MarshalJSON() ([]byte, error) {
1840	type NoMethod BuildBazelRemoteExecutionV2Platform
1841	raw := NoMethod(*s)
1842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1843}
1844
1845// BuildBazelRemoteExecutionV2PlatformProperty: A single property for
1846// the environment. The server is responsible for specifying the
1847// property `name`s that it accepts. If an unknown `name` is provided in
1848// the requirements for an Action, the server SHOULD reject the
1849// execution request. If permitted by the server, the same `name` may
1850// occur multiple times. The server is also responsible for specifying
1851// the interpretation of property `value`s. For instance, a property
1852// describing how much RAM must be available may be interpreted as
1853// allowing a worker with 16GB to fulfill a request for 8GB, while a
1854// property describing the OS environment on which the action must be
1855// performed may require an exact match with the worker's OS. The server
1856// MAY use the `value` of one or more properties to determine how it
1857// sets up the execution environment, such as by making specific system
1858// files available to the worker. Both names and values are typically
1859// case-sensitive. Note that the platform is implicitly part of the
1860// action digest, so even tiny changes in the names or values (like
1861// changing case) may result in different action cache entries.
1862type BuildBazelRemoteExecutionV2PlatformProperty struct {
1863	// Name: The property name.
1864	Name string `json:"name,omitempty"`
1865
1866	// Value: The property value.
1867	Value string `json:"value,omitempty"`
1868
1869	// ForceSendFields is a list of field names (e.g. "Name") to
1870	// unconditionally include in API requests. By default, fields with
1871	// empty values are omitted from API requests. However, any non-pointer,
1872	// non-interface field appearing in ForceSendFields will be sent to the
1873	// server regardless of whether the field is empty or not. This may be
1874	// used to include empty fields in Patch requests.
1875	ForceSendFields []string `json:"-"`
1876
1877	// NullFields is a list of field names (e.g. "Name") to include in API
1878	// requests with the JSON null value. By default, fields with empty
1879	// values are omitted from API requests. However, any field with an
1880	// empty value appearing in NullFields will be sent to the server as
1881	// null. It is an error if a field in this list has a non-empty value.
1882	// This may be used to include null fields in Patch requests.
1883	NullFields []string `json:"-"`
1884}
1885
1886func (s *BuildBazelRemoteExecutionV2PlatformProperty) MarshalJSON() ([]byte, error) {
1887	type NoMethod BuildBazelRemoteExecutionV2PlatformProperty
1888	raw := NoMethod(*s)
1889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1890}
1891
1892// BuildBazelRemoteExecutionV2PriorityCapabilities: Allowed values for
1893// priority in ResultsCachePolicy and ExecutionPolicy Used for querying
1894// both cache and execution valid priority ranges.
1895type BuildBazelRemoteExecutionV2PriorityCapabilities struct {
1896	Priorities []*BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange `json:"priorities,omitempty"`
1897
1898	// ForceSendFields is a list of field names (e.g. "Priorities") to
1899	// unconditionally include in API requests. By default, fields with
1900	// empty values are omitted from API requests. However, any non-pointer,
1901	// non-interface field appearing in ForceSendFields will be sent to the
1902	// server regardless of whether the field is empty or not. This may be
1903	// used to include empty fields in Patch requests.
1904	ForceSendFields []string `json:"-"`
1905
1906	// NullFields is a list of field names (e.g. "Priorities") to include in
1907	// API requests with the JSON null value. By default, fields with empty
1908	// values are omitted from API requests. However, any field with an
1909	// empty value appearing in NullFields will be sent to the server as
1910	// null. It is an error if a field in this list has a non-empty value.
1911	// This may be used to include null fields in Patch requests.
1912	NullFields []string `json:"-"`
1913}
1914
1915func (s *BuildBazelRemoteExecutionV2PriorityCapabilities) MarshalJSON() ([]byte, error) {
1916	type NoMethod BuildBazelRemoteExecutionV2PriorityCapabilities
1917	raw := NoMethod(*s)
1918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1919}
1920
1921// BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange:
1922// Supported range of priorities, including boundaries.
1923type BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange struct {
1924	// MaxPriority: The maximum numeric value for this priority range, which
1925	// represents the least urgent task or shortest retained item.
1926	MaxPriority int64 `json:"maxPriority,omitempty"`
1927
1928	// MinPriority: The minimum numeric value for this priority range, which
1929	// represents the most urgent task or longest retained item.
1930	MinPriority int64 `json:"minPriority,omitempty"`
1931
1932	// ForceSendFields is a list of field names (e.g. "MaxPriority") to
1933	// unconditionally include in API requests. By default, fields with
1934	// empty values are omitted from API requests. However, any non-pointer,
1935	// non-interface field appearing in ForceSendFields will be sent to the
1936	// server regardless of whether the field is empty or not. This may be
1937	// used to include empty fields in Patch requests.
1938	ForceSendFields []string `json:"-"`
1939
1940	// NullFields is a list of field names (e.g. "MaxPriority") to include
1941	// in API requests with the JSON null value. By default, fields with
1942	// empty values are omitted from API requests. However, any field with
1943	// an empty value appearing in NullFields will be sent to the server as
1944	// null. It is an error if a field in this list has a non-empty value.
1945	// This may be used to include null fields in Patch requests.
1946	NullFields []string `json:"-"`
1947}
1948
1949func (s *BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange) MarshalJSON() ([]byte, error) {
1950	type NoMethod BuildBazelRemoteExecutionV2PriorityCapabilitiesPriorityRange
1951	raw := NoMethod(*s)
1952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1953}
1954
1955// BuildBazelRemoteExecutionV2RequestMetadata: An optional Metadata to
1956// attach to any RPC request to tell the server about an external
1957// context of the request. The server may use this for logging or other
1958// purposes. To use it, the client attaches the header to the call using
1959// the canonical proto serialization: * name:
1960// `build.bazel.remote.execution.v2.requestmetadata-bin` * contents: the
1961// base64 encoded binary `RequestMetadata` message. Note: the gRPC
1962// library serializes binary headers encoded in base 64 by default
1963// (https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests).
1964// Therefore, if the gRPC library is used to pass/retrieve this
1965// metadata, the user may ignore the base64 encoding and assume it is
1966// simply serialized as a binary message.
1967type BuildBazelRemoteExecutionV2RequestMetadata struct {
1968	// ActionId: An identifier that ties multiple requests to the same
1969	// action. For example, multiple requests to the CAS, Action Cache, and
1970	// Execution API are used in order to compile foo.cc.
1971	ActionId string `json:"actionId,omitempty"`
1972
1973	// ActionMnemonic: A brief description of the kind of action, for
1974	// example, CppCompile or GoLink. There is no standard agreed set of
1975	// values for this, and they are expected to vary between different
1976	// client tools.
1977	ActionMnemonic string `json:"actionMnemonic,omitempty"`
1978
1979	// ConfigurationId: An identifier for the configuration in which the
1980	// target was built, e.g. for differentiating building host tools or
1981	// different target platforms. There is no expectation that this value
1982	// will have any particular structure, or equality across invocations,
1983	// though some client tools may offer these guarantees.
1984	ConfigurationId string `json:"configurationId,omitempty"`
1985
1986	// CorrelatedInvocationsId: An identifier to tie multiple tool
1987	// invocations together. For example, runs of foo_test, bar_test and
1988	// baz_test on a post-submit of a given patch.
1989	CorrelatedInvocationsId string `json:"correlatedInvocationsId,omitempty"`
1990
1991	// TargetId: An identifier for the target which produced this action. No
1992	// guarantees are made around how many actions may relate to a single
1993	// target.
1994	TargetId string `json:"targetId,omitempty"`
1995
1996	// ToolDetails: The details for the tool invoking the requests.
1997	ToolDetails *BuildBazelRemoteExecutionV2ToolDetails `json:"toolDetails,omitempty"`
1998
1999	// ToolInvocationId: An identifier that ties multiple actions together
2000	// to a final result. For example, multiple actions are required to
2001	// build and run foo_test.
2002	ToolInvocationId string `json:"toolInvocationId,omitempty"`
2003
2004	// ForceSendFields is a list of field names (e.g. "ActionId") to
2005	// unconditionally include in API requests. By default, fields with
2006	// empty values are omitted from API requests. However, any non-pointer,
2007	// non-interface field appearing in ForceSendFields will be sent to the
2008	// server regardless of whether the field is empty or not. This may be
2009	// used to include empty fields in Patch requests.
2010	ForceSendFields []string `json:"-"`
2011
2012	// NullFields is a list of field names (e.g. "ActionId") to include in
2013	// API requests with the JSON null value. By default, fields with empty
2014	// values are omitted from API requests. However, any field with an
2015	// empty value appearing in NullFields will be sent to the server as
2016	// null. It is an error if a field in this list has a non-empty value.
2017	// This may be used to include null fields in Patch requests.
2018	NullFields []string `json:"-"`
2019}
2020
2021func (s *BuildBazelRemoteExecutionV2RequestMetadata) MarshalJSON() ([]byte, error) {
2022	type NoMethod BuildBazelRemoteExecutionV2RequestMetadata
2023	raw := NoMethod(*s)
2024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2025}
2026
2027// BuildBazelRemoteExecutionV2ResultsCachePolicy: A `ResultsCachePolicy`
2028// is used for fine-grained control over how action outputs are stored
2029// in the CAS and Action Cache.
2030type BuildBazelRemoteExecutionV2ResultsCachePolicy struct {
2031	// Priority: The priority (relative importance) of this content in the
2032	// overall cache. Generally, a lower value means a longer retention time
2033	// or other advantage, but the interpretation of a given value is
2034	// server-dependent. A priority of 0 means a *default* value, decided by
2035	// the server. The particular semantics of this field is up to the
2036	// server. In particular, every server will have their own supported
2037	// range of priorities, and will decide how these map into
2038	// retention/eviction policy.
2039	Priority int64 `json:"priority,omitempty"`
2040
2041	// ForceSendFields is a list of field names (e.g. "Priority") to
2042	// unconditionally include in API requests. By default, fields with
2043	// empty values are omitted from API requests. However, any non-pointer,
2044	// non-interface field appearing in ForceSendFields will be sent to the
2045	// server regardless of whether the field is empty or not. This may be
2046	// used to include empty fields in Patch requests.
2047	ForceSendFields []string `json:"-"`
2048
2049	// NullFields is a list of field names (e.g. "Priority") to include in
2050	// API requests with the JSON null value. By default, fields with empty
2051	// values are omitted from API requests. However, any field with an
2052	// empty value appearing in NullFields will be sent to the server as
2053	// null. It is an error if a field in this list has a non-empty value.
2054	// This may be used to include null fields in Patch requests.
2055	NullFields []string `json:"-"`
2056}
2057
2058func (s *BuildBazelRemoteExecutionV2ResultsCachePolicy) MarshalJSON() ([]byte, error) {
2059	type NoMethod BuildBazelRemoteExecutionV2ResultsCachePolicy
2060	raw := NoMethod(*s)
2061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2062}
2063
2064// BuildBazelRemoteExecutionV2ServerCapabilities: A response message for
2065// Capabilities.GetCapabilities.
2066type BuildBazelRemoteExecutionV2ServerCapabilities struct {
2067	// CacheCapabilities: Capabilities of the remote cache system.
2068	CacheCapabilities *BuildBazelRemoteExecutionV2CacheCapabilities `json:"cacheCapabilities,omitempty"`
2069
2070	// DeprecatedApiVersion: Earliest RE API version supported, including
2071	// deprecated versions.
2072	DeprecatedApiVersion *BuildBazelSemverSemVer `json:"deprecatedApiVersion,omitempty"`
2073
2074	// ExecutionCapabilities: Capabilities of the remote execution system.
2075	ExecutionCapabilities *BuildBazelRemoteExecutionV2ExecutionCapabilities `json:"executionCapabilities,omitempty"`
2076
2077	// HighApiVersion: Latest RE API version supported.
2078	HighApiVersion *BuildBazelSemverSemVer `json:"highApiVersion,omitempty"`
2079
2080	// LowApiVersion: Earliest non-deprecated RE API version supported.
2081	LowApiVersion *BuildBazelSemverSemVer `json:"lowApiVersion,omitempty"`
2082
2083	// ServerResponse contains the HTTP response code and headers from the
2084	// server.
2085	googleapi.ServerResponse `json:"-"`
2086
2087	// ForceSendFields is a list of field names (e.g. "CacheCapabilities")
2088	// to unconditionally include in API requests. By default, fields with
2089	// empty values are omitted from API requests. However, any non-pointer,
2090	// non-interface field appearing in ForceSendFields will be sent to the
2091	// server regardless of whether the field is empty or not. This may be
2092	// used to include empty fields in Patch requests.
2093	ForceSendFields []string `json:"-"`
2094
2095	// NullFields is a list of field names (e.g. "CacheCapabilities") to
2096	// include in API requests with the JSON null value. By default, fields
2097	// with empty values are omitted from API requests. However, any field
2098	// with an empty value appearing in NullFields will be sent to the
2099	// server as null. It is an error if a field in this list has a
2100	// non-empty value. This may be used to include null fields in Patch
2101	// requests.
2102	NullFields []string `json:"-"`
2103}
2104
2105func (s *BuildBazelRemoteExecutionV2ServerCapabilities) MarshalJSON() ([]byte, error) {
2106	type NoMethod BuildBazelRemoteExecutionV2ServerCapabilities
2107	raw := NoMethod(*s)
2108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2109}
2110
2111// BuildBazelRemoteExecutionV2SymlinkNode: A `SymlinkNode` represents a
2112// symbolic link.
2113type BuildBazelRemoteExecutionV2SymlinkNode struct {
2114	// Name: The name of the symlink.
2115	Name string `json:"name,omitempty"`
2116
2117	NodeProperties *BuildBazelRemoteExecutionV2NodeProperties `json:"nodeProperties,omitempty"`
2118
2119	// Target: The target path of the symlink. The path separator is a
2120	// forward slash `/`. The target path can be relative to the parent
2121	// directory of the symlink or it can be an absolute path starting with
2122	// `/`. Support for absolute paths can be checked using the Capabilities
2123	// API. `..` components are allowed anywhere in the target path as
2124	// logical canonicalization may lead to different behavior in the
2125	// presence of directory symlinks (e.g. `foo/../bar` may not be the same
2126	// as `bar`). To reduce potential cache misses, canonicalization is
2127	// still recommended where this is possible without impacting
2128	// correctness.
2129	Target string `json:"target,omitempty"`
2130
2131	// ForceSendFields is a list of field names (e.g. "Name") to
2132	// unconditionally include in API requests. By default, fields with
2133	// empty values are omitted from API requests. However, any non-pointer,
2134	// non-interface field appearing in ForceSendFields will be sent to the
2135	// server regardless of whether the field is empty or not. This may be
2136	// used to include empty fields in Patch requests.
2137	ForceSendFields []string `json:"-"`
2138
2139	// NullFields is a list of field names (e.g. "Name") to include in API
2140	// requests with the JSON null value. By default, fields with empty
2141	// values are omitted from API requests. However, any field with an
2142	// empty value appearing in NullFields will be sent to the server as
2143	// null. It is an error if a field in this list has a non-empty value.
2144	// This may be used to include null fields in Patch requests.
2145	NullFields []string `json:"-"`
2146}
2147
2148func (s *BuildBazelRemoteExecutionV2SymlinkNode) MarshalJSON() ([]byte, error) {
2149	type NoMethod BuildBazelRemoteExecutionV2SymlinkNode
2150	raw := NoMethod(*s)
2151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2152}
2153
2154// BuildBazelRemoteExecutionV2ToolDetails: Details for the tool used to
2155// call the API.
2156type BuildBazelRemoteExecutionV2ToolDetails struct {
2157	// ToolName: Name of the tool, e.g. bazel.
2158	ToolName string `json:"toolName,omitempty"`
2159
2160	// ToolVersion: Version of the tool used for the request, e.g. 5.0.3.
2161	ToolVersion string `json:"toolVersion,omitempty"`
2162
2163	// ForceSendFields is a list of field names (e.g. "ToolName") to
2164	// unconditionally include in API requests. By default, fields with
2165	// empty values are omitted from API requests. However, any non-pointer,
2166	// non-interface field appearing in ForceSendFields will be sent to the
2167	// server regardless of whether the field is empty or not. This may be
2168	// used to include empty fields in Patch requests.
2169	ForceSendFields []string `json:"-"`
2170
2171	// NullFields is a list of field names (e.g. "ToolName") to include in
2172	// API requests with the JSON null value. By default, fields with empty
2173	// values are omitted from API requests. However, any field with an
2174	// empty value appearing in NullFields will be sent to the server as
2175	// null. It is an error if a field in this list has a non-empty value.
2176	// This may be used to include null fields in Patch requests.
2177	NullFields []string `json:"-"`
2178}
2179
2180func (s *BuildBazelRemoteExecutionV2ToolDetails) MarshalJSON() ([]byte, error) {
2181	type NoMethod BuildBazelRemoteExecutionV2ToolDetails
2182	raw := NoMethod(*s)
2183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2184}
2185
2186// BuildBazelRemoteExecutionV2Tree: A `Tree` contains all the Directory
2187// protos in a single directory Merkle tree, compressed into one
2188// message.
2189type BuildBazelRemoteExecutionV2Tree struct {
2190	// Children: All the child directories: the directories referred to by
2191	// the root and, recursively, all its children. In order to reconstruct
2192	// the directory tree, the client must take the digests of each of the
2193	// child directories and then build up a tree starting from the `root`.
2194	Children []*BuildBazelRemoteExecutionV2Directory `json:"children,omitempty"`
2195
2196	// Root: The root directory in the tree.
2197	Root *BuildBazelRemoteExecutionV2Directory `json:"root,omitempty"`
2198
2199	// ForceSendFields is a list of field names (e.g. "Children") to
2200	// unconditionally include in API requests. By default, fields with
2201	// empty values are omitted from API requests. However, any non-pointer,
2202	// non-interface field appearing in ForceSendFields will be sent to the
2203	// server regardless of whether the field is empty or not. This may be
2204	// used to include empty fields in Patch requests.
2205	ForceSendFields []string `json:"-"`
2206
2207	// NullFields is a list of field names (e.g. "Children") to include in
2208	// API requests with the JSON null value. By default, fields with empty
2209	// values are omitted from API requests. However, any field with an
2210	// empty value appearing in NullFields will be sent to the server as
2211	// null. It is an error if a field in this list has a non-empty value.
2212	// This may be used to include null fields in Patch requests.
2213	NullFields []string `json:"-"`
2214}
2215
2216func (s *BuildBazelRemoteExecutionV2Tree) MarshalJSON() ([]byte, error) {
2217	type NoMethod BuildBazelRemoteExecutionV2Tree
2218	raw := NoMethod(*s)
2219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2220}
2221
2222// BuildBazelRemoteExecutionV2WaitExecutionRequest: A request message
2223// for WaitExecution.
2224type BuildBazelRemoteExecutionV2WaitExecutionRequest struct {
2225}
2226
2227// BuildBazelSemverSemVer: The full version of a given tool.
2228type BuildBazelSemverSemVer struct {
2229	// Major: The major version, e.g 10 for 10.2.3.
2230	Major int64 `json:"major,omitempty"`
2231
2232	// Minor: The minor version, e.g. 2 for 10.2.3.
2233	Minor int64 `json:"minor,omitempty"`
2234
2235	// Patch: The patch version, e.g 3 for 10.2.3.
2236	Patch int64 `json:"patch,omitempty"`
2237
2238	// Prerelease: The pre-release version. Either this field or
2239	// major/minor/patch fields must be filled. They are mutually exclusive.
2240	// Pre-release versions are assumed to be earlier than any released
2241	// versions.
2242	Prerelease string `json:"prerelease,omitempty"`
2243
2244	// ForceSendFields is a list of field names (e.g. "Major") to
2245	// unconditionally include in API requests. By default, fields with
2246	// empty values are omitted from API requests. However, any non-pointer,
2247	// non-interface field appearing in ForceSendFields will be sent to the
2248	// server regardless of whether the field is empty or not. This may be
2249	// used to include empty fields in Patch requests.
2250	ForceSendFields []string `json:"-"`
2251
2252	// NullFields is a list of field names (e.g. "Major") to include in API
2253	// requests with the JSON null value. By default, fields with empty
2254	// values are omitted from API requests. However, any field with an
2255	// empty value appearing in NullFields will be sent to the server as
2256	// null. It is an error if a field in this list has a non-empty value.
2257	// This may be used to include null fields in Patch requests.
2258	NullFields []string `json:"-"`
2259}
2260
2261func (s *BuildBazelSemverSemVer) MarshalJSON() ([]byte, error) {
2262	type NoMethod BuildBazelSemverSemVer
2263	raw := NoMethod(*s)
2264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2265}
2266
2267// GoogleDevtoolsRemotebuildbotCommandDurations: CommandDuration
2268// contains the various duration metrics tracked when a bot performs a
2269// command.
2270type GoogleDevtoolsRemotebuildbotCommandDurations struct {
2271	// CasRelease: The time spent to release the CAS blobs used by the task.
2272	CasRelease string `json:"casRelease,omitempty"`
2273
2274	// CmWaitForAssignment: The time spent waiting for Container Manager to
2275	// assign an asynchronous container for execution.
2276	CmWaitForAssignment string `json:"cmWaitForAssignment,omitempty"`
2277
2278	// DockerPrep: The time spent preparing the command to be run in a
2279	// Docker container (includes pulling the Docker image, if necessary).
2280	DockerPrep string `json:"dockerPrep,omitempty"`
2281
2282	// DockerPrepStartTime: The timestamp when docker preparation begins.
2283	DockerPrepStartTime string `json:"dockerPrepStartTime,omitempty"`
2284
2285	// Download: The time spent downloading the input files and constructing
2286	// the working directory.
2287	Download string `json:"download,omitempty"`
2288
2289	// DownloadStartTime: The timestamp when downloading the input files
2290	// begins.
2291	DownloadStartTime string `json:"downloadStartTime,omitempty"`
2292
2293	// ExecStartTime: The timestamp when execution begins.
2294	ExecStartTime string `json:"execStartTime,omitempty"`
2295
2296	// Execution: The time spent executing the command (i.e., doing useful
2297	// work).
2298	Execution string `json:"execution,omitempty"`
2299
2300	// IsoPrepDone: The timestamp when preparation is done and bot starts
2301	// downloading files.
2302	IsoPrepDone string `json:"isoPrepDone,omitempty"`
2303
2304	// Overall: The time spent completing the command, in total.
2305	Overall string `json:"overall,omitempty"`
2306
2307	// Stdout: The time spent uploading the stdout logs.
2308	Stdout string `json:"stdout,omitempty"`
2309
2310	// Upload: The time spent uploading the output files.
2311	Upload string `json:"upload,omitempty"`
2312
2313	// UploadStartTime: The timestamp when uploading the output files
2314	// begins.
2315	UploadStartTime string `json:"uploadStartTime,omitempty"`
2316
2317	// ForceSendFields is a list of field names (e.g. "CasRelease") to
2318	// unconditionally include in API requests. By default, fields with
2319	// empty values are omitted from API requests. However, any non-pointer,
2320	// non-interface field appearing in ForceSendFields will be sent to the
2321	// server regardless of whether the field is empty or not. This may be
2322	// used to include empty fields in Patch requests.
2323	ForceSendFields []string `json:"-"`
2324
2325	// NullFields is a list of field names (e.g. "CasRelease") to include in
2326	// API requests with the JSON null value. By default, fields with empty
2327	// values are omitted from API requests. However, any field with an
2328	// empty value appearing in NullFields will be sent to the server as
2329	// null. It is an error if a field in this list has a non-empty value.
2330	// This may be used to include null fields in Patch requests.
2331	NullFields []string `json:"-"`
2332}
2333
2334func (s *GoogleDevtoolsRemotebuildbotCommandDurations) MarshalJSON() ([]byte, error) {
2335	type NoMethod GoogleDevtoolsRemotebuildbotCommandDurations
2336	raw := NoMethod(*s)
2337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2338}
2339
2340// GoogleDevtoolsRemotebuildbotCommandEvents: CommandEvents contains
2341// counters for the number of warnings and errors that occurred during
2342// the execution of a command.
2343type GoogleDevtoolsRemotebuildbotCommandEvents struct {
2344	// CmUsage: Indicates if and how Container Manager is being used for
2345	// task execution.
2346	//
2347	// Possible values:
2348	//   "CONFIG_NONE" - Container Manager is disabled or not running for
2349	// this execution.
2350	//   "CONFIG_MATCH" - Container Manager is enabled and there was a
2351	// matching container available for use during execution.
2352	//   "CONFIG_MISMATCH" - Container Manager is enabled, but there was no
2353	// matching container available for execution.
2354	CmUsage string `json:"cmUsage,omitempty"`
2355
2356	// DockerCacheHit: Indicates whether we are using a cached Docker image
2357	// (true) or had to pull the Docker image (false) for this command.
2358	DockerCacheHit bool `json:"dockerCacheHit,omitempty"`
2359
2360	// DockerImageName: Docker Image name.
2361	DockerImageName string `json:"dockerImageName,omitempty"`
2362
2363	// InputCacheMiss: The input cache miss ratio.
2364	InputCacheMiss float64 `json:"inputCacheMiss,omitempty"`
2365
2366	// NumErrors: The number of errors reported.
2367	NumErrors uint64 `json:"numErrors,omitempty,string"`
2368
2369	// NumWarnings: The number of warnings reported.
2370	NumWarnings uint64 `json:"numWarnings,omitempty,string"`
2371
2372	// OutputLocation: Indicates whether output files and/or output
2373	// directories were found relative to the execution root or to the user
2374	// provided work directory or both or none.
2375	//
2376	// Possible values:
2377	//   "LOCATION_UNDEFINED" - Location is set to LOCATION_UNDEFINED for
2378	// tasks where the working directorty is not specified or is identical
2379	// to the execution root directory.
2380	//   "LOCATION_NONE" - No output files or directories were found neither
2381	// relative to the execution root directory nor relative to the working
2382	// directory.
2383	//   "LOCATION_EXEC_ROOT_RELATIVE" - Output files or directories were
2384	// found relative to the execution root directory but not relative to
2385	// the working directory.
2386	//   "LOCATION_WORKING_DIR_RELATIVE" - Output files or directories were
2387	// found relative to the working directory but not relative to the
2388	// execution root directory.
2389	//   "LOCATION_EXEC_ROOT_AND_WORKING_DIR_RELATIVE" - Output files or
2390	// directories were found both relative to the execution root directory
2391	// and relative to the working directory.
2392	OutputLocation string `json:"outputLocation,omitempty"`
2393
2394	// UsedAsyncContainer: Indicates whether an asynchronous container was
2395	// used for execution.
2396	UsedAsyncContainer bool `json:"usedAsyncContainer,omitempty"`
2397
2398	// ForceSendFields is a list of field names (e.g. "CmUsage") to
2399	// unconditionally include in API requests. By default, fields with
2400	// empty values are omitted from API requests. However, any non-pointer,
2401	// non-interface field appearing in ForceSendFields will be sent to the
2402	// server regardless of whether the field is empty or not. This may be
2403	// used to include empty fields in Patch requests.
2404	ForceSendFields []string `json:"-"`
2405
2406	// NullFields is a list of field names (e.g. "CmUsage") to include in
2407	// API requests with the JSON null value. By default, fields with empty
2408	// values are omitted from API requests. However, any field with an
2409	// empty value appearing in NullFields will be sent to the server as
2410	// null. It is an error if a field in this list has a non-empty value.
2411	// This may be used to include null fields in Patch requests.
2412	NullFields []string `json:"-"`
2413}
2414
2415func (s *GoogleDevtoolsRemotebuildbotCommandEvents) MarshalJSON() ([]byte, error) {
2416	type NoMethod GoogleDevtoolsRemotebuildbotCommandEvents
2417	raw := NoMethod(*s)
2418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2419}
2420
2421func (s *GoogleDevtoolsRemotebuildbotCommandEvents) UnmarshalJSON(data []byte) error {
2422	type NoMethod GoogleDevtoolsRemotebuildbotCommandEvents
2423	var s1 struct {
2424		InputCacheMiss gensupport.JSONFloat64 `json:"inputCacheMiss"`
2425		*NoMethod
2426	}
2427	s1.NoMethod = (*NoMethod)(s)
2428	if err := json.Unmarshal(data, &s1); err != nil {
2429		return err
2430	}
2431	s.InputCacheMiss = float64(s1.InputCacheMiss)
2432	return nil
2433}
2434
2435// GoogleDevtoolsRemotebuildbotCommandStatus: The internal status of the
2436// command result.
2437type GoogleDevtoolsRemotebuildbotCommandStatus struct {
2438	// Code: The status code.
2439	//
2440	// Possible values:
2441	//   "OK" - The command succeeded.
2442	//   "INVALID_ARGUMENT" - The command input was invalid.
2443	//   "DEADLINE_EXCEEDED" - The command had passed its expiry time while
2444	// it was still running.
2445	//   "NOT_FOUND" - The resources requested by the command were not
2446	// found.
2447	//   "PERMISSION_DENIED" - The command failed due to permission errors.
2448	//   "INTERNAL" - The command failed because of some invariants expected
2449	// by the underlying system have been broken. This usually indicates a
2450	// bug wit the system.
2451	//   "ABORTED" - The command was aborted.
2452	//   "FAILED_PRECONDITION" - The command failed because the system is
2453	// not in a state required for the command, e.g. the command inputs
2454	// cannot be found on the server.
2455	//   "CLEANUP_ERROR" - The bot failed to do the cleanup, e.g. unable to
2456	// delete the command working directory or the command process.
2457	//   "DOWNLOAD_INPUTS_ERROR" - The bot failed to download the inputs.
2458	//   "UNKNOWN" - Unknown error.
2459	//   "UPLOAD_OUTPUTS_ERROR" - The bot failed to upload the outputs.
2460	//   "UPLOAD_OUTPUTS_BYTES_LIMIT_EXCEEDED" - The bot tried to upload
2461	// files having a total size that is too large.
2462	//   "DOCKER_LOGIN_ERROR" - The bot failed to login to docker.
2463	//   "DOCKER_IMAGE_PULL_ERROR" - The bot failed to pull docker image.
2464	//   "DOCKER_IMAGE_EXIST_ERROR" - The bot failed to check docker images.
2465	//   "DUPLICATE_INPUTS" - The inputs contain duplicate files.
2466	//   "DOCKER_IMAGE_PERMISSION_DENIED" - The bot doesn't have the
2467	// permissions to pull docker images.
2468	//   "DOCKER_IMAGE_NOT_FOUND" - The docker image cannot be found.
2469	//   "WORKING_DIR_NOT_FOUND" - Working directory is not found.
2470	//   "WORKING_DIR_NOT_IN_BASE_DIR" - Working directory is not under the
2471	// base directory
2472	//   "DOCKER_UNAVAILABLE" - There are issues with docker
2473	// service/runtime.
2474	//   "NO_CUDA_CAPABLE_DEVICE" - The command failed with "no cuda-capable
2475	// device is detected" error.
2476	//   "REMOTE_CAS_DOWNLOAD_ERROR" - The bot encountered errors from
2477	// remote CAS when downloading blobs.
2478	//   "REMOTE_CAS_UPLOAD_ERROR" - The bot encountered errors from remote
2479	// CAS when uploading blobs.
2480	//   "LOCAL_CASPROXY_NOT_RUNNING" - The local casproxy is not running.
2481	//   "DOCKER_CREATE_CONTAINER_ERROR" - The bot couldn't start the
2482	// container.
2483	//   "DOCKER_INVALID_ULIMIT" - The docker ulimit is not valid.
2484	//   "DOCKER_UNKNOWN_RUNTIME" - The docker runtime is unknown.
2485	//   "DOCKER_UNKNOWN_CAPABILITY" - The docker capability is unknown.
2486	//   "DOCKER_UNKNOWN_ERROR" - The command failed with unknown docker
2487	// errors.
2488	//   "DOCKER_CREATE_COMPUTE_SYSTEM_ERROR" - Docker failed to run
2489	// containers with CreateComputeSystem error.
2490	//   "DOCKER_PREPARELAYER_ERROR" - Docker failed to run containers with
2491	// hcsshim::PrepareLayer error.
2492	//   "DOCKER_INCOMPATIBLE_OS_ERROR" - Docker incompatible operating
2493	// system error.
2494	//   "DOCKER_CREATE_RUNTIME_FILE_NOT_FOUND" - Docker failed to create
2495	// OCI runtime because of file not found.
2496	//   "DOCKER_CREATE_RUNTIME_PERMISSION_DENIED" - Docker failed to create
2497	// OCI runtime because of permission denied.
2498	//   "DOCKER_CREATE_PROCESS_FILE_NOT_FOUND" - Docker failed to create
2499	// process because of file not found.
2500	//   "DOCKER_CREATE_COMPUTE_SYSTEM_INCORRECT_PARAMETER_ERROR" - Docker
2501	// failed to run containers with CreateComputeSystem error that involves
2502	// an incorrect parameter (more specific version of
2503	// DOCKER_CREATE_COMPUTE_SYSTEM_ERROR that is user-caused).
2504	//   "DOCKER_TOO_MANY_SYMBOLIC_LINK_LEVELS" - Docker failed to create an
2505	// overlay mount because of too many levels of symbolic links.
2506	//   "LOCAL_CONTAINER_MANAGER_NOT_RUNNING" - The local Container Manager
2507	// is not running.
2508	//   "DOCKER_IMAGE_VPCSC_PERMISSION_DENIED" - Docker failed because a
2509	// request was denied by the organization's policy.
2510	Code string `json:"code,omitempty"`
2511
2512	// Message: The error message.
2513	Message string `json:"message,omitempty"`
2514
2515	// ForceSendFields is a list of field names (e.g. "Code") to
2516	// unconditionally include in API requests. By default, fields with
2517	// empty values are omitted from API requests. However, any non-pointer,
2518	// non-interface field appearing in ForceSendFields will be sent to the
2519	// server regardless of whether the field is empty or not. This may be
2520	// used to include empty fields in Patch requests.
2521	ForceSendFields []string `json:"-"`
2522
2523	// NullFields is a list of field names (e.g. "Code") to include in API
2524	// requests with the JSON null value. By default, fields with empty
2525	// values are omitted from API requests. However, any field with an
2526	// empty value appearing in NullFields will be sent to the server as
2527	// null. It is an error if a field in this list has a non-empty value.
2528	// This may be used to include null fields in Patch requests.
2529	NullFields []string `json:"-"`
2530}
2531
2532func (s *GoogleDevtoolsRemotebuildbotCommandStatus) MarshalJSON() ([]byte, error) {
2533	type NoMethod GoogleDevtoolsRemotebuildbotCommandStatus
2534	raw := NoMethod(*s)
2535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2536}
2537
2538// GoogleDevtoolsRemotebuildbotResourceUsage: ResourceUsage is the
2539// system resource usage of the host machine.
2540type GoogleDevtoolsRemotebuildbotResourceUsage struct {
2541	CpuUsedPercent float64 `json:"cpuUsedPercent,omitempty"`
2542
2543	DiskUsage *GoogleDevtoolsRemotebuildbotResourceUsageStat `json:"diskUsage,omitempty"`
2544
2545	MemoryUsage *GoogleDevtoolsRemotebuildbotResourceUsageStat `json:"memoryUsage,omitempty"`
2546
2547	// ForceSendFields is a list of field names (e.g. "CpuUsedPercent") to
2548	// unconditionally include in API requests. By default, fields with
2549	// empty values are omitted from API requests. However, any non-pointer,
2550	// non-interface field appearing in ForceSendFields will be sent to the
2551	// server regardless of whether the field is empty or not. This may be
2552	// used to include empty fields in Patch requests.
2553	ForceSendFields []string `json:"-"`
2554
2555	// NullFields is a list of field names (e.g. "CpuUsedPercent") to
2556	// include in API requests with the JSON null value. By default, fields
2557	// with empty values are omitted from API requests. However, any field
2558	// with an empty value appearing in NullFields will be sent to the
2559	// server as null. It is an error if a field in this list has a
2560	// non-empty value. This may be used to include null fields in Patch
2561	// requests.
2562	NullFields []string `json:"-"`
2563}
2564
2565func (s *GoogleDevtoolsRemotebuildbotResourceUsage) MarshalJSON() ([]byte, error) {
2566	type NoMethod GoogleDevtoolsRemotebuildbotResourceUsage
2567	raw := NoMethod(*s)
2568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2569}
2570
2571func (s *GoogleDevtoolsRemotebuildbotResourceUsage) UnmarshalJSON(data []byte) error {
2572	type NoMethod GoogleDevtoolsRemotebuildbotResourceUsage
2573	var s1 struct {
2574		CpuUsedPercent gensupport.JSONFloat64 `json:"cpuUsedPercent"`
2575		*NoMethod
2576	}
2577	s1.NoMethod = (*NoMethod)(s)
2578	if err := json.Unmarshal(data, &s1); err != nil {
2579		return err
2580	}
2581	s.CpuUsedPercent = float64(s1.CpuUsedPercent)
2582	return nil
2583}
2584
2585type GoogleDevtoolsRemotebuildbotResourceUsageStat struct {
2586	Total uint64 `json:"total,omitempty,string"`
2587
2588	Used uint64 `json:"used,omitempty,string"`
2589
2590	// ForceSendFields is a list of field names (e.g. "Total") to
2591	// unconditionally include in API requests. By default, fields with
2592	// empty values are omitted from API requests. However, any non-pointer,
2593	// non-interface field appearing in ForceSendFields will be sent to the
2594	// server regardless of whether the field is empty or not. This may be
2595	// used to include empty fields in Patch requests.
2596	ForceSendFields []string `json:"-"`
2597
2598	// NullFields is a list of field names (e.g. "Total") to include in API
2599	// requests with the JSON null value. By default, fields with empty
2600	// values are omitted from API requests. However, any field with an
2601	// empty value appearing in NullFields will be sent to the server as
2602	// null. It is an error if a field in this list has a non-empty value.
2603	// This may be used to include null fields in Patch requests.
2604	NullFields []string `json:"-"`
2605}
2606
2607func (s *GoogleDevtoolsRemotebuildbotResourceUsageStat) MarshalJSON() ([]byte, error) {
2608	type NoMethod GoogleDevtoolsRemotebuildbotResourceUsageStat
2609	raw := NoMethod(*s)
2610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2611}
2612
2613// GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig:
2614// AcceleratorConfig defines the accelerator cards to attach to the VM.
2615type GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig struct {
2616	// AcceleratorCount: The number of guest accelerator cards exposed to
2617	// each VM.
2618	AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"`
2619
2620	// AcceleratorType: The type of accelerator to attach to each VM, e.g.
2621	// "nvidia-tesla-k80" for nVidia Tesla K80.
2622	AcceleratorType string `json:"acceleratorType,omitempty"`
2623
2624	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
2625	// unconditionally include in API requests. By default, fields with
2626	// empty values are omitted from API requests. However, any non-pointer,
2627	// non-interface field appearing in ForceSendFields will be sent to the
2628	// server regardless of whether the field is empty or not. This may be
2629	// used to include empty fields in Patch requests.
2630	ForceSendFields []string `json:"-"`
2631
2632	// NullFields is a list of field names (e.g. "AcceleratorCount") to
2633	// include in API requests with the JSON null value. By default, fields
2634	// with empty values are omitted from API requests. However, any field
2635	// with an empty value appearing in NullFields will be sent to the
2636	// server as null. It is an error if a field in this list has a
2637	// non-empty value. This may be used to include null fields in Patch
2638	// requests.
2639	NullFields []string `json:"-"`
2640}
2641
2642func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig) MarshalJSON() ([]byte, error) {
2643	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig
2644	raw := NoMethod(*s)
2645	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2646}
2647
2648// GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale: Autoscale
2649// defines the autoscaling policy of a worker pool.
2650type GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale struct {
2651	// MaxSize: The maximal number of workers. Must be equal to or greater
2652	// than min_size.
2653	MaxSize int64 `json:"maxSize,omitempty,string"`
2654
2655	// MinSize: The minimal number of workers. Must be greater than 0.
2656	MinSize int64 `json:"minSize,omitempty,string"`
2657
2658	// ForceSendFields is a list of field names (e.g. "MaxSize") to
2659	// unconditionally include in API requests. By default, fields with
2660	// empty values are omitted from API requests. However, any non-pointer,
2661	// non-interface field appearing in ForceSendFields will be sent to the
2662	// server regardless of whether the field is empty or not. This may be
2663	// used to include empty fields in Patch requests.
2664	ForceSendFields []string `json:"-"`
2665
2666	// NullFields is a list of field names (e.g. "MaxSize") to include in
2667	// API requests with the JSON null value. By default, fields with empty
2668	// values are omitted from API requests. However, any field with an
2669	// empty value appearing in NullFields will be sent to the server as
2670	// null. It is an error if a field in this list has a non-empty value.
2671	// This may be used to include null fields in Patch requests.
2672	NullFields []string `json:"-"`
2673}
2674
2675func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale) MarshalJSON() ([]byte, error) {
2676	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale
2677	raw := NoMethod(*s)
2678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2679}
2680
2681// GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest:
2682// The request used for `CreateInstance`.
2683type GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest struct {
2684	// Instance: Specifies the instance to create. The name in the instance,
2685	// if specified in the instance, is ignored.
2686	Instance *GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance `json:"instance,omitempty"`
2687
2688	// InstanceId: ID of the created instance. A valid `instance_id` must:
2689	// be 6-50 characters long, contain only lowercase letters, digits,
2690	// hyphens and underscores, start with a lowercase letter, and end with
2691	// a lowercase letter or a digit.
2692	InstanceId string `json:"instanceId,omitempty"`
2693
2694	// Parent: Resource name of the project containing the instance. Format:
2695	// `projects/[PROJECT_ID]`.
2696	Parent string `json:"parent,omitempty"`
2697
2698	// ForceSendFields is a list of field names (e.g. "Instance") to
2699	// unconditionally include in API requests. By default, fields with
2700	// empty values are omitted from API requests. However, any non-pointer,
2701	// non-interface field appearing in ForceSendFields will be sent to the
2702	// server regardless of whether the field is empty or not. This may be
2703	// used to include empty fields in Patch requests.
2704	ForceSendFields []string `json:"-"`
2705
2706	// NullFields is a list of field names (e.g. "Instance") to include in
2707	// API requests with the JSON null value. By default, fields with empty
2708	// values are omitted from API requests. However, any field with an
2709	// empty value appearing in NullFields will be sent to the server as
2710	// null. It is an error if a field in this list has a non-empty value.
2711	// This may be used to include null fields in Patch requests.
2712	NullFields []string `json:"-"`
2713}
2714
2715func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest) MarshalJSON() ([]byte, error) {
2716	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest
2717	raw := NoMethod(*s)
2718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2719}
2720
2721// GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest:
2722//  The request used for `CreateWorkerPool`.
2723type GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest struct {
2724	// Parent: Resource name of the instance in which to create the new
2725	// worker pool. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
2726	Parent string `json:"parent,omitempty"`
2727
2728	// PoolId: ID of the created worker pool. A valid pool ID must: be 6-50
2729	// characters long, contain only lowercase letters, digits, hyphens and
2730	// underscores, start with a lowercase letter, and end with a lowercase
2731	// letter or a digit.
2732	PoolId string `json:"poolId,omitempty"`
2733
2734	// WorkerPool: Specifies the worker pool to create. The name in the
2735	// worker pool, if specified, is ignored.
2736	WorkerPool *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool `json:"workerPool,omitempty"`
2737
2738	// ForceSendFields is a list of field names (e.g. "Parent") to
2739	// unconditionally include in API requests. By default, fields with
2740	// empty values are omitted from API requests. However, any non-pointer,
2741	// non-interface field appearing in ForceSendFields will be sent to the
2742	// server regardless of whether the field is empty or not. This may be
2743	// used to include empty fields in Patch requests.
2744	ForceSendFields []string `json:"-"`
2745
2746	// NullFields is a list of field names (e.g. "Parent") to include in API
2747	// requests with the JSON null value. By default, fields with empty
2748	// values are omitted from API requests. However, any field with an
2749	// empty value appearing in NullFields will be sent to the server as
2750	// null. It is an error if a field in this list has a non-empty value.
2751	// This may be used to include null fields in Patch requests.
2752	NullFields []string `json:"-"`
2753}
2754
2755func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest) MarshalJSON() ([]byte, error) {
2756	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest
2757	raw := NoMethod(*s)
2758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2759}
2760
2761// GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest:
2762// The request used for `DeleteInstance`.
2763type GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest struct {
2764	// Name: Name of the instance to delete. Format:
2765	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
2766	Name string `json:"name,omitempty"`
2767
2768	// ForceSendFields is a list of field names (e.g. "Name") to
2769	// unconditionally include in API requests. By default, fields with
2770	// empty values are omitted from API requests. However, any non-pointer,
2771	// non-interface field appearing in ForceSendFields will be sent to the
2772	// server regardless of whether the field is empty or not. This may be
2773	// used to include empty fields in Patch requests.
2774	ForceSendFields []string `json:"-"`
2775
2776	// NullFields is a list of field names (e.g. "Name") to include in API
2777	// requests with the JSON null value. By default, fields with empty
2778	// values are omitted from API requests. However, any field with an
2779	// empty value appearing in NullFields will be sent to the server as
2780	// null. It is an error if a field in this list has a non-empty value.
2781	// This may be used to include null fields in Patch requests.
2782	NullFields []string `json:"-"`
2783}
2784
2785func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest) MarshalJSON() ([]byte, error) {
2786	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest
2787	raw := NoMethod(*s)
2788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2789}
2790
2791// GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest:
2792//  The request used for DeleteWorkerPool.
2793type GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest struct {
2794	// Name: Name of the worker pool to delete. Format:
2795	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.
2796	Name string `json:"name,omitempty"`
2797
2798	// ForceSendFields is a list of field names (e.g. "Name") to
2799	// unconditionally include in API requests. By default, fields with
2800	// empty values are omitted from API requests. However, any non-pointer,
2801	// non-interface field appearing in ForceSendFields will be sent to the
2802	// server regardless of whether the field is empty or not. This may be
2803	// used to include empty fields in Patch requests.
2804	ForceSendFields []string `json:"-"`
2805
2806	// NullFields is a list of field names (e.g. "Name") to include in API
2807	// requests with the JSON null value. By default, fields with empty
2808	// values are omitted from API requests. However, any field with an
2809	// empty value appearing in NullFields will be sent to the server as
2810	// null. It is an error if a field in this list has a non-empty value.
2811	// This may be used to include null fields in Patch requests.
2812	NullFields []string `json:"-"`
2813}
2814
2815func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest) MarshalJSON() ([]byte, error) {
2816	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest
2817	raw := NoMethod(*s)
2818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2819}
2820
2821// GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy:
2822// FeaturePolicy defines features allowed to be used on RBE instances,
2823// as well as instance-wide behavior changes that take effect without
2824// opt-in or opt-out at usage time.
2825type GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy struct {
2826	// ContainerImageSources: Which container image sources are allowed.
2827	// Currently only RBE-supported registry (gcr.io) is allowed. One can
2828	// allow all repositories under a project or one specific repository
2829	// only. E.g. container_image_sources { policy: RESTRICTED
2830	// allowed_values: [ "gcr.io/project-foo",
2831	// "gcr.io/project-bar/repo-baz", ] } will allow any repositories under
2832	// "gcr.io/project-foo" plus the repository
2833	// "gcr.io/project-bar/repo-baz". Default (UNSPECIFIED) is equivalent to
2834	// any source is allowed.
2835	ContainerImageSources *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"containerImageSources,omitempty"`
2836
2837	// DockerAddCapabilities: Whether dockerAddCapabilities can be used or
2838	// what capabilities are allowed.
2839	DockerAddCapabilities *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerAddCapabilities,omitempty"`
2840
2841	// DockerChrootPath: Whether dockerChrootPath can be used.
2842	DockerChrootPath *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerChrootPath,omitempty"`
2843
2844	// DockerNetwork: Whether dockerNetwork can be used or what network
2845	// modes are allowed. E.g. one may allow `off` value only via
2846	// `allowed_values`.
2847	DockerNetwork *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerNetwork,omitempty"`
2848
2849	// DockerPrivileged: Whether dockerPrivileged can be used.
2850	DockerPrivileged *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerPrivileged,omitempty"`
2851
2852	// DockerRunAsRoot: Whether dockerRunAsRoot can be used.
2853	DockerRunAsRoot *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerRunAsRoot,omitempty"`
2854
2855	// DockerRuntime: Whether dockerRuntime is allowed to be set or what
2856	// runtimes are allowed. Note linux_isolation takes precedence, and if
2857	// set, docker_runtime values may be rejected if they are incompatible
2858	// with the selected isolation.
2859	DockerRuntime *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerRuntime,omitempty"`
2860
2861	// DockerSiblingContainers: Whether dockerSiblingContainers can be used.
2862	DockerSiblingContainers *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerSiblingContainers,omitempty"`
2863
2864	// LinuxIsolation: linux_isolation allows overriding the docker runtime
2865	// used for containers started on Linux.
2866	//
2867	// Possible values:
2868	//   "LINUX_ISOLATION_UNSPECIFIED" - Default value. Will be using Linux
2869	// default runtime.
2870	//   "GVISOR" - Use gVisor runsc runtime.
2871	//   "OFF" - Use stardard Linux runtime. This has the same behaviour as
2872	// unspecified, but it can be used to revert back from gVisor.
2873	LinuxIsolation string `json:"linuxIsolation,omitempty"`
2874
2875	// ForceSendFields is a list of field names (e.g.
2876	// "ContainerImageSources") to unconditionally include in API requests.
2877	// By default, fields with empty values are omitted from API requests.
2878	// However, any non-pointer, non-interface field appearing in
2879	// ForceSendFields will be sent to the server regardless of whether the
2880	// field is empty or not. This may be used to include empty fields in
2881	// Patch requests.
2882	ForceSendFields []string `json:"-"`
2883
2884	// NullFields is a list of field names (e.g. "ContainerImageSources") to
2885	// include in API requests with the JSON null value. By default, fields
2886	// with empty values are omitted from API requests. However, any field
2887	// with an empty value appearing in NullFields will be sent to the
2888	// server as null. It is an error if a field in this list has a
2889	// non-empty value. This may be used to include null fields in Patch
2890	// requests.
2891	NullFields []string `json:"-"`
2892}
2893
2894func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy) MarshalJSON() ([]byte, error) {
2895	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy
2896	raw := NoMethod(*s)
2897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2898}
2899
2900// GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature:
2901// Defines whether a feature can be used or what values are accepted.
2902type GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature struct {
2903	// AllowedValues: A list of acceptable values. Only effective when the
2904	// policy is `RESTRICTED`.
2905	AllowedValues []string `json:"allowedValues,omitempty"`
2906
2907	// Policy: The policy of the feature.
2908	//
2909	// Possible values:
2910	//   "POLICY_UNSPECIFIED" - Default value, if not explicitly set.
2911	// Equivalent to FORBIDDEN, unless otherwise documented on a specific
2912	// Feature.
2913	//   "ALLOWED" - Feature is explicitly allowed.
2914	//   "FORBIDDEN" - Feature is forbidden. Requests attempting to leverage
2915	// it will get an FailedPrecondition error, with a message like:
2916	// "Feature forbidden by FeaturePolicy: Feature on instance "
2917	//   "RESTRICTED" - Only the values specified in the `allowed_values`
2918	// are allowed.
2919	Policy string `json:"policy,omitempty"`
2920
2921	// ForceSendFields is a list of field names (e.g. "AllowedValues") to
2922	// unconditionally include in API requests. By default, fields with
2923	// empty values are omitted from API requests. However, any non-pointer,
2924	// non-interface field appearing in ForceSendFields will be sent to the
2925	// server regardless of whether the field is empty or not. This may be
2926	// used to include empty fields in Patch requests.
2927	ForceSendFields []string `json:"-"`
2928
2929	// NullFields is a list of field names (e.g. "AllowedValues") to include
2930	// in API requests with the JSON null value. By default, fields with
2931	// empty values are omitted from API requests. However, any field with
2932	// an empty value appearing in NullFields will be sent to the server as
2933	// null. It is an error if a field in this list has a non-empty value.
2934	// This may be used to include null fields in Patch requests.
2935	NullFields []string `json:"-"`
2936}
2937
2938func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature) MarshalJSON() ([]byte, error) {
2939	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature
2940	raw := NoMethod(*s)
2941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2942}
2943
2944// GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest: The
2945// request used for `GetInstance`.
2946type GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest struct {
2947	// Name: Name of the instance to retrieve. Format:
2948	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
2949	Name string `json:"name,omitempty"`
2950
2951	// ForceSendFields is a list of field names (e.g. "Name") to
2952	// unconditionally include in API requests. By default, fields with
2953	// empty values are omitted from API requests. However, any non-pointer,
2954	// non-interface field appearing in ForceSendFields will be sent to the
2955	// server regardless of whether the field is empty or not. This may be
2956	// used to include empty fields in Patch requests.
2957	ForceSendFields []string `json:"-"`
2958
2959	// NullFields is a list of field names (e.g. "Name") to include in API
2960	// requests with the JSON null value. By default, fields with empty
2961	// values are omitted from API requests. However, any field with an
2962	// empty value appearing in NullFields will be sent to the server as
2963	// null. It is an error if a field in this list has a non-empty value.
2964	// This may be used to include null fields in Patch requests.
2965	NullFields []string `json:"-"`
2966}
2967
2968func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest) MarshalJSON() ([]byte, error) {
2969	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest
2970	raw := NoMethod(*s)
2971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2972}
2973
2974// GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest:
2975// The request used for GetWorkerPool.
2976type GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest struct {
2977	// Name: Name of the worker pool to retrieve. Format:
2978	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.
2979	Name string `json:"name,omitempty"`
2980
2981	// ForceSendFields is a list of field names (e.g. "Name") to
2982	// unconditionally include in API requests. By default, fields with
2983	// empty values are omitted from API requests. However, any non-pointer,
2984	// non-interface field appearing in ForceSendFields will be sent to the
2985	// server regardless of whether the field is empty or not. This may be
2986	// used to include empty fields in Patch requests.
2987	ForceSendFields []string `json:"-"`
2988
2989	// NullFields is a list of field names (e.g. "Name") to include in API
2990	// requests with the JSON null value. By default, fields with empty
2991	// values are omitted from API requests. However, any field with an
2992	// empty value appearing in NullFields will be sent to the server as
2993	// null. It is an error if a field in this list has a non-empty value.
2994	// This may be used to include null fields in Patch requests.
2995	NullFields []string `json:"-"`
2996}
2997
2998func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest) MarshalJSON() ([]byte, error) {
2999	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest
3000	raw := NoMethod(*s)
3001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3002}
3003
3004// GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance: Instance
3005// conceptually encapsulates all Remote Build Execution resources for
3006// remote builds. An instance consists of storage and compute resources
3007// (for example, `ContentAddressableStorage`, `ActionCache`,
3008// `WorkerPools`) used for running remote builds. All Remote Build
3009// Execution API calls are scoped to an instance.
3010type GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance struct {
3011	// FeaturePolicy: The policy to define whether or not RBE features can
3012	// be used or how they can be used.
3013	FeaturePolicy *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy `json:"featurePolicy,omitempty"`
3014
3015	// Location: The location is a GCP region. Currently only `us-central1`
3016	// is supported.
3017	Location string `json:"location,omitempty"`
3018
3019	// LoggingEnabled: Output only. Whether stack driver logging is enabled
3020	// for the instance.
3021	LoggingEnabled bool `json:"loggingEnabled,omitempty"`
3022
3023	// Name: Output only. Instance resource name formatted as:
3024	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. Name should not be
3025	// populated when creating an instance since it is provided in the
3026	// `instance_id` field.
3027	Name string `json:"name,omitempty"`
3028
3029	// State: Output only. State of the instance.
3030	//
3031	// Possible values:
3032	//   "STATE_UNSPECIFIED" - Not a valid state, but the default value of
3033	// the enum.
3034	//   "CREATING" - The instance is in state `CREATING` once
3035	// `CreateInstance` is called and before the instance is ready for use.
3036	//   "RUNNING" - The instance is in state `RUNNING` when it is ready for
3037	// use.
3038	//   "INACTIVE" - An `INACTIVE` instance indicates that there is a
3039	// problem that needs to be fixed. Such instances cannot be used for
3040	// execution and instances that remain in this state for a significant
3041	// period of time will be removed permanently.
3042	State string `json:"state,omitempty"`
3043
3044	// ForceSendFields is a list of field names (e.g. "FeaturePolicy") to
3045	// unconditionally include in API requests. By default, fields with
3046	// empty values are omitted from API requests. However, any non-pointer,
3047	// non-interface field appearing in ForceSendFields will be sent to the
3048	// server regardless of whether the field is empty or not. This may be
3049	// used to include empty fields in Patch requests.
3050	ForceSendFields []string `json:"-"`
3051
3052	// NullFields is a list of field names (e.g. "FeaturePolicy") to include
3053	// in API requests with the JSON null value. By default, fields with
3054	// empty values are omitted from API requests. However, any field with
3055	// an empty value appearing in NullFields will be sent to the server as
3056	// null. It is an error if a field in this list has a non-empty value.
3057	// This may be used to include null fields in Patch requests.
3058	NullFields []string `json:"-"`
3059}
3060
3061func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance) MarshalJSON() ([]byte, error) {
3062	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance
3063	raw := NoMethod(*s)
3064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3065}
3066
3067type GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest struct {
3068	// Parent: Resource name of the project. Format:
3069	// `projects/[PROJECT_ID]`.
3070	Parent string `json:"parent,omitempty"`
3071
3072	// ForceSendFields is a list of field names (e.g. "Parent") to
3073	// unconditionally include in API requests. By default, fields with
3074	// empty values are omitted from API requests. However, any non-pointer,
3075	// non-interface field appearing in ForceSendFields will be sent to the
3076	// server regardless of whether the field is empty or not. This may be
3077	// used to include empty fields in Patch requests.
3078	ForceSendFields []string `json:"-"`
3079
3080	// NullFields is a list of field names (e.g. "Parent") to include in API
3081	// requests with the JSON null value. By default, fields with empty
3082	// values are omitted from API requests. However, any field with an
3083	// empty value appearing in NullFields will be sent to the server as
3084	// null. It is an error if a field in this list has a non-empty value.
3085	// This may be used to include null fields in Patch requests.
3086	NullFields []string `json:"-"`
3087}
3088
3089func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest) MarshalJSON() ([]byte, error) {
3090	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest
3091	raw := NoMethod(*s)
3092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3093}
3094
3095type GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse struct {
3096	// Instances: The list of instances in a given project.
3097	Instances []*GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance `json:"instances,omitempty"`
3098
3099	// ForceSendFields is a list of field names (e.g. "Instances") to
3100	// unconditionally include in API requests. By default, fields with
3101	// empty values are omitted from API requests. However, any non-pointer,
3102	// non-interface field appearing in ForceSendFields will be sent to the
3103	// server regardless of whether the field is empty or not. This may be
3104	// used to include empty fields in Patch requests.
3105	ForceSendFields []string `json:"-"`
3106
3107	// NullFields is a list of field names (e.g. "Instances") to include in
3108	// API requests with the JSON null value. By default, fields with empty
3109	// values are omitted from API requests. However, any field with an
3110	// empty value appearing in NullFields will be sent to the server as
3111	// null. It is an error if a field in this list has a non-empty value.
3112	// This may be used to include null fields in Patch requests.
3113	NullFields []string `json:"-"`
3114}
3115
3116func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse) MarshalJSON() ([]byte, error) {
3117	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse
3118	raw := NoMethod(*s)
3119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3120}
3121
3122type GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest struct {
3123	// Filter: Optional. A filter expression that filters resources listed
3124	// in the response. The expression must specify the field name, a
3125	// comparison operator, and the value that you want to use for
3126	// filtering. The value must be a string, a number, or a boolean. String
3127	// values are case-insensitive. The comparison operator must be either
3128	// `:`, `=`, `!=`, `>`, `>=`, `<=` or `<`. The `:` operator can be used
3129	// with string fields to match substrings. For non-string fields it is
3130	// equivalent to the `=` operator. The `:*` comparison can be used to
3131	// test whether a key has been defined. You can also filter on nested
3132	// fields. To filter on multiple expressions, you can separate
3133	// expression using `AND` and `OR` operators, using parentheses to
3134	// specify precedence. If neither operator is specified, `AND` is
3135	// assumed. Examples: Include only pools with more than 100 reserved
3136	// workers: `(worker_count > 100) (worker_config.reserved = true)`
3137	// Include only pools with a certain label or machines of the
3138	// e2-standard family: `worker_config.labels.key1 : * OR
3139	// worker_config.machine_type: e2-standard`
3140	Filter string `json:"filter,omitempty"`
3141
3142	// Parent: Resource name of the instance. Format:
3143	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
3144	Parent string `json:"parent,omitempty"`
3145
3146	// ForceSendFields is a list of field names (e.g. "Filter") to
3147	// unconditionally include in API requests. By default, fields with
3148	// empty values are omitted from API requests. However, any non-pointer,
3149	// non-interface field appearing in ForceSendFields will be sent to the
3150	// server regardless of whether the field is empty or not. This may be
3151	// used to include empty fields in Patch requests.
3152	ForceSendFields []string `json:"-"`
3153
3154	// NullFields is a list of field names (e.g. "Filter") to include in API
3155	// requests with the JSON null value. By default, fields with empty
3156	// values are omitted from API requests. However, any field with an
3157	// empty value appearing in NullFields will be sent to the server as
3158	// null. It is an error if a field in this list has a non-empty value.
3159	// This may be used to include null fields in Patch requests.
3160	NullFields []string `json:"-"`
3161}
3162
3163func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest) MarshalJSON() ([]byte, error) {
3164	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest
3165	raw := NoMethod(*s)
3166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3167}
3168
3169type GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse struct {
3170	// WorkerPools: The list of worker pools in a given instance.
3171	WorkerPools []*GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool `json:"workerPools,omitempty"`
3172
3173	// ForceSendFields is a list of field names (e.g. "WorkerPools") to
3174	// unconditionally include in API requests. By default, fields with
3175	// empty values are omitted from API requests. However, any non-pointer,
3176	// non-interface field appearing in ForceSendFields will be sent to the
3177	// server regardless of whether the field is empty or not. This may be
3178	// used to include empty fields in Patch requests.
3179	ForceSendFields []string `json:"-"`
3180
3181	// NullFields is a list of field names (e.g. "WorkerPools") to include
3182	// in API requests with the JSON null value. By default, fields with
3183	// empty values are omitted from API requests. However, any field with
3184	// an empty value appearing in NullFields will be sent to the server as
3185	// null. It is an error if a field in this list has a non-empty value.
3186	// This may be used to include null fields in Patch requests.
3187	NullFields []string `json:"-"`
3188}
3189
3190func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse) MarshalJSON() ([]byte, error) {
3191	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse
3192	raw := NoMethod(*s)
3193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3194}
3195
3196// GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest:
3197// The request used for `UpdateInstance`.
3198type GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest struct {
3199	// Instance: Specifies the instance to update.
3200	Instance *GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance `json:"instance,omitempty"`
3201
3202	// LoggingEnabled: Deprecated, use instance.logging_enabled instead.
3203	// Whether to enable Stackdriver logging for this instance.
3204	LoggingEnabled bool `json:"loggingEnabled,omitempty"`
3205
3206	// Name: Deprecated, use instance.Name instead. Name of the instance to
3207	// update. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
3208	Name string `json:"name,omitempty"`
3209
3210	// UpdateMask: The update mask applies to instance. For the `FieldMask`
3211	// definition, see
3212	// https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
3213	// If an empty update_mask is provided, only the non-default valued
3214	// field in the worker pool field will be updated. Note that in order to
3215	// update a field to the default value (zero, false, empty string) an
3216	// explicit update_mask must be provided.
3217	UpdateMask string `json:"updateMask,omitempty"`
3218
3219	// ForceSendFields is a list of field names (e.g. "Instance") to
3220	// unconditionally include in API requests. By default, fields with
3221	// empty values are omitted from API requests. However, any non-pointer,
3222	// non-interface field appearing in ForceSendFields will be sent to the
3223	// server regardless of whether the field is empty or not. This may be
3224	// used to include empty fields in Patch requests.
3225	ForceSendFields []string `json:"-"`
3226
3227	// NullFields is a list of field names (e.g. "Instance") to include in
3228	// API requests with the JSON null value. By default, fields with empty
3229	// values are omitted from API requests. However, any field with an
3230	// empty value appearing in NullFields will be sent to the server as
3231	// null. It is an error if a field in this list has a non-empty value.
3232	// This may be used to include null fields in Patch requests.
3233	NullFields []string `json:"-"`
3234}
3235
3236func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest) MarshalJSON() ([]byte, error) {
3237	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest
3238	raw := NoMethod(*s)
3239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3240}
3241
3242// GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest:
3243//  The request used for UpdateWorkerPool.
3244type GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest struct {
3245	// UpdateMask: The update mask applies to worker_pool. For the
3246	// `FieldMask` definition, see
3247	// https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
3248	// If an empty update_mask is provided, only the non-default valued
3249	// field in the worker pool field will be updated. Note that in order to
3250	// update a field to the default value (zero, false, empty string) an
3251	// explicit update_mask must be provided.
3252	UpdateMask string `json:"updateMask,omitempty"`
3253
3254	// WorkerPool: Specifies the worker pool to update.
3255	WorkerPool *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool `json:"workerPool,omitempty"`
3256
3257	// ForceSendFields is a list of field names (e.g. "UpdateMask") to
3258	// unconditionally include in API requests. By default, fields with
3259	// empty values are omitted from API requests. However, any non-pointer,
3260	// non-interface field appearing in ForceSendFields will be sent to the
3261	// server regardless of whether the field is empty or not. This may be
3262	// used to include empty fields in Patch requests.
3263	ForceSendFields []string `json:"-"`
3264
3265	// NullFields is a list of field names (e.g. "UpdateMask") to include in
3266	// API requests with the JSON null value. By default, fields with empty
3267	// values are omitted from API requests. However, any field with an
3268	// empty value appearing in NullFields will be sent to the server as
3269	// null. It is an error if a field in this list has a non-empty value.
3270	// This may be used to include null fields in Patch requests.
3271	NullFields []string `json:"-"`
3272}
3273
3274func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest) MarshalJSON() ([]byte, error) {
3275	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest
3276	raw := NoMethod(*s)
3277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3278}
3279
3280// GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig: Defines
3281// the configuration to be used for creating workers in the worker pool.
3282type GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig struct {
3283	// Accelerator: The accelerator card attached to each VM.
3284	Accelerator *GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig `json:"accelerator,omitempty"`
3285
3286	// DiskSizeGb: Required. Size of the disk attached to the worker, in GB.
3287	// See https://cloud.google.com/compute/docs/disks/
3288	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
3289
3290	// DiskType: Required. Disk Type to use for the worker. See Storage
3291	// options (https://cloud.google.com/compute/docs/disks/#introduction).
3292	// Currently only `pd-standard` and `pd-ssd` are supported.
3293	DiskType string `json:"diskType,omitempty"`
3294
3295	// Labels: Labels associated with the workers. Label keys and values can
3296	// be no longer than 63 characters, can only contain lowercase letters,
3297	// numeric characters, underscores and dashes. International letters are
3298	// permitted. Label keys must start with a letter. Label values are
3299	// optional. There can not be more than 64 labels per resource.
3300	Labels map[string]string `json:"labels,omitempty"`
3301
3302	// MachineType: Required. Machine type of the worker, such as
3303	// `e2-standard-2`. See
3304	// https://cloud.google.com/compute/docs/machine-types for a list of
3305	// supported machine types. Note that `f1-micro` and `g1-small` are not
3306	// yet supported.
3307	MachineType string `json:"machineType,omitempty"`
3308
3309	// MaxConcurrentActions: The maximum number of actions a worker can
3310	// execute concurrently.
3311	MaxConcurrentActions int64 `json:"maxConcurrentActions,omitempty,string"`
3312
3313	// MinCpuPlatform: Minimum CPU platform to use when creating the worker.
3314	// See CPU Platforms
3315	// (https://cloud.google.com/compute/docs/cpu-platforms).
3316	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
3317
3318	// NetworkAccess: Determines the type of network access granted to
3319	// workers. Possible values: - "public": Workers can connect to the
3320	// public internet. - "private": Workers can only connect to Google APIs
3321	// and services. - "restricted-private": Workers can only connect to
3322	// Google APIs that are reachable through `restricted.googleapis.com`
3323	// (`199.36.153.4/30`).
3324	NetworkAccess string `json:"networkAccess,omitempty"`
3325
3326	// Reserved: Determines whether the worker is reserved (equivalent to a
3327	// Compute Engine on-demand VM and therefore won't be preempted). See
3328	// Preemptible VMs (https://cloud.google.com/preemptible-vms/) for more
3329	// details.
3330	Reserved bool `json:"reserved,omitempty"`
3331
3332	// SoleTenantNodeType: The node type name to be used for sole-tenant
3333	// nodes.
3334	SoleTenantNodeType string `json:"soleTenantNodeType,omitempty"`
3335
3336	// VmImage: The name of the image used by each VM.
3337	VmImage string `json:"vmImage,omitempty"`
3338
3339	// ForceSendFields is a list of field names (e.g. "Accelerator") to
3340	// unconditionally include in API requests. By default, fields with
3341	// empty values are omitted from API requests. However, any non-pointer,
3342	// non-interface field appearing in ForceSendFields will be sent to the
3343	// server regardless of whether the field is empty or not. This may be
3344	// used to include empty fields in Patch requests.
3345	ForceSendFields []string `json:"-"`
3346
3347	// NullFields is a list of field names (e.g. "Accelerator") to include
3348	// in API requests with the JSON null value. By default, fields with
3349	// empty values are omitted from API requests. However, any field with
3350	// an empty value appearing in NullFields will be sent to the server as
3351	// null. It is an error if a field in this list has a non-empty value.
3352	// This may be used to include null fields in Patch requests.
3353	NullFields []string `json:"-"`
3354}
3355
3356func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig) MarshalJSON() ([]byte, error) {
3357	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig
3358	raw := NoMethod(*s)
3359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3360}
3361
3362// GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool: A worker
3363// pool resource in the Remote Build Execution API.
3364type GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool struct {
3365	// Autoscale: The autoscale policy to apply on a pool.
3366	Autoscale *GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale `json:"autoscale,omitempty"`
3367
3368	// Channel: Channel specifies the release channel of the pool.
3369	Channel string `json:"channel,omitempty"`
3370
3371	// Name: WorkerPool resource name formatted as:
3372	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.
3373	//  name should not be populated when creating a worker pool since it is
3374	// provided in the `poolId` field.
3375	Name string `json:"name,omitempty"`
3376
3377	// State: Output only. State of the worker pool.
3378	//
3379	// Possible values:
3380	//   "STATE_UNSPECIFIED" - Not a valid state, but the default value of
3381	// the enum.
3382	//   "CREATING" - The worker pool is in state `CREATING` once
3383	// `CreateWorkerPool` is called and before all requested workers are
3384	// ready.
3385	//   "RUNNING" - The worker pool is in state `RUNNING` when all its
3386	// workers are ready for use.
3387	//   "UPDATING" - The worker pool is in state `UPDATING` once
3388	// `UpdateWorkerPool` is called and before the new configuration has all
3389	// the requested workers ready for use, and no older configuration has
3390	// any workers. At that point the state transitions to `RUNNING`.
3391	//   "DELETING" - The worker pool is in state `DELETING` once the
3392	// `Delete` method is called and before the deletion completes.
3393	//   "INACTIVE" - The worker pool is in state `INACTIVE` when the
3394	// instance hosting the worker pool in not running.
3395	State string `json:"state,omitempty"`
3396
3397	// WorkerConfig: Specifies the properties, such as machine type and disk
3398	// size, used for creating workers in a worker pool.
3399	WorkerConfig *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig `json:"workerConfig,omitempty"`
3400
3401	// WorkerCount: The desired number of workers in the worker pool. Must
3402	// be a value between 0 and 15000.
3403	WorkerCount int64 `json:"workerCount,omitempty,string"`
3404
3405	// ForceSendFields is a list of field names (e.g. "Autoscale") to
3406	// unconditionally include in API requests. By default, fields with
3407	// empty values are omitted from API requests. However, any non-pointer,
3408	// non-interface field appearing in ForceSendFields will be sent to the
3409	// server regardless of whether the field is empty or not. This may be
3410	// used to include empty fields in Patch requests.
3411	ForceSendFields []string `json:"-"`
3412
3413	// NullFields is a list of field names (e.g. "Autoscale") to include in
3414	// API requests with the JSON null value. By default, fields with empty
3415	// values are omitted from API requests. However, any field with an
3416	// empty value appearing in NullFields will be sent to the server as
3417	// null. It is an error if a field in this list has a non-empty value.
3418	// This may be used to include null fields in Patch requests.
3419	NullFields []string `json:"-"`
3420}
3421
3422func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool) MarshalJSON() ([]byte, error) {
3423	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool
3424	raw := NoMethod(*s)
3425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3426}
3427
3428// GoogleDevtoolsRemoteworkersV1test2AdminTemp: AdminTemp is a
3429// prelimiary set of administration tasks. It's called "Temp" because we
3430// do not yet know the best way to represent admin tasks; it's possible
3431// that this will be entirely replaced in later versions of this API. If
3432// this message proves to be sufficient, it will be renamed in the alpha
3433// or beta release of this API. This message (suitably marshalled into a
3434// protobuf.Any) can be used as the inline_assignment field in a lease;
3435// the lease assignment field should simply be "admin" in these cases.
3436// This message is heavily based on Swarming administration tasks from
3437// the LUCI project (http://github.com/luci/luci-py/appengine/swarming).
3438type GoogleDevtoolsRemoteworkersV1test2AdminTemp struct {
3439	// Arg: The argument to the admin action; see `Command` for semantics.
3440	Arg string `json:"arg,omitempty"`
3441
3442	// Command: The admin action; see `Command` for legal values.
3443	//
3444	// Possible values:
3445	//   "UNSPECIFIED" - Illegal value.
3446	//   "BOT_UPDATE" - Download and run a new version of the bot. `arg`
3447	// will be a resource accessible via `ByteStream.Read` to obtain the new
3448	// bot code.
3449	//   "BOT_RESTART" - Restart the bot without downloading a new version.
3450	// `arg` will be a message to log.
3451	//   "BOT_TERMINATE" - Shut down the bot. `arg` will be a task resource
3452	// name (similar to those in tasks.proto) that the bot can use to tell
3453	// the server that it is terminating.
3454	//   "HOST_RESTART" - Restart the host computer. `arg` will be a message
3455	// to log.
3456	Command string `json:"command,omitempty"`
3457
3458	// ForceSendFields is a list of field names (e.g. "Arg") to
3459	// unconditionally include in API requests. By default, fields with
3460	// empty values are omitted from API requests. However, any non-pointer,
3461	// non-interface field appearing in ForceSendFields will be sent to the
3462	// server regardless of whether the field is empty or not. This may be
3463	// used to include empty fields in Patch requests.
3464	ForceSendFields []string `json:"-"`
3465
3466	// NullFields is a list of field names (e.g. "Arg") to include in API
3467	// requests with the JSON null value. By default, fields with empty
3468	// values are omitted from API requests. However, any field with an
3469	// empty value appearing in NullFields will be sent to the server as
3470	// null. It is an error if a field in this list has a non-empty value.
3471	// This may be used to include null fields in Patch requests.
3472	NullFields []string `json:"-"`
3473}
3474
3475func (s *GoogleDevtoolsRemoteworkersV1test2AdminTemp) MarshalJSON() ([]byte, error) {
3476	type NoMethod GoogleDevtoolsRemoteworkersV1test2AdminTemp
3477	raw := NoMethod(*s)
3478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3479}
3480
3481// GoogleDevtoolsRemoteworkersV1test2Blob: Describes a blob of binary
3482// content with its digest.
3483type GoogleDevtoolsRemoteworkersV1test2Blob struct {
3484	// Contents: The contents of the blob.
3485	Contents string `json:"contents,omitempty"`
3486
3487	// Digest: The digest of the blob. This should be verified by the
3488	// receiver.
3489	Digest *GoogleDevtoolsRemoteworkersV1test2Digest `json:"digest,omitempty"`
3490
3491	// ForceSendFields is a list of field names (e.g. "Contents") to
3492	// unconditionally include in API requests. By default, fields with
3493	// empty values are omitted from API requests. However, any non-pointer,
3494	// non-interface field appearing in ForceSendFields will be sent to the
3495	// server regardless of whether the field is empty or not. This may be
3496	// used to include empty fields in Patch requests.
3497	ForceSendFields []string `json:"-"`
3498
3499	// NullFields is a list of field names (e.g. "Contents") to include in
3500	// API requests with the JSON null value. By default, fields with empty
3501	// values are omitted from API requests. However, any field with an
3502	// empty value appearing in NullFields will be sent to the server as
3503	// null. It is an error if a field in this list has a non-empty value.
3504	// This may be used to include null fields in Patch requests.
3505	NullFields []string `json:"-"`
3506}
3507
3508func (s *GoogleDevtoolsRemoteworkersV1test2Blob) MarshalJSON() ([]byte, error) {
3509	type NoMethod GoogleDevtoolsRemoteworkersV1test2Blob
3510	raw := NoMethod(*s)
3511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3512}
3513
3514// GoogleDevtoolsRemoteworkersV1test2CommandOutputs: DEPRECATED - use
3515// CommandResult instead. Describes the actual outputs from the task.
3516type GoogleDevtoolsRemoteworkersV1test2CommandOutputs struct {
3517	// ExitCode: exit_code is only fully reliable if the status' code is OK.
3518	// If the task exceeded its deadline or was cancelled, the process may
3519	// still produce an exit code as it is cancelled, and this will be
3520	// populated, but a successful (zero) is unlikely to be correct unless
3521	// the status code is OK.
3522	ExitCode int64 `json:"exitCode,omitempty"`
3523
3524	// Outputs: The output files. The blob referenced by the digest should
3525	// contain one of the following (implementation-dependent): * A
3526	// marshalled DirectoryMetadata of the returned filesystem * A
3527	// LUCI-style .isolated file
3528	Outputs *GoogleDevtoolsRemoteworkersV1test2Digest `json:"outputs,omitempty"`
3529
3530	// ForceSendFields is a list of field names (e.g. "ExitCode") to
3531	// unconditionally include in API requests. By default, fields with
3532	// empty values are omitted from API requests. However, any non-pointer,
3533	// non-interface field appearing in ForceSendFields will be sent to the
3534	// server regardless of whether the field is empty or not. This may be
3535	// used to include empty fields in Patch requests.
3536	ForceSendFields []string `json:"-"`
3537
3538	// NullFields is a list of field names (e.g. "ExitCode") to include in
3539	// API requests with the JSON null value. By default, fields with empty
3540	// values are omitted from API requests. However, any field with an
3541	// empty value appearing in NullFields will be sent to the server as
3542	// null. It is an error if a field in this list has a non-empty value.
3543	// This may be used to include null fields in Patch requests.
3544	NullFields []string `json:"-"`
3545}
3546
3547func (s *GoogleDevtoolsRemoteworkersV1test2CommandOutputs) MarshalJSON() ([]byte, error) {
3548	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandOutputs
3549	raw := NoMethod(*s)
3550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3551}
3552
3553// GoogleDevtoolsRemoteworkersV1test2CommandOverhead: DEPRECATED - use
3554// CommandResult instead. Can be used as part of
3555// CompleteRequest.metadata, or are part of a more sophisticated
3556// message.
3557type GoogleDevtoolsRemoteworkersV1test2CommandOverhead struct {
3558	// Duration: The elapsed time between calling Accept and Complete. The
3559	// server will also have its own idea of what this should be, but this
3560	// excludes the overhead of the RPCs and the bot response time.
3561	Duration string `json:"duration,omitempty"`
3562
3563	// Overhead: The amount of time *not* spent executing the command (ie
3564	// uploading/downloading files).
3565	Overhead string `json:"overhead,omitempty"`
3566
3567	// ForceSendFields is a list of field names (e.g. "Duration") to
3568	// unconditionally include in API requests. By default, fields with
3569	// empty values are omitted from API requests. However, any non-pointer,
3570	// non-interface field appearing in ForceSendFields will be sent to the
3571	// server regardless of whether the field is empty or not. This may be
3572	// used to include empty fields in Patch requests.
3573	ForceSendFields []string `json:"-"`
3574
3575	// NullFields is a list of field names (e.g. "Duration") to include in
3576	// API requests with the JSON null value. By default, fields with empty
3577	// values are omitted from API requests. However, any field with an
3578	// empty value appearing in NullFields will be sent to the server as
3579	// null. It is an error if a field in this list has a non-empty value.
3580	// This may be used to include null fields in Patch requests.
3581	NullFields []string `json:"-"`
3582}
3583
3584func (s *GoogleDevtoolsRemoteworkersV1test2CommandOverhead) MarshalJSON() ([]byte, error) {
3585	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandOverhead
3586	raw := NoMethod(*s)
3587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3588}
3589
3590// GoogleDevtoolsRemoteworkersV1test2CommandResult: All information
3591// about the execution of a command, suitable for providing as the Bots
3592// interface's `Lease.result` field.
3593type GoogleDevtoolsRemoteworkersV1test2CommandResult struct {
3594	// Duration: The elapsed time between calling Accept and Complete. The
3595	// server will also have its own idea of what this should be, but this
3596	// excludes the overhead of the RPCs and the bot response time.
3597	Duration string `json:"duration,omitempty"`
3598
3599	// ExitCode: The exit code of the process. An exit code of "0" should
3600	// only be trusted if `status` has a code of OK (otherwise it may simply
3601	// be unset).
3602	ExitCode int64 `json:"exitCode,omitempty"`
3603
3604	// Metadata: Implementation-dependent metadata about the task. Both
3605	// servers and bots may define messages which can be encoded here; bots
3606	// are free to provide metadata in multiple formats, and servers are
3607	// free to choose one or more of the values to process and ignore
3608	// others. In particular, it is *not* considered an error for the bot to
3609	// provide the server with a field that it doesn't know about.
3610	Metadata []googleapi.RawMessage `json:"metadata,omitempty"`
3611
3612	// Outputs: The output files. The blob referenced by the digest should
3613	// contain one of the following (implementation-dependent): * A
3614	// marshalled DirectoryMetadata of the returned filesystem * A
3615	// LUCI-style .isolated file
3616	Outputs *GoogleDevtoolsRemoteworkersV1test2Digest `json:"outputs,omitempty"`
3617
3618	// Overhead: The amount of time *not* spent executing the command (ie
3619	// uploading/downloading files).
3620	Overhead string `json:"overhead,omitempty"`
3621
3622	// Status: An overall status for the command. For example, if the
3623	// command timed out, this might have a code of DEADLINE_EXCEEDED; if it
3624	// was killed by the OS for memory exhaustion, it might have a code of
3625	// RESOURCE_EXHAUSTED.
3626	Status *GoogleRpcStatus `json:"status,omitempty"`
3627
3628	// ForceSendFields is a list of field names (e.g. "Duration") to
3629	// unconditionally include in API requests. By default, fields with
3630	// empty values are omitted from API requests. However, any non-pointer,
3631	// non-interface field appearing in ForceSendFields will be sent to the
3632	// server regardless of whether the field is empty or not. This may be
3633	// used to include empty fields in Patch requests.
3634	ForceSendFields []string `json:"-"`
3635
3636	// NullFields is a list of field names (e.g. "Duration") to include in
3637	// API requests with the JSON null value. By default, fields with empty
3638	// values are omitted from API requests. However, any field with an
3639	// empty value appearing in NullFields will be sent to the server as
3640	// null. It is an error if a field in this list has a non-empty value.
3641	// This may be used to include null fields in Patch requests.
3642	NullFields []string `json:"-"`
3643}
3644
3645func (s *GoogleDevtoolsRemoteworkersV1test2CommandResult) MarshalJSON() ([]byte, error) {
3646	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandResult
3647	raw := NoMethod(*s)
3648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3649}
3650
3651// GoogleDevtoolsRemoteworkersV1test2CommandTask: Describes a
3652// shell-style task to execute, suitable for providing as the Bots
3653// interface's `Lease.payload` field.
3654type GoogleDevtoolsRemoteworkersV1test2CommandTask struct {
3655	// ExpectedOutputs: The expected outputs from the task.
3656	ExpectedOutputs *GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs `json:"expectedOutputs,omitempty"`
3657
3658	// Inputs: The inputs to the task.
3659	Inputs *GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs `json:"inputs,omitempty"`
3660
3661	// Timeouts: The timeouts of this task.
3662	Timeouts *GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts `json:"timeouts,omitempty"`
3663
3664	// ForceSendFields is a list of field names (e.g. "ExpectedOutputs") to
3665	// unconditionally include in API requests. By default, fields with
3666	// empty values are omitted from API requests. However, any non-pointer,
3667	// non-interface field appearing in ForceSendFields will be sent to the
3668	// server regardless of whether the field is empty or not. This may be
3669	// used to include empty fields in Patch requests.
3670	ForceSendFields []string `json:"-"`
3671
3672	// NullFields is a list of field names (e.g. "ExpectedOutputs") to
3673	// include in API requests with the JSON null value. By default, fields
3674	// with empty values are omitted from API requests. However, any field
3675	// with an empty value appearing in NullFields will be sent to the
3676	// server as null. It is an error if a field in this list has a
3677	// non-empty value. This may be used to include null fields in Patch
3678	// requests.
3679	NullFields []string `json:"-"`
3680}
3681
3682func (s *GoogleDevtoolsRemoteworkersV1test2CommandTask) MarshalJSON() ([]byte, error) {
3683	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTask
3684	raw := NoMethod(*s)
3685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3686}
3687
3688// GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs: Describes the
3689// inputs to a shell-style task.
3690type GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs struct {
3691	// Arguments: The command itself to run (e.g., argv). This field should
3692	// be passed directly to the underlying operating system, and so it must
3693	// be sensible to that operating system. For example, on Windows, the
3694	// first argument might be "C:\Windows\System32\ping.exe" - that is,
3695	// using drive letters and backslashes. A command for a *nix system, on
3696	// the other hand, would use forward slashes. All other fields in the
3697	// RWAPI must consistently use forward slashes, since those fields may
3698	// be interpretted by both the service and the bot.
3699	Arguments []string `json:"arguments,omitempty"`
3700
3701	// EnvironmentVariables: All environment variables required by the task.
3702	EnvironmentVariables []*GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable `json:"environmentVariables,omitempty"`
3703
3704	// Files: The input filesystem to be set up prior to the task beginning.
3705	// The contents should be a repeated set of FileMetadata messages though
3706	// other formats are allowed if better for the implementation (eg, a
3707	// LUCI-style .isolated file). This field is repeated since
3708	// implementations might want to cache the metadata, in which case it
3709	// may be useful to break up portions of the filesystem that change
3710	// frequently (eg, specific input files) from those that don't (eg,
3711	// standard header files).
3712	Files []*GoogleDevtoolsRemoteworkersV1test2Digest `json:"files,omitempty"`
3713
3714	// InlineBlobs: Inline contents for blobs expected to be needed by the
3715	// bot to execute the task. For example, contents of entries in `files`
3716	// or blobs that are indirectly referenced by an entry there. The bot
3717	// should check against this list before downloading required task
3718	// inputs to reduce the number of communications between itself and the
3719	// remote CAS server.
3720	InlineBlobs []*GoogleDevtoolsRemoteworkersV1test2Blob `json:"inlineBlobs,omitempty"`
3721
3722	// WorkingDirectory: Directory from which a command is executed. It is a
3723	// relative directory with respect to the bot's working directory (i.e.,
3724	// "./"). If it is non-empty, then it must exist under "./". Otherwise,
3725	// "./" will be used.
3726	WorkingDirectory string `json:"workingDirectory,omitempty"`
3727
3728	// ForceSendFields is a list of field names (e.g. "Arguments") to
3729	// unconditionally include in API requests. By default, fields with
3730	// empty values are omitted from API requests. However, any non-pointer,
3731	// non-interface field appearing in ForceSendFields will be sent to the
3732	// server regardless of whether the field is empty or not. This may be
3733	// used to include empty fields in Patch requests.
3734	ForceSendFields []string `json:"-"`
3735
3736	// NullFields is a list of field names (e.g. "Arguments") to include in
3737	// API requests with the JSON null value. By default, fields with empty
3738	// values are omitted from API requests. However, any field with an
3739	// empty value appearing in NullFields will be sent to the server as
3740	// null. It is an error if a field in this list has a non-empty value.
3741	// This may be used to include null fields in Patch requests.
3742	NullFields []string `json:"-"`
3743}
3744
3745func (s *GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs) MarshalJSON() ([]byte, error) {
3746	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs
3747	raw := NoMethod(*s)
3748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3749}
3750
3751// GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable
3752// : An environment variable required by this task.
3753type GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable struct {
3754	// Name: The envvar name.
3755	Name string `json:"name,omitempty"`
3756
3757	// Value: The envvar value.
3758	Value string `json:"value,omitempty"`
3759
3760	// ForceSendFields is a list of field names (e.g. "Name") to
3761	// unconditionally include in API requests. By default, fields with
3762	// empty values are omitted from API requests. However, any non-pointer,
3763	// non-interface field appearing in ForceSendFields will be sent to the
3764	// server regardless of whether the field is empty or not. This may be
3765	// used to include empty fields in Patch requests.
3766	ForceSendFields []string `json:"-"`
3767
3768	// NullFields is a list of field names (e.g. "Name") to include in API
3769	// requests with the JSON null value. By default, fields with empty
3770	// values are omitted from API requests. However, any field with an
3771	// empty value appearing in NullFields will be sent to the server as
3772	// null. It is an error if a field in this list has a non-empty value.
3773	// This may be used to include null fields in Patch requests.
3774	NullFields []string `json:"-"`
3775}
3776
3777func (s *GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable) MarshalJSON() ([]byte, error) {
3778	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable
3779	raw := NoMethod(*s)
3780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3781}
3782
3783// GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs: Describes the
3784// expected outputs of the command.
3785type GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs struct {
3786	// Directories: A list of expected directories, relative to the
3787	// execution root. All paths MUST be delimited by forward slashes.
3788	Directories []string `json:"directories,omitempty"`
3789
3790	// Files: A list of expected files, relative to the execution root. All
3791	// paths MUST be delimited by forward slashes.
3792	Files []string `json:"files,omitempty"`
3793
3794	// StderrDestination: The destination to which any stderr should be
3795	// sent. The method by which the bot should send the stream contents to
3796	// that destination is not defined in this API. As examples, the
3797	// destination could be a file referenced in the `files` field in this
3798	// message, or it could be a URI that must be written via the ByteStream
3799	// API.
3800	StderrDestination string `json:"stderrDestination,omitempty"`
3801
3802	// StdoutDestination: The destination to which any stdout should be
3803	// sent. The method by which the bot should send the stream contents to
3804	// that destination is not defined in this API. As examples, the
3805	// destination could be a file referenced in the `files` field in this
3806	// message, or it could be a URI that must be written via the ByteStream
3807	// API.
3808	StdoutDestination string `json:"stdoutDestination,omitempty"`
3809
3810	// ForceSendFields is a list of field names (e.g. "Directories") to
3811	// unconditionally include in API requests. By default, fields with
3812	// empty values are omitted from API requests. However, any non-pointer,
3813	// non-interface field appearing in ForceSendFields will be sent to the
3814	// server regardless of whether the field is empty or not. This may be
3815	// used to include empty fields in Patch requests.
3816	ForceSendFields []string `json:"-"`
3817
3818	// NullFields is a list of field names (e.g. "Directories") to include
3819	// in API requests with the JSON null value. By default, fields with
3820	// empty values are omitted from API requests. However, any field with
3821	// an empty value appearing in NullFields will be sent to the server as
3822	// null. It is an error if a field in this list has a non-empty value.
3823	// This may be used to include null fields in Patch requests.
3824	NullFields []string `json:"-"`
3825}
3826
3827func (s *GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs) MarshalJSON() ([]byte, error) {
3828	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs
3829	raw := NoMethod(*s)
3830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3831}
3832
3833// GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts: Describes the
3834// timeouts associated with this task.
3835type GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts struct {
3836	// Execution: This specifies the maximum time that the task can run,
3837	// excluding the time required to download inputs or upload outputs.
3838	// That is, the worker will terminate the task if it runs longer than
3839	// this.
3840	Execution string `json:"execution,omitempty"`
3841
3842	// Idle: This specifies the maximum amount of time the task can be idle
3843	// - that is, go without generating some output in either stdout or
3844	// stderr. If the process is silent for more than the specified time,
3845	// the worker will terminate the task.
3846	Idle string `json:"idle,omitempty"`
3847
3848	// Shutdown: If the execution or IO timeouts are exceeded, the worker
3849	// will try to gracefully terminate the task and return any existing
3850	// logs. However, tasks may be hard-frozen in which case this process
3851	// will fail. This timeout specifies how long to wait for a terminated
3852	// task to shut down gracefully (e.g. via SIGTERM) before we bring down
3853	// the hammer (e.g. SIGKILL on *nix, CTRL_BREAK_EVENT on Windows).
3854	Shutdown string `json:"shutdown,omitempty"`
3855
3856	// ForceSendFields is a list of field names (e.g. "Execution") to
3857	// unconditionally include in API requests. By default, fields with
3858	// empty values are omitted from API requests. However, any non-pointer,
3859	// non-interface field appearing in ForceSendFields will be sent to the
3860	// server regardless of whether the field is empty or not. This may be
3861	// used to include empty fields in Patch requests.
3862	ForceSendFields []string `json:"-"`
3863
3864	// NullFields is a list of field names (e.g. "Execution") to include in
3865	// API requests with the JSON null value. By default, fields with empty
3866	// values are omitted from API requests. However, any field with an
3867	// empty value appearing in NullFields will be sent to the server as
3868	// null. It is an error if a field in this list has a non-empty value.
3869	// This may be used to include null fields in Patch requests.
3870	NullFields []string `json:"-"`
3871}
3872
3873func (s *GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts) MarshalJSON() ([]byte, error) {
3874	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts
3875	raw := NoMethod(*s)
3876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3877}
3878
3879// GoogleDevtoolsRemoteworkersV1test2Digest: The CommandTask and
3880// CommandResult messages assume the existence of a service that can
3881// serve blobs of content, identified by a hash and size known as a
3882// "digest." The method by which these blobs may be retrieved is not
3883// specified here, but a model implementation is in the Remote Execution
3884// API's "ContentAddressibleStorage" interface. In the context of the
3885// RWAPI, a Digest will virtually always refer to the contents of a file
3886// or a directory. The latter is represented by the byte-encoded
3887// Directory message.
3888type GoogleDevtoolsRemoteworkersV1test2Digest struct {
3889	// Hash: A string-encoded hash (eg "1a2b3c", not the byte array [0x1a,
3890	// 0x2b, 0x3c]) using an implementation-defined hash algorithm (eg
3891	// SHA-256).
3892	Hash string `json:"hash,omitempty"`
3893
3894	// SizeBytes: The size of the contents. While this is not strictly
3895	// required as part of an identifier (after all, any given hash will
3896	// have exactly one canonical size), it's useful in almost all cases
3897	// when one might want to send or retrieve blobs of content and is
3898	// included here for this reason.
3899	SizeBytes int64 `json:"sizeBytes,omitempty,string"`
3900
3901	// ForceSendFields is a list of field names (e.g. "Hash") to
3902	// unconditionally include in API requests. By default, fields with
3903	// empty values are omitted from API requests. However, any non-pointer,
3904	// non-interface field appearing in ForceSendFields will be sent to the
3905	// server regardless of whether the field is empty or not. This may be
3906	// used to include empty fields in Patch requests.
3907	ForceSendFields []string `json:"-"`
3908
3909	// NullFields is a list of field names (e.g. "Hash") to include in API
3910	// requests with the JSON null value. By default, fields with empty
3911	// values are omitted from API requests. However, any field with an
3912	// empty value appearing in NullFields will be sent to the server as
3913	// null. It is an error if a field in this list has a non-empty value.
3914	// This may be used to include null fields in Patch requests.
3915	NullFields []string `json:"-"`
3916}
3917
3918func (s *GoogleDevtoolsRemoteworkersV1test2Digest) MarshalJSON() ([]byte, error) {
3919	type NoMethod GoogleDevtoolsRemoteworkersV1test2Digest
3920	raw := NoMethod(*s)
3921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3922}
3923
3924// GoogleDevtoolsRemoteworkersV1test2Directory: The contents of a
3925// directory. Similar to the equivalent message in the Remote Execution
3926// API.
3927type GoogleDevtoolsRemoteworkersV1test2Directory struct {
3928	// Directories: Any subdirectories
3929	Directories []*GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata `json:"directories,omitempty"`
3930
3931	// Files: The files in this directory
3932	Files []*GoogleDevtoolsRemoteworkersV1test2FileMetadata `json:"files,omitempty"`
3933
3934	// ForceSendFields is a list of field names (e.g. "Directories") to
3935	// unconditionally include in API requests. By default, fields with
3936	// empty values are omitted from API requests. However, any non-pointer,
3937	// non-interface field appearing in ForceSendFields will be sent to the
3938	// server regardless of whether the field is empty or not. This may be
3939	// used to include empty fields in Patch requests.
3940	ForceSendFields []string `json:"-"`
3941
3942	// NullFields is a list of field names (e.g. "Directories") to include
3943	// in API requests with the JSON null value. By default, fields with
3944	// empty values are omitted from API requests. However, any field with
3945	// an empty value appearing in NullFields will be sent to the server as
3946	// null. It is an error if a field in this list has a non-empty value.
3947	// This may be used to include null fields in Patch requests.
3948	NullFields []string `json:"-"`
3949}
3950
3951func (s *GoogleDevtoolsRemoteworkersV1test2Directory) MarshalJSON() ([]byte, error) {
3952	type NoMethod GoogleDevtoolsRemoteworkersV1test2Directory
3953	raw := NoMethod(*s)
3954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3955}
3956
3957// GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata: The metadata for
3958// a directory. Similar to the equivalent message in the Remote
3959// Execution API.
3960type GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata struct {
3961	// Digest: A pointer to the contents of the directory, in the form of a
3962	// marshalled Directory message.
3963	Digest *GoogleDevtoolsRemoteworkersV1test2Digest `json:"digest,omitempty"`
3964
3965	// Path: The path of the directory, as in FileMetadata.path.
3966	Path string `json:"path,omitempty"`
3967
3968	// ForceSendFields is a list of field names (e.g. "Digest") to
3969	// unconditionally include in API requests. By default, fields with
3970	// empty values are omitted from API requests. However, any non-pointer,
3971	// non-interface field appearing in ForceSendFields will be sent to the
3972	// server regardless of whether the field is empty or not. This may be
3973	// used to include empty fields in Patch requests.
3974	ForceSendFields []string `json:"-"`
3975
3976	// NullFields is a list of field names (e.g. "Digest") to include in API
3977	// requests with the JSON null value. By default, fields with empty
3978	// values are omitted from API requests. However, any field with an
3979	// empty value appearing in NullFields will be sent to the server as
3980	// null. It is an error if a field in this list has a non-empty value.
3981	// This may be used to include null fields in Patch requests.
3982	NullFields []string `json:"-"`
3983}
3984
3985func (s *GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata) MarshalJSON() ([]byte, error) {
3986	type NoMethod GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata
3987	raw := NoMethod(*s)
3988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3989}
3990
3991// GoogleDevtoolsRemoteworkersV1test2FileMetadata: The metadata for a
3992// file. Similar to the equivalent message in the Remote Execution API.
3993type GoogleDevtoolsRemoteworkersV1test2FileMetadata struct {
3994	// Contents: If the file is small enough, its contents may also or
3995	// alternatively be listed here.
3996	Contents string `json:"contents,omitempty"`
3997
3998	// Digest: A pointer to the contents of the file. The method by which a
3999	// client retrieves the contents from a CAS system is not defined here.
4000	Digest *GoogleDevtoolsRemoteworkersV1test2Digest `json:"digest,omitempty"`
4001
4002	// IsExecutable: Properties of the file
4003	IsExecutable bool `json:"isExecutable,omitempty"`
4004
4005	// Path: The path of this file. If this message is part of the
4006	// CommandOutputs.outputs fields, the path is relative to the execution
4007	// root and must correspond to an entry in CommandTask.outputs.files. If
4008	// this message is part of a Directory message, then the path is
4009	// relative to the root of that directory. All paths MUST be delimited
4010	// by forward slashes.
4011	Path string `json:"path,omitempty"`
4012
4013	// ForceSendFields is a list of field names (e.g. "Contents") to
4014	// unconditionally include in API requests. By default, fields with
4015	// empty values are omitted from API requests. However, any non-pointer,
4016	// non-interface field appearing in ForceSendFields will be sent to the
4017	// server regardless of whether the field is empty or not. This may be
4018	// used to include empty fields in Patch requests.
4019	ForceSendFields []string `json:"-"`
4020
4021	// NullFields is a list of field names (e.g. "Contents") to include in
4022	// API requests with the JSON null value. By default, fields with empty
4023	// values are omitted from API requests. However, any field with an
4024	// empty value appearing in NullFields will be sent to the server as
4025	// null. It is an error if a field in this list has a non-empty value.
4026	// This may be used to include null fields in Patch requests.
4027	NullFields []string `json:"-"`
4028}
4029
4030func (s *GoogleDevtoolsRemoteworkersV1test2FileMetadata) MarshalJSON() ([]byte, error) {
4031	type NoMethod GoogleDevtoolsRemoteworkersV1test2FileMetadata
4032	raw := NoMethod(*s)
4033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4034}
4035
4036// GoogleLongrunningOperation: This resource represents a long-running
4037// operation that is the result of a network API call.
4038type GoogleLongrunningOperation struct {
4039	// Done: If the value is `false`, it means the operation is still in
4040	// progress. If `true`, the operation is completed, and either `error`
4041	// or `response` is available.
4042	Done bool `json:"done,omitempty"`
4043
4044	// Error: The error result of the operation in case of failure or
4045	// cancellation.
4046	Error *GoogleRpcStatus `json:"error,omitempty"`
4047
4048	// Metadata: Service-specific metadata associated with the operation. It
4049	// typically contains progress information and common metadata such as
4050	// create time. Some services might not provide such metadata. Any
4051	// method that returns a long-running operation should document the
4052	// metadata type, if any.
4053	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
4054
4055	// Name: The server-assigned name, which is only unique within the same
4056	// service that originally returns it. If you use the default HTTP
4057	// mapping, the `name` should be a resource name ending with
4058	// `operations/{unique_id}`.
4059	Name string `json:"name,omitempty"`
4060
4061	// Response: The normal response of the operation in case of success. If
4062	// the original method returns no data on success, such as `Delete`, the
4063	// response is `google.protobuf.Empty`. If the original method is
4064	// standard `Get`/`Create`/`Update`, the response should be the
4065	// resource. For other methods, the response should have the type
4066	// `XxxResponse`, where `Xxx` is the original method name. For example,
4067	// if the original method name is `TakeSnapshot()`, the inferred
4068	// response type is `TakeSnapshotResponse`.
4069	Response googleapi.RawMessage `json:"response,omitempty"`
4070
4071	// ServerResponse contains the HTTP response code and headers from the
4072	// server.
4073	googleapi.ServerResponse `json:"-"`
4074
4075	// ForceSendFields is a list of field names (e.g. "Done") to
4076	// unconditionally include in API requests. By default, fields with
4077	// empty values are omitted from API requests. However, any non-pointer,
4078	// non-interface field appearing in ForceSendFields will be sent to the
4079	// server regardless of whether the field is empty or not. This may be
4080	// used to include empty fields in Patch requests.
4081	ForceSendFields []string `json:"-"`
4082
4083	// NullFields is a list of field names (e.g. "Done") to include in API
4084	// requests with the JSON null value. By default, fields with empty
4085	// values are omitted from API requests. However, any field with an
4086	// empty value appearing in NullFields will be sent to the server as
4087	// null. It is an error if a field in this list has a non-empty value.
4088	// This may be used to include null fields in Patch requests.
4089	NullFields []string `json:"-"`
4090}
4091
4092func (s *GoogleLongrunningOperation) MarshalJSON() ([]byte, error) {
4093	type NoMethod GoogleLongrunningOperation
4094	raw := NoMethod(*s)
4095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4096}
4097
4098// GoogleRpcStatus: The `Status` type defines a logical error model that
4099// is suitable for different programming environments, including REST
4100// APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
4101// `Status` message contains three pieces of data: error code, error
4102// message, and error details. You can find out more about this error
4103// model and how to work with it in the API Design Guide
4104// (https://cloud.google.com/apis/design/errors).
4105type GoogleRpcStatus struct {
4106	// Code: The status code, which should be an enum value of
4107	// google.rpc.Code.
4108	Code int64 `json:"code,omitempty"`
4109
4110	// Details: A list of messages that carry the error details. There is a
4111	// common set of message types for APIs to use.
4112	Details []googleapi.RawMessage `json:"details,omitempty"`
4113
4114	// Message: A developer-facing error message, which should be in
4115	// English. Any user-facing error message should be localized and sent
4116	// in the google.rpc.Status.details field, or localized by the client.
4117	Message string `json:"message,omitempty"`
4118
4119	// ForceSendFields is a list of field names (e.g. "Code") to
4120	// unconditionally include in API requests. By default, fields with
4121	// empty values are omitted from API requests. However, any non-pointer,
4122	// non-interface field appearing in ForceSendFields will be sent to the
4123	// server regardless of whether the field is empty or not. This may be
4124	// used to include empty fields in Patch requests.
4125	ForceSendFields []string `json:"-"`
4126
4127	// NullFields is a list of field names (e.g. "Code") to include in API
4128	// requests with the JSON null value. By default, fields with empty
4129	// values are omitted from API requests. However, any field with an
4130	// empty value appearing in NullFields will be sent to the server as
4131	// null. It is an error if a field in this list has a non-empty value.
4132	// This may be used to include null fields in Patch requests.
4133	NullFields []string `json:"-"`
4134}
4135
4136func (s *GoogleRpcStatus) MarshalJSON() ([]byte, error) {
4137	type NoMethod GoogleRpcStatus
4138	raw := NoMethod(*s)
4139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4140}
4141
4142// method id "remotebuildexecution.actionResults.get":
4143
4144type ActionResultsGetCall struct {
4145	s            *Service
4146	instanceName string
4147	hash         string
4148	sizeBytes    int64
4149	urlParams_   gensupport.URLParams
4150	ifNoneMatch_ string
4151	ctx_         context.Context
4152	header_      http.Header
4153}
4154
4155// Get: Retrieve a cached execution result. Implementations SHOULD
4156// ensure that any blobs referenced from the ContentAddressableStorage
4157// are available at the time of returning the ActionResult and will be
4158// for some period of time afterwards. The lifetimes of the referenced
4159// blobs SHOULD be increased if necessary and applicable. Errors: *
4160// `NOT_FOUND`: The requested `ActionResult` is not in the cache.
4161func (r *ActionResultsService) Get(instanceName string, hash string, sizeBytes int64) *ActionResultsGetCall {
4162	c := &ActionResultsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4163	c.instanceName = instanceName
4164	c.hash = hash
4165	c.sizeBytes = sizeBytes
4166	return c
4167}
4168
4169// InlineOutputFiles sets the optional parameter "inlineOutputFiles": A
4170// hint to the server to inline the contents of the listed output files.
4171// Each path needs to exactly match one file path in either
4172// `output_paths` or `output_files` (DEPRECATED since v2.1) in the
4173// Command message.
4174func (c *ActionResultsGetCall) InlineOutputFiles(inlineOutputFiles ...string) *ActionResultsGetCall {
4175	c.urlParams_.SetMulti("inlineOutputFiles", append([]string{}, inlineOutputFiles...))
4176	return c
4177}
4178
4179// InlineStderr sets the optional parameter "inlineStderr": A hint to
4180// the server to request inlining stderr in the ActionResult message.
4181func (c *ActionResultsGetCall) InlineStderr(inlineStderr bool) *ActionResultsGetCall {
4182	c.urlParams_.Set("inlineStderr", fmt.Sprint(inlineStderr))
4183	return c
4184}
4185
4186// InlineStdout sets the optional parameter "inlineStdout": A hint to
4187// the server to request inlining stdout in the ActionResult message.
4188func (c *ActionResultsGetCall) InlineStdout(inlineStdout bool) *ActionResultsGetCall {
4189	c.urlParams_.Set("inlineStdout", fmt.Sprint(inlineStdout))
4190	return c
4191}
4192
4193// Fields allows partial responses to be retrieved. See
4194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4195// for more information.
4196func (c *ActionResultsGetCall) Fields(s ...googleapi.Field) *ActionResultsGetCall {
4197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4198	return c
4199}
4200
4201// IfNoneMatch sets the optional parameter which makes the operation
4202// fail if the object's ETag matches the given value. This is useful for
4203// getting updates only after the object has changed since the last
4204// request. Use googleapi.IsNotModified to check whether the response
4205// error from Do is the result of In-None-Match.
4206func (c *ActionResultsGetCall) IfNoneMatch(entityTag string) *ActionResultsGetCall {
4207	c.ifNoneMatch_ = entityTag
4208	return c
4209}
4210
4211// Context sets the context to be used in this call's Do method. Any
4212// pending HTTP request will be aborted if the provided context is
4213// canceled.
4214func (c *ActionResultsGetCall) Context(ctx context.Context) *ActionResultsGetCall {
4215	c.ctx_ = ctx
4216	return c
4217}
4218
4219// Header returns an http.Header that can be modified by the caller to
4220// add HTTP headers to the request.
4221func (c *ActionResultsGetCall) Header() http.Header {
4222	if c.header_ == nil {
4223		c.header_ = make(http.Header)
4224	}
4225	return c.header_
4226}
4227
4228func (c *ActionResultsGetCall) doRequest(alt string) (*http.Response, error) {
4229	reqHeaders := make(http.Header)
4230	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
4231	for k, v := range c.header_ {
4232		reqHeaders[k] = v
4233	}
4234	reqHeaders.Set("User-Agent", c.s.userAgent())
4235	if c.ifNoneMatch_ != "" {
4236		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4237	}
4238	var body io.Reader = nil
4239	c.urlParams_.Set("alt", alt)
4240	c.urlParams_.Set("prettyPrint", "false")
4241	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+instanceName}/actionResults/{hash}/{sizeBytes}")
4242	urls += "?" + c.urlParams_.Encode()
4243	req, err := http.NewRequest("GET", urls, body)
4244	if err != nil {
4245		return nil, err
4246	}
4247	req.Header = reqHeaders
4248	googleapi.Expand(req.URL, map[string]string{
4249		"instanceName": c.instanceName,
4250		"hash":         c.hash,
4251		"sizeBytes":    strconv.FormatInt(c.sizeBytes, 10),
4252	})
4253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4254}
4255
4256// Do executes the "remotebuildexecution.actionResults.get" call.
4257// Exactly one of *BuildBazelRemoteExecutionV2ActionResult or error will
4258// be non-nil. Any non-2xx status code is an error. Response headers are
4259// in either
4260// *BuildBazelRemoteExecutionV2ActionResult.ServerResponse.Header or (if
4261// a response was returned at all) in error.(*googleapi.Error).Header.
4262// Use googleapi.IsNotModified to check whether the returned error was
4263// because http.StatusNotModified was returned.
4264func (c *ActionResultsGetCall) Do(opts ...googleapi.CallOption) (*BuildBazelRemoteExecutionV2ActionResult, error) {
4265	gensupport.SetOptions(c.urlParams_, opts...)
4266	res, err := c.doRequest("json")
4267	if res != nil && res.StatusCode == http.StatusNotModified {
4268		if res.Body != nil {
4269			res.Body.Close()
4270		}
4271		return nil, &googleapi.Error{
4272			Code:   res.StatusCode,
4273			Header: res.Header,
4274		}
4275	}
4276	if err != nil {
4277		return nil, err
4278	}
4279	defer googleapi.CloseBody(res)
4280	if err := googleapi.CheckResponse(res); err != nil {
4281		return nil, err
4282	}
4283	ret := &BuildBazelRemoteExecutionV2ActionResult{
4284		ServerResponse: googleapi.ServerResponse{
4285			Header:         res.Header,
4286			HTTPStatusCode: res.StatusCode,
4287		},
4288	}
4289	target := &ret
4290	if err := gensupport.DecodeResponse(target, res); err != nil {
4291		return nil, err
4292	}
4293	return ret, nil
4294	// {
4295	//   "description": "Retrieve a cached execution result. Implementations SHOULD ensure that any blobs referenced from the ContentAddressableStorage are available at the time of returning the ActionResult and will be for some period of time afterwards. The lifetimes of the referenced blobs SHOULD be increased if necessary and applicable. Errors: * `NOT_FOUND`: The requested `ActionResult` is not in the cache.",
4296	//   "flatPath": "v2/{v2Id}/actionResults/{hash}/{sizeBytes}",
4297	//   "httpMethod": "GET",
4298	//   "id": "remotebuildexecution.actionResults.get",
4299	//   "parameterOrder": [
4300	//     "instanceName",
4301	//     "hash",
4302	//     "sizeBytes"
4303	//   ],
4304	//   "parameters": {
4305	//     "hash": {
4306	//       "description": "The hash. In the case of SHA-256, it will always be a lowercase hex string exactly 64 characters long.",
4307	//       "location": "path",
4308	//       "required": true,
4309	//       "type": "string"
4310	//     },
4311	//     "inlineOutputFiles": {
4312	//       "description": "A hint to the server to inline the contents of the listed output files. Each path needs to exactly match one file path in either `output_paths` or `output_files` (DEPRECATED since v2.1) in the Command message.",
4313	//       "location": "query",
4314	//       "repeated": true,
4315	//       "type": "string"
4316	//     },
4317	//     "inlineStderr": {
4318	//       "description": "A hint to the server to request inlining stderr in the ActionResult message.",
4319	//       "location": "query",
4320	//       "type": "boolean"
4321	//     },
4322	//     "inlineStdout": {
4323	//       "description": "A hint to the server to request inlining stdout in the ActionResult message.",
4324	//       "location": "query",
4325	//       "type": "boolean"
4326	//     },
4327	//     "instanceName": {
4328	//       "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.",
4329	//       "location": "path",
4330	//       "pattern": "^.*$",
4331	//       "required": true,
4332	//       "type": "string"
4333	//     },
4334	//     "sizeBytes": {
4335	//       "description": "The size of the blob, in bytes.",
4336	//       "format": "int64",
4337	//       "location": "path",
4338	//       "required": true,
4339	//       "type": "string"
4340	//     }
4341	//   },
4342	//   "path": "v2/{+instanceName}/actionResults/{hash}/{sizeBytes}",
4343	//   "response": {
4344	//     "$ref": "BuildBazelRemoteExecutionV2ActionResult"
4345	//   },
4346	//   "scopes": [
4347	//     "https://www.googleapis.com/auth/cloud-platform"
4348	//   ]
4349	// }
4350
4351}
4352
4353// method id "remotebuildexecution.actionResults.update":
4354
4355type ActionResultsUpdateCall struct {
4356	s                                       *Service
4357	instanceName                            string
4358	hash                                    string
4359	sizeBytes                               int64
4360	buildbazelremoteexecutionv2actionresult *BuildBazelRemoteExecutionV2ActionResult
4361	urlParams_                              gensupport.URLParams
4362	ctx_                                    context.Context
4363	header_                                 http.Header
4364}
4365
4366// Update: Upload a new execution result. In order to allow the server
4367// to perform access control based on the type of action, and to assist
4368// with client debugging, the client MUST first upload the Action that
4369// produced the result, along with its Command, into the
4370// `ContentAddressableStorage`. Server implementations MAY modify the
4371// `UpdateActionResultRequest.action_result` and return an equivalent
4372// value. Errors: * `INVALID_ARGUMENT`: One or more arguments are
4373// invalid. * `FAILED_PRECONDITION`: One or more errors occurred in
4374// updating the action result, such as a missing command or action. *
4375// `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
4376// entry to the cache.
4377func (r *ActionResultsService) Update(instanceName string, hash string, sizeBytes int64, buildbazelremoteexecutionv2actionresult *BuildBazelRemoteExecutionV2ActionResult) *ActionResultsUpdateCall {
4378	c := &ActionResultsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4379	c.instanceName = instanceName
4380	c.hash = hash
4381	c.sizeBytes = sizeBytes
4382	c.buildbazelremoteexecutionv2actionresult = buildbazelremoteexecutionv2actionresult
4383	return c
4384}
4385
4386// ResultsCachePolicyPriority sets the optional parameter
4387// "resultsCachePolicy.priority": The priority (relative importance) of
4388// this content in the overall cache. Generally, a lower value means a
4389// longer retention time or other advantage, but the interpretation of a
4390// given value is server-dependent. A priority of 0 means a *default*
4391// value, decided by the server. The particular semantics of this field
4392// is up to the server. In particular, every server will have their own
4393// supported range of priorities, and will decide how these map into
4394// retention/eviction policy.
4395func (c *ActionResultsUpdateCall) ResultsCachePolicyPriority(resultsCachePolicyPriority int64) *ActionResultsUpdateCall {
4396	c.urlParams_.Set("resultsCachePolicy.priority", fmt.Sprint(resultsCachePolicyPriority))
4397	return c
4398}
4399
4400// Fields allows partial responses to be retrieved. See
4401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4402// for more information.
4403func (c *ActionResultsUpdateCall) Fields(s ...googleapi.Field) *ActionResultsUpdateCall {
4404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4405	return c
4406}
4407
4408// Context sets the context to be used in this call's Do method. Any
4409// pending HTTP request will be aborted if the provided context is
4410// canceled.
4411func (c *ActionResultsUpdateCall) Context(ctx context.Context) *ActionResultsUpdateCall {
4412	c.ctx_ = ctx
4413	return c
4414}
4415
4416// Header returns an http.Header that can be modified by the caller to
4417// add HTTP headers to the request.
4418func (c *ActionResultsUpdateCall) Header() http.Header {
4419	if c.header_ == nil {
4420		c.header_ = make(http.Header)
4421	}
4422	return c.header_
4423}
4424
4425func (c *ActionResultsUpdateCall) doRequest(alt string) (*http.Response, error) {
4426	reqHeaders := make(http.Header)
4427	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
4428	for k, v := range c.header_ {
4429		reqHeaders[k] = v
4430	}
4431	reqHeaders.Set("User-Agent", c.s.userAgent())
4432	var body io.Reader = nil
4433	body, err := googleapi.WithoutDataWrapper.JSONReader(c.buildbazelremoteexecutionv2actionresult)
4434	if err != nil {
4435		return nil, err
4436	}
4437	reqHeaders.Set("Content-Type", "application/json")
4438	c.urlParams_.Set("alt", alt)
4439	c.urlParams_.Set("prettyPrint", "false")
4440	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+instanceName}/actionResults/{hash}/{sizeBytes}")
4441	urls += "?" + c.urlParams_.Encode()
4442	req, err := http.NewRequest("PUT", urls, body)
4443	if err != nil {
4444		return nil, err
4445	}
4446	req.Header = reqHeaders
4447	googleapi.Expand(req.URL, map[string]string{
4448		"instanceName": c.instanceName,
4449		"hash":         c.hash,
4450		"sizeBytes":    strconv.FormatInt(c.sizeBytes, 10),
4451	})
4452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4453}
4454
4455// Do executes the "remotebuildexecution.actionResults.update" call.
4456// Exactly one of *BuildBazelRemoteExecutionV2ActionResult or error will
4457// be non-nil. Any non-2xx status code is an error. Response headers are
4458// in either
4459// *BuildBazelRemoteExecutionV2ActionResult.ServerResponse.Header or (if
4460// a response was returned at all) in error.(*googleapi.Error).Header.
4461// Use googleapi.IsNotModified to check whether the returned error was
4462// because http.StatusNotModified was returned.
4463func (c *ActionResultsUpdateCall) Do(opts ...googleapi.CallOption) (*BuildBazelRemoteExecutionV2ActionResult, error) {
4464	gensupport.SetOptions(c.urlParams_, opts...)
4465	res, err := c.doRequest("json")
4466	if res != nil && res.StatusCode == http.StatusNotModified {
4467		if res.Body != nil {
4468			res.Body.Close()
4469		}
4470		return nil, &googleapi.Error{
4471			Code:   res.StatusCode,
4472			Header: res.Header,
4473		}
4474	}
4475	if err != nil {
4476		return nil, err
4477	}
4478	defer googleapi.CloseBody(res)
4479	if err := googleapi.CheckResponse(res); err != nil {
4480		return nil, err
4481	}
4482	ret := &BuildBazelRemoteExecutionV2ActionResult{
4483		ServerResponse: googleapi.ServerResponse{
4484			Header:         res.Header,
4485			HTTPStatusCode: res.StatusCode,
4486		},
4487	}
4488	target := &ret
4489	if err := gensupport.DecodeResponse(target, res); err != nil {
4490		return nil, err
4491	}
4492	return ret, nil
4493	// {
4494	//   "description": "Upload a new execution result. In order to allow the server to perform access control based on the type of action, and to assist with client debugging, the client MUST first upload the Action that produced the result, along with its Command, into the `ContentAddressableStorage`. Server implementations MAY modify the `UpdateActionResultRequest.action_result` and return an equivalent value. Errors: * `INVALID_ARGUMENT`: One or more arguments are invalid. * `FAILED_PRECONDITION`: One or more errors occurred in updating the action result, such as a missing command or action. * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the entry to the cache.",
4495	//   "flatPath": "v2/{v2Id}/actionResults/{hash}/{sizeBytes}",
4496	//   "httpMethod": "PUT",
4497	//   "id": "remotebuildexecution.actionResults.update",
4498	//   "parameterOrder": [
4499	//     "instanceName",
4500	//     "hash",
4501	//     "sizeBytes"
4502	//   ],
4503	//   "parameters": {
4504	//     "hash": {
4505	//       "description": "The hash. In the case of SHA-256, it will always be a lowercase hex string exactly 64 characters long.",
4506	//       "location": "path",
4507	//       "required": true,
4508	//       "type": "string"
4509	//     },
4510	//     "instanceName": {
4511	//       "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.",
4512	//       "location": "path",
4513	//       "pattern": "^.*$",
4514	//       "required": true,
4515	//       "type": "string"
4516	//     },
4517	//     "resultsCachePolicy.priority": {
4518	//       "description": "The priority (relative importance) of this content in the overall cache. Generally, a lower value means a longer retention time or other advantage, but the interpretation of a given value is server-dependent. A priority of 0 means a *default* value, decided by the server. The particular semantics of this field is up to the server. In particular, every server will have their own supported range of priorities, and will decide how these map into retention/eviction policy.",
4519	//       "format": "int32",
4520	//       "location": "query",
4521	//       "type": "integer"
4522	//     },
4523	//     "sizeBytes": {
4524	//       "description": "The size of the blob, in bytes.",
4525	//       "format": "int64",
4526	//       "location": "path",
4527	//       "required": true,
4528	//       "type": "string"
4529	//     }
4530	//   },
4531	//   "path": "v2/{+instanceName}/actionResults/{hash}/{sizeBytes}",
4532	//   "request": {
4533	//     "$ref": "BuildBazelRemoteExecutionV2ActionResult"
4534	//   },
4535	//   "response": {
4536	//     "$ref": "BuildBazelRemoteExecutionV2ActionResult"
4537	//   },
4538	//   "scopes": [
4539	//     "https://www.googleapis.com/auth/cloud-platform"
4540	//   ]
4541	// }
4542
4543}
4544
4545// method id "remotebuildexecution.actions.execute":
4546
4547type ActionsExecuteCall struct {
4548	s                                         *Service
4549	instanceName                              string
4550	buildbazelremoteexecutionv2executerequest *BuildBazelRemoteExecutionV2ExecuteRequest
4551	urlParams_                                gensupport.URLParams
4552	ctx_                                      context.Context
4553	header_                                   http.Header
4554}
4555
4556// Execute: Execute an action remotely. In order to execute an action,
4557// the client must first upload all of the inputs, the Command to run,
4558// and the Action into the ContentAddressableStorage. It then calls
4559// `Execute` with an `action_digest` referring to them. The server will
4560// run the action and eventually return the result. The input `Action`'s
4561// fields MUST meet the various canonicalization requirements specified
4562// in the documentation for their types so that it has the same digest
4563// as other logically equivalent `Action`s. The server MAY enforce the
4564// requirements and return errors if a non-canonical input is received.
4565// It MAY also proceed without verifying some or all of the
4566// requirements, such as for performance reasons. If the server does not
4567// verify the requirement, then it will treat the `Action` as distinct
4568// from another logically equivalent action if they hash differently.
4569// Returns a stream of google.longrunning.Operation messages describing
4570// the resulting execution, with eventual `response` ExecuteResponse.
4571// The `metadata` on the operation is of type ExecuteOperationMetadata.
4572// If the client remains connected after the first response is returned
4573// after the server, then updates are streamed as if the client had
4574// called WaitExecution until the execution completes or the request
4575// reaches an error. The operation can also be queried using Operations
4576// API. The server NEED NOT implement other methods or functionality of
4577// the Operations API. Errors discovered during creation of the
4578// `Operation` will be reported as gRPC Status errors, while errors that
4579// occurred while running the action will be reported in the `status`
4580// field of the `ExecuteResponse`. The server MUST NOT set the `error`
4581// field of the `Operation` proto. The possible errors include: *
4582// `INVALID_ARGUMENT`: One or more arguments are invalid. *
4583// `FAILED_PRECONDITION`: One or more errors occurred in setting up the
4584// action requested, such as a missing input or command or no worker
4585// being available. The client may be able to fix the errors and retry.
4586// * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource
4587// to run the action. * `UNAVAILABLE`: Due to a transient condition,
4588// such as all workers being occupied (and the server does not support a
4589// queue), the action could not be started. The client should retry. *
4590// `INTERNAL`: An internal error occurred in the execution engine or the
4591// worker. * `DEADLINE_EXCEEDED`: The execution timed out. *
4592// `CANCELLED`: The operation was cancelled by the client. This status
4593// is only possible if the server implements the Operations API
4594// CancelOperation method, and it was called for the current execution.
4595// In the case of a missing input or command, the server SHOULD
4596// additionally send a PreconditionFailure error detail where, for each
4597// requested blob not present in the CAS, there is a `Violation` with a
4598// `type` of `MISSING` and a `subject` of "blobs/{hash}/{size}"
4599// indicating the digest of the missing blob. The server does not need
4600// to guarantee that a call to this method leads to at most one
4601// execution of the action. The server MAY execute the action multiple
4602// times, potentially in parallel. These redundant executions MAY
4603// continue to run, even if the operation is completed.
4604func (r *ActionsService) Execute(instanceName string, buildbazelremoteexecutionv2executerequest *BuildBazelRemoteExecutionV2ExecuteRequest) *ActionsExecuteCall {
4605	c := &ActionsExecuteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4606	c.instanceName = instanceName
4607	c.buildbazelremoteexecutionv2executerequest = buildbazelremoteexecutionv2executerequest
4608	return c
4609}
4610
4611// Fields allows partial responses to be retrieved. See
4612// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4613// for more information.
4614func (c *ActionsExecuteCall) Fields(s ...googleapi.Field) *ActionsExecuteCall {
4615	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4616	return c
4617}
4618
4619// Context sets the context to be used in this call's Do method. Any
4620// pending HTTP request will be aborted if the provided context is
4621// canceled.
4622func (c *ActionsExecuteCall) Context(ctx context.Context) *ActionsExecuteCall {
4623	c.ctx_ = ctx
4624	return c
4625}
4626
4627// Header returns an http.Header that can be modified by the caller to
4628// add HTTP headers to the request.
4629func (c *ActionsExecuteCall) Header() http.Header {
4630	if c.header_ == nil {
4631		c.header_ = make(http.Header)
4632	}
4633	return c.header_
4634}
4635
4636func (c *ActionsExecuteCall) doRequest(alt string) (*http.Response, error) {
4637	reqHeaders := make(http.Header)
4638	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
4639	for k, v := range c.header_ {
4640		reqHeaders[k] = v
4641	}
4642	reqHeaders.Set("User-Agent", c.s.userAgent())
4643	var body io.Reader = nil
4644	body, err := googleapi.WithoutDataWrapper.JSONReader(c.buildbazelremoteexecutionv2executerequest)
4645	if err != nil {
4646		return nil, err
4647	}
4648	reqHeaders.Set("Content-Type", "application/json")
4649	c.urlParams_.Set("alt", alt)
4650	c.urlParams_.Set("prettyPrint", "false")
4651	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+instanceName}/actions:execute")
4652	urls += "?" + c.urlParams_.Encode()
4653	req, err := http.NewRequest("POST", urls, body)
4654	if err != nil {
4655		return nil, err
4656	}
4657	req.Header = reqHeaders
4658	googleapi.Expand(req.URL, map[string]string{
4659		"instanceName": c.instanceName,
4660	})
4661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4662}
4663
4664// Do executes the "remotebuildexecution.actions.execute" call.
4665// Exactly one of *GoogleLongrunningOperation or error will be non-nil.
4666// Any non-2xx status code is an error. Response headers are in either
4667// *GoogleLongrunningOperation.ServerResponse.Header or (if a response
4668// was returned at all) in error.(*googleapi.Error).Header. Use
4669// googleapi.IsNotModified to check whether the returned error was
4670// because http.StatusNotModified was returned.
4671func (c *ActionsExecuteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
4672	gensupport.SetOptions(c.urlParams_, opts...)
4673	res, err := c.doRequest("json")
4674	if res != nil && res.StatusCode == http.StatusNotModified {
4675		if res.Body != nil {
4676			res.Body.Close()
4677		}
4678		return nil, &googleapi.Error{
4679			Code:   res.StatusCode,
4680			Header: res.Header,
4681		}
4682	}
4683	if err != nil {
4684		return nil, err
4685	}
4686	defer googleapi.CloseBody(res)
4687	if err := googleapi.CheckResponse(res); err != nil {
4688		return nil, err
4689	}
4690	ret := &GoogleLongrunningOperation{
4691		ServerResponse: googleapi.ServerResponse{
4692			Header:         res.Header,
4693			HTTPStatusCode: res.StatusCode,
4694		},
4695	}
4696	target := &ret
4697	if err := gensupport.DecodeResponse(target, res); err != nil {
4698		return nil, err
4699	}
4700	return ret, nil
4701	// {
4702	//   "description": "Execute an action remotely. In order to execute an action, the client must first upload all of the inputs, the Command to run, and the Action into the ContentAddressableStorage. It then calls `Execute` with an `action_digest` referring to them. The server will run the action and eventually return the result. The input `Action`'s fields MUST meet the various canonicalization requirements specified in the documentation for their types so that it has the same digest as other logically equivalent `Action`s. The server MAY enforce the requirements and return errors if a non-canonical input is received. It MAY also proceed without verifying some or all of the requirements, such as for performance reasons. If the server does not verify the requirement, then it will treat the `Action` as distinct from another logically equivalent action if they hash differently. Returns a stream of google.longrunning.Operation messages describing the resulting execution, with eventual `response` ExecuteResponse. The `metadata` on the operation is of type ExecuteOperationMetadata. If the client remains connected after the first response is returned after the server, then updates are streamed as if the client had called WaitExecution until the execution completes or the request reaches an error. The operation can also be queried using Operations API. The server NEED NOT implement other methods or functionality of the Operations API. Errors discovered during creation of the `Operation` will be reported as gRPC Status errors, while errors that occurred while running the action will be reported in the `status` field of the `ExecuteResponse`. The server MUST NOT set the `error` field of the `Operation` proto. The possible errors include: * `INVALID_ARGUMENT`: One or more arguments are invalid. * `FAILED_PRECONDITION`: One or more errors occurred in setting up the action requested, such as a missing input or command or no worker being available. The client may be able to fix the errors and retry. * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run the action. * `UNAVAILABLE`: Due to a transient condition, such as all workers being occupied (and the server does not support a queue), the action could not be started. The client should retry. * `INTERNAL`: An internal error occurred in the execution engine or the worker. * `DEADLINE_EXCEEDED`: The execution timed out. * `CANCELLED`: The operation was cancelled by the client. This status is only possible if the server implements the Operations API CancelOperation method, and it was called for the current execution. In the case of a missing input or command, the server SHOULD additionally send a PreconditionFailure error detail where, for each requested blob not present in the CAS, there is a `Violation` with a `type` of `MISSING` and a `subject` of `\"blobs/{hash}/{size}\"` indicating the digest of the missing blob. The server does not need to guarantee that a call to this method leads to at most one execution of the action. The server MAY execute the action multiple times, potentially in parallel. These redundant executions MAY continue to run, even if the operation is completed.",
4703	//   "flatPath": "v2/{v2Id}/actions:execute",
4704	//   "httpMethod": "POST",
4705	//   "id": "remotebuildexecution.actions.execute",
4706	//   "parameterOrder": [
4707	//     "instanceName"
4708	//   ],
4709	//   "parameters": {
4710	//     "instanceName": {
4711	//       "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.",
4712	//       "location": "path",
4713	//       "pattern": "^.*$",
4714	//       "required": true,
4715	//       "type": "string"
4716	//     }
4717	//   },
4718	//   "path": "v2/{+instanceName}/actions:execute",
4719	//   "request": {
4720	//     "$ref": "BuildBazelRemoteExecutionV2ExecuteRequest"
4721	//   },
4722	//   "response": {
4723	//     "$ref": "GoogleLongrunningOperation"
4724	//   },
4725	//   "scopes": [
4726	//     "https://www.googleapis.com/auth/cloud-platform"
4727	//   ]
4728	// }
4729
4730}
4731
4732// method id "remotebuildexecution.blobs.batchRead":
4733
4734type BlobsBatchReadCall struct {
4735	s                                                *Service
4736	instanceName                                     string
4737	buildbazelremoteexecutionv2batchreadblobsrequest *BuildBazelRemoteExecutionV2BatchReadBlobsRequest
4738	urlParams_                                       gensupport.URLParams
4739	ctx_                                             context.Context
4740	header_                                          http.Header
4741}
4742
4743// BatchRead: Download many blobs at once. The server may enforce a
4744// limit of the combined total size of blobs to be downloaded using this
4745// API. This limit may be obtained using the Capabilities API. Requests
4746// exceeding the limit should either be split into smaller chunks or
4747// downloaded using the ByteStream API, as appropriate. This request is
4748// equivalent to calling a Bytestream `Read` request on each individual
4749// blob, in parallel. The requests may succeed or fail independently.
4750// Errors: * `INVALID_ARGUMENT`: The client attempted to read more than
4751// the server supported limit. Every error on individual read will be
4752// returned in the corresponding digest status.
4753func (r *BlobsService) BatchRead(instanceName string, buildbazelremoteexecutionv2batchreadblobsrequest *BuildBazelRemoteExecutionV2BatchReadBlobsRequest) *BlobsBatchReadCall {
4754	c := &BlobsBatchReadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4755	c.instanceName = instanceName
4756	c.buildbazelremoteexecutionv2batchreadblobsrequest = buildbazelremoteexecutionv2batchreadblobsrequest
4757	return c
4758}
4759
4760// Fields allows partial responses to be retrieved. See
4761// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4762// for more information.
4763func (c *BlobsBatchReadCall) Fields(s ...googleapi.Field) *BlobsBatchReadCall {
4764	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4765	return c
4766}
4767
4768// Context sets the context to be used in this call's Do method. Any
4769// pending HTTP request will be aborted if the provided context is
4770// canceled.
4771func (c *BlobsBatchReadCall) Context(ctx context.Context) *BlobsBatchReadCall {
4772	c.ctx_ = ctx
4773	return c
4774}
4775
4776// Header returns an http.Header that can be modified by the caller to
4777// add HTTP headers to the request.
4778func (c *BlobsBatchReadCall) Header() http.Header {
4779	if c.header_ == nil {
4780		c.header_ = make(http.Header)
4781	}
4782	return c.header_
4783}
4784
4785func (c *BlobsBatchReadCall) doRequest(alt string) (*http.Response, error) {
4786	reqHeaders := make(http.Header)
4787	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
4788	for k, v := range c.header_ {
4789		reqHeaders[k] = v
4790	}
4791	reqHeaders.Set("User-Agent", c.s.userAgent())
4792	var body io.Reader = nil
4793	body, err := googleapi.WithoutDataWrapper.JSONReader(c.buildbazelremoteexecutionv2batchreadblobsrequest)
4794	if err != nil {
4795		return nil, err
4796	}
4797	reqHeaders.Set("Content-Type", "application/json")
4798	c.urlParams_.Set("alt", alt)
4799	c.urlParams_.Set("prettyPrint", "false")
4800	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+instanceName}/blobs:batchRead")
4801	urls += "?" + c.urlParams_.Encode()
4802	req, err := http.NewRequest("POST", urls, body)
4803	if err != nil {
4804		return nil, err
4805	}
4806	req.Header = reqHeaders
4807	googleapi.Expand(req.URL, map[string]string{
4808		"instanceName": c.instanceName,
4809	})
4810	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4811}
4812
4813// Do executes the "remotebuildexecution.blobs.batchRead" call.
4814// Exactly one of *BuildBazelRemoteExecutionV2BatchReadBlobsResponse or
4815// error will be non-nil. Any non-2xx status code is an error. Response
4816// headers are in either
4817// *BuildBazelRemoteExecutionV2BatchReadBlobsResponse.ServerResponse.Head
4818// er or (if a response was returned at all) in
4819// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
4820// whether the returned error was because http.StatusNotModified was
4821// returned.
4822func (c *BlobsBatchReadCall) Do(opts ...googleapi.CallOption) (*BuildBazelRemoteExecutionV2BatchReadBlobsResponse, error) {
4823	gensupport.SetOptions(c.urlParams_, opts...)
4824	res, err := c.doRequest("json")
4825	if res != nil && res.StatusCode == http.StatusNotModified {
4826		if res.Body != nil {
4827			res.Body.Close()
4828		}
4829		return nil, &googleapi.Error{
4830			Code:   res.StatusCode,
4831			Header: res.Header,
4832		}
4833	}
4834	if err != nil {
4835		return nil, err
4836	}
4837	defer googleapi.CloseBody(res)
4838	if err := googleapi.CheckResponse(res); err != nil {
4839		return nil, err
4840	}
4841	ret := &BuildBazelRemoteExecutionV2BatchReadBlobsResponse{
4842		ServerResponse: googleapi.ServerResponse{
4843			Header:         res.Header,
4844			HTTPStatusCode: res.StatusCode,
4845		},
4846	}
4847	target := &ret
4848	if err := gensupport.DecodeResponse(target, res); err != nil {
4849		return nil, err
4850	}
4851	return ret, nil
4852	// {
4853	//   "description": "Download many blobs at once. The server may enforce a limit of the combined total size of blobs to be downloaded using this API. This limit may be obtained using the Capabilities API. Requests exceeding the limit should either be split into smaller chunks or downloaded using the ByteStream API, as appropriate. This request is equivalent to calling a Bytestream `Read` request on each individual blob, in parallel. The requests may succeed or fail independently. Errors: * `INVALID_ARGUMENT`: The client attempted to read more than the server supported limit. Every error on individual read will be returned in the corresponding digest status.",
4854	//   "flatPath": "v2/{v2Id}/blobs:batchRead",
4855	//   "httpMethod": "POST",
4856	//   "id": "remotebuildexecution.blobs.batchRead",
4857	//   "parameterOrder": [
4858	//     "instanceName"
4859	//   ],
4860	//   "parameters": {
4861	//     "instanceName": {
4862	//       "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.",
4863	//       "location": "path",
4864	//       "pattern": "^.*$",
4865	//       "required": true,
4866	//       "type": "string"
4867	//     }
4868	//   },
4869	//   "path": "v2/{+instanceName}/blobs:batchRead",
4870	//   "request": {
4871	//     "$ref": "BuildBazelRemoteExecutionV2BatchReadBlobsRequest"
4872	//   },
4873	//   "response": {
4874	//     "$ref": "BuildBazelRemoteExecutionV2BatchReadBlobsResponse"
4875	//   },
4876	//   "scopes": [
4877	//     "https://www.googleapis.com/auth/cloud-platform"
4878	//   ]
4879	// }
4880
4881}
4882
4883// method id "remotebuildexecution.blobs.batchUpdate":
4884
4885type BlobsBatchUpdateCall struct {
4886	s                                                  *Service
4887	instanceName                                       string
4888	buildbazelremoteexecutionv2batchupdateblobsrequest *BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest
4889	urlParams_                                         gensupport.URLParams
4890	ctx_                                               context.Context
4891	header_                                            http.Header
4892}
4893
4894// BatchUpdate: Upload many blobs at once. The server may enforce a
4895// limit of the combined total size of blobs to be uploaded using this
4896// API. This limit may be obtained using the Capabilities API. Requests
4897// exceeding the limit should either be split into smaller chunks or
4898// uploaded using the ByteStream API, as appropriate. This request is
4899// equivalent to calling a Bytestream `Write` request on each individual
4900// blob, in parallel. The requests may succeed or fail independently.
4901// Errors: * `INVALID_ARGUMENT`: The client attempted to upload more
4902// than the server supported limit. Individual requests may return the
4903// following errors, additionally: * `RESOURCE_EXHAUSTED`: There is
4904// insufficient disk quota to store the blob. * `INVALID_ARGUMENT`: The
4905// Digest does not match the provided data.
4906func (r *BlobsService) BatchUpdate(instanceName string, buildbazelremoteexecutionv2batchupdateblobsrequest *BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest) *BlobsBatchUpdateCall {
4907	c := &BlobsBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4908	c.instanceName = instanceName
4909	c.buildbazelremoteexecutionv2batchupdateblobsrequest = buildbazelremoteexecutionv2batchupdateblobsrequest
4910	return c
4911}
4912
4913// Fields allows partial responses to be retrieved. See
4914// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4915// for more information.
4916func (c *BlobsBatchUpdateCall) Fields(s ...googleapi.Field) *BlobsBatchUpdateCall {
4917	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4918	return c
4919}
4920
4921// Context sets the context to be used in this call's Do method. Any
4922// pending HTTP request will be aborted if the provided context is
4923// canceled.
4924func (c *BlobsBatchUpdateCall) Context(ctx context.Context) *BlobsBatchUpdateCall {
4925	c.ctx_ = ctx
4926	return c
4927}
4928
4929// Header returns an http.Header that can be modified by the caller to
4930// add HTTP headers to the request.
4931func (c *BlobsBatchUpdateCall) Header() http.Header {
4932	if c.header_ == nil {
4933		c.header_ = make(http.Header)
4934	}
4935	return c.header_
4936}
4937
4938func (c *BlobsBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
4939	reqHeaders := make(http.Header)
4940	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
4941	for k, v := range c.header_ {
4942		reqHeaders[k] = v
4943	}
4944	reqHeaders.Set("User-Agent", c.s.userAgent())
4945	var body io.Reader = nil
4946	body, err := googleapi.WithoutDataWrapper.JSONReader(c.buildbazelremoteexecutionv2batchupdateblobsrequest)
4947	if err != nil {
4948		return nil, err
4949	}
4950	reqHeaders.Set("Content-Type", "application/json")
4951	c.urlParams_.Set("alt", alt)
4952	c.urlParams_.Set("prettyPrint", "false")
4953	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+instanceName}/blobs:batchUpdate")
4954	urls += "?" + c.urlParams_.Encode()
4955	req, err := http.NewRequest("POST", urls, body)
4956	if err != nil {
4957		return nil, err
4958	}
4959	req.Header = reqHeaders
4960	googleapi.Expand(req.URL, map[string]string{
4961		"instanceName": c.instanceName,
4962	})
4963	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4964}
4965
4966// Do executes the "remotebuildexecution.blobs.batchUpdate" call.
4967// Exactly one of *BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse
4968// or error will be non-nil. Any non-2xx status code is an error.
4969// Response headers are in either
4970// *BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse.ServerResponse.He
4971// ader or (if a response was returned at all) in
4972// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
4973// whether the returned error was because http.StatusNotModified was
4974// returned.
4975func (c *BlobsBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse, error) {
4976	gensupport.SetOptions(c.urlParams_, opts...)
4977	res, err := c.doRequest("json")
4978	if res != nil && res.StatusCode == http.StatusNotModified {
4979		if res.Body != nil {
4980			res.Body.Close()
4981		}
4982		return nil, &googleapi.Error{
4983			Code:   res.StatusCode,
4984			Header: res.Header,
4985		}
4986	}
4987	if err != nil {
4988		return nil, err
4989	}
4990	defer googleapi.CloseBody(res)
4991	if err := googleapi.CheckResponse(res); err != nil {
4992		return nil, err
4993	}
4994	ret := &BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse{
4995		ServerResponse: googleapi.ServerResponse{
4996			Header:         res.Header,
4997			HTTPStatusCode: res.StatusCode,
4998		},
4999	}
5000	target := &ret
5001	if err := gensupport.DecodeResponse(target, res); err != nil {
5002		return nil, err
5003	}
5004	return ret, nil
5005	// {
5006	//   "description": "Upload many blobs at once. The server may enforce a limit of the combined total size of blobs to be uploaded using this API. This limit may be obtained using the Capabilities API. Requests exceeding the limit should either be split into smaller chunks or uploaded using the ByteStream API, as appropriate. This request is equivalent to calling a Bytestream `Write` request on each individual blob, in parallel. The requests may succeed or fail independently. Errors: * `INVALID_ARGUMENT`: The client attempted to upload more than the server supported limit. Individual requests may return the following errors, additionally: * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob. * `INVALID_ARGUMENT`: The Digest does not match the provided data.",
5007	//   "flatPath": "v2/{v2Id}/blobs:batchUpdate",
5008	//   "httpMethod": "POST",
5009	//   "id": "remotebuildexecution.blobs.batchUpdate",
5010	//   "parameterOrder": [
5011	//     "instanceName"
5012	//   ],
5013	//   "parameters": {
5014	//     "instanceName": {
5015	//       "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.",
5016	//       "location": "path",
5017	//       "pattern": "^.*$",
5018	//       "required": true,
5019	//       "type": "string"
5020	//     }
5021	//   },
5022	//   "path": "v2/{+instanceName}/blobs:batchUpdate",
5023	//   "request": {
5024	//     "$ref": "BuildBazelRemoteExecutionV2BatchUpdateBlobsRequest"
5025	//   },
5026	//   "response": {
5027	//     "$ref": "BuildBazelRemoteExecutionV2BatchUpdateBlobsResponse"
5028	//   },
5029	//   "scopes": [
5030	//     "https://www.googleapis.com/auth/cloud-platform"
5031	//   ]
5032	// }
5033
5034}
5035
5036// method id "remotebuildexecution.blobs.findMissing":
5037
5038type BlobsFindMissingCall struct {
5039	s                                                  *Service
5040	instanceName                                       string
5041	buildbazelremoteexecutionv2findmissingblobsrequest *BuildBazelRemoteExecutionV2FindMissingBlobsRequest
5042	urlParams_                                         gensupport.URLParams
5043	ctx_                                               context.Context
5044	header_                                            http.Header
5045}
5046
5047// FindMissing: Determine if blobs are present in the CAS. Clients can
5048// use this API before uploading blobs to determine which ones are
5049// already present in the CAS and do not need to be uploaded again.
5050// Servers SHOULD increase the lifetimes of the referenced blobs if
5051// necessary and applicable. There are no method-specific errors.
5052func (r *BlobsService) FindMissing(instanceName string, buildbazelremoteexecutionv2findmissingblobsrequest *BuildBazelRemoteExecutionV2FindMissingBlobsRequest) *BlobsFindMissingCall {
5053	c := &BlobsFindMissingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5054	c.instanceName = instanceName
5055	c.buildbazelremoteexecutionv2findmissingblobsrequest = buildbazelremoteexecutionv2findmissingblobsrequest
5056	return c
5057}
5058
5059// Fields allows partial responses to be retrieved. See
5060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5061// for more information.
5062func (c *BlobsFindMissingCall) Fields(s ...googleapi.Field) *BlobsFindMissingCall {
5063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5064	return c
5065}
5066
5067// Context sets the context to be used in this call's Do method. Any
5068// pending HTTP request will be aborted if the provided context is
5069// canceled.
5070func (c *BlobsFindMissingCall) Context(ctx context.Context) *BlobsFindMissingCall {
5071	c.ctx_ = ctx
5072	return c
5073}
5074
5075// Header returns an http.Header that can be modified by the caller to
5076// add HTTP headers to the request.
5077func (c *BlobsFindMissingCall) Header() http.Header {
5078	if c.header_ == nil {
5079		c.header_ = make(http.Header)
5080	}
5081	return c.header_
5082}
5083
5084func (c *BlobsFindMissingCall) doRequest(alt string) (*http.Response, error) {
5085	reqHeaders := make(http.Header)
5086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
5087	for k, v := range c.header_ {
5088		reqHeaders[k] = v
5089	}
5090	reqHeaders.Set("User-Agent", c.s.userAgent())
5091	var body io.Reader = nil
5092	body, err := googleapi.WithoutDataWrapper.JSONReader(c.buildbazelremoteexecutionv2findmissingblobsrequest)
5093	if err != nil {
5094		return nil, err
5095	}
5096	reqHeaders.Set("Content-Type", "application/json")
5097	c.urlParams_.Set("alt", alt)
5098	c.urlParams_.Set("prettyPrint", "false")
5099	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+instanceName}/blobs:findMissing")
5100	urls += "?" + c.urlParams_.Encode()
5101	req, err := http.NewRequest("POST", urls, body)
5102	if err != nil {
5103		return nil, err
5104	}
5105	req.Header = reqHeaders
5106	googleapi.Expand(req.URL, map[string]string{
5107		"instanceName": c.instanceName,
5108	})
5109	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5110}
5111
5112// Do executes the "remotebuildexecution.blobs.findMissing" call.
5113// Exactly one of *BuildBazelRemoteExecutionV2FindMissingBlobsResponse
5114// or error will be non-nil. Any non-2xx status code is an error.
5115// Response headers are in either
5116// *BuildBazelRemoteExecutionV2FindMissingBlobsResponse.ServerResponse.He
5117// ader or (if a response was returned at all) in
5118// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5119// whether the returned error was because http.StatusNotModified was
5120// returned.
5121func (c *BlobsFindMissingCall) Do(opts ...googleapi.CallOption) (*BuildBazelRemoteExecutionV2FindMissingBlobsResponse, error) {
5122	gensupport.SetOptions(c.urlParams_, opts...)
5123	res, err := c.doRequest("json")
5124	if res != nil && res.StatusCode == http.StatusNotModified {
5125		if res.Body != nil {
5126			res.Body.Close()
5127		}
5128		return nil, &googleapi.Error{
5129			Code:   res.StatusCode,
5130			Header: res.Header,
5131		}
5132	}
5133	if err != nil {
5134		return nil, err
5135	}
5136	defer googleapi.CloseBody(res)
5137	if err := googleapi.CheckResponse(res); err != nil {
5138		return nil, err
5139	}
5140	ret := &BuildBazelRemoteExecutionV2FindMissingBlobsResponse{
5141		ServerResponse: googleapi.ServerResponse{
5142			Header:         res.Header,
5143			HTTPStatusCode: res.StatusCode,
5144		},
5145	}
5146	target := &ret
5147	if err := gensupport.DecodeResponse(target, res); err != nil {
5148		return nil, err
5149	}
5150	return ret, nil
5151	// {
5152	//   "description": "Determine if blobs are present in the CAS. Clients can use this API before uploading blobs to determine which ones are already present in the CAS and do not need to be uploaded again. Servers SHOULD increase the lifetimes of the referenced blobs if necessary and applicable. There are no method-specific errors.",
5153	//   "flatPath": "v2/{v2Id}/blobs:findMissing",
5154	//   "httpMethod": "POST",
5155	//   "id": "remotebuildexecution.blobs.findMissing",
5156	//   "parameterOrder": [
5157	//     "instanceName"
5158	//   ],
5159	//   "parameters": {
5160	//     "instanceName": {
5161	//       "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.",
5162	//       "location": "path",
5163	//       "pattern": "^.*$",
5164	//       "required": true,
5165	//       "type": "string"
5166	//     }
5167	//   },
5168	//   "path": "v2/{+instanceName}/blobs:findMissing",
5169	//   "request": {
5170	//     "$ref": "BuildBazelRemoteExecutionV2FindMissingBlobsRequest"
5171	//   },
5172	//   "response": {
5173	//     "$ref": "BuildBazelRemoteExecutionV2FindMissingBlobsResponse"
5174	//   },
5175	//   "scopes": [
5176	//     "https://www.googleapis.com/auth/cloud-platform"
5177	//   ]
5178	// }
5179
5180}
5181
5182// method id "remotebuildexecution.blobs.getTree":
5183
5184type BlobsGetTreeCall struct {
5185	s            *Service
5186	instanceName string
5187	hash         string
5188	sizeBytes    int64
5189	urlParams_   gensupport.URLParams
5190	ifNoneMatch_ string
5191	ctx_         context.Context
5192	header_      http.Header
5193}
5194
5195// GetTree: Fetch the entire directory tree rooted at a node. This
5196// request must be targeted at a Directory stored in the
5197// ContentAddressableStorage (CAS). The server will enumerate the
5198// `Directory` tree recursively and return every node descended from the
5199// root. The GetTreeRequest.page_token parameter can be used to skip
5200// ahead in the stream (e.g. when retrying a partially completed and
5201// aborted request), by setting it to a value taken from
5202// GetTreeResponse.next_page_token of the last successfully processed
5203// GetTreeResponse). The exact traversal order is unspecified and,
5204// unless retrieving subsequent pages from an earlier request, is not
5205// guaranteed to be stable across multiple invocations of `GetTree`. If
5206// part of the tree is missing from the CAS, the server will return the
5207// portion present and omit the rest. Errors: * `NOT_FOUND`: The
5208// requested tree root is not present in the CAS.
5209func (r *BlobsService) GetTree(instanceName string, hash string, sizeBytes int64) *BlobsGetTreeCall {
5210	c := &BlobsGetTreeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5211	c.instanceName = instanceName
5212	c.hash = hash
5213	c.sizeBytes = sizeBytes
5214	return c
5215}
5216
5217// PageSize sets the optional parameter "pageSize": A maximum page size
5218// to request. If present, the server will request no more than this
5219// many items. Regardless of whether a page size is specified, the
5220// server may place its own limit on the number of items to be returned
5221// and require the client to retrieve more items using a subsequent
5222// request.
5223func (c *BlobsGetTreeCall) PageSize(pageSize int64) *BlobsGetTreeCall {
5224	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5225	return c
5226}
5227
5228// PageToken sets the optional parameter "pageToken": A page token,
5229// which must be a value received in a previous GetTreeResponse. If
5230// present, the server will use that token as an offset, returning only
5231// that page and the ones that succeed it.
5232func (c *BlobsGetTreeCall) PageToken(pageToken string) *BlobsGetTreeCall {
5233	c.urlParams_.Set("pageToken", pageToken)
5234	return c
5235}
5236
5237// Fields allows partial responses to be retrieved. See
5238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5239// for more information.
5240func (c *BlobsGetTreeCall) Fields(s ...googleapi.Field) *BlobsGetTreeCall {
5241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5242	return c
5243}
5244
5245// IfNoneMatch sets the optional parameter which makes the operation
5246// fail if the object's ETag matches the given value. This is useful for
5247// getting updates only after the object has changed since the last
5248// request. Use googleapi.IsNotModified to check whether the response
5249// error from Do is the result of In-None-Match.
5250func (c *BlobsGetTreeCall) IfNoneMatch(entityTag string) *BlobsGetTreeCall {
5251	c.ifNoneMatch_ = entityTag
5252	return c
5253}
5254
5255// Context sets the context to be used in this call's Do method. Any
5256// pending HTTP request will be aborted if the provided context is
5257// canceled.
5258func (c *BlobsGetTreeCall) Context(ctx context.Context) *BlobsGetTreeCall {
5259	c.ctx_ = ctx
5260	return c
5261}
5262
5263// Header returns an http.Header that can be modified by the caller to
5264// add HTTP headers to the request.
5265func (c *BlobsGetTreeCall) Header() http.Header {
5266	if c.header_ == nil {
5267		c.header_ = make(http.Header)
5268	}
5269	return c.header_
5270}
5271
5272func (c *BlobsGetTreeCall) doRequest(alt string) (*http.Response, error) {
5273	reqHeaders := make(http.Header)
5274	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
5275	for k, v := range c.header_ {
5276		reqHeaders[k] = v
5277	}
5278	reqHeaders.Set("User-Agent", c.s.userAgent())
5279	if c.ifNoneMatch_ != "" {
5280		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5281	}
5282	var body io.Reader = nil
5283	c.urlParams_.Set("alt", alt)
5284	c.urlParams_.Set("prettyPrint", "false")
5285	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+instanceName}/blobs/{hash}/{sizeBytes}:getTree")
5286	urls += "?" + c.urlParams_.Encode()
5287	req, err := http.NewRequest("GET", urls, body)
5288	if err != nil {
5289		return nil, err
5290	}
5291	req.Header = reqHeaders
5292	googleapi.Expand(req.URL, map[string]string{
5293		"instanceName": c.instanceName,
5294		"hash":         c.hash,
5295		"sizeBytes":    strconv.FormatInt(c.sizeBytes, 10),
5296	})
5297	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5298}
5299
5300// Do executes the "remotebuildexecution.blobs.getTree" call.
5301// Exactly one of *BuildBazelRemoteExecutionV2GetTreeResponse or error
5302// will be non-nil. Any non-2xx status code is an error. Response
5303// headers are in either
5304// *BuildBazelRemoteExecutionV2GetTreeResponse.ServerResponse.Header or
5305// (if a response was returned at all) in
5306// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5307// whether the returned error was because http.StatusNotModified was
5308// returned.
5309func (c *BlobsGetTreeCall) Do(opts ...googleapi.CallOption) (*BuildBazelRemoteExecutionV2GetTreeResponse, error) {
5310	gensupport.SetOptions(c.urlParams_, opts...)
5311	res, err := c.doRequest("json")
5312	if res != nil && res.StatusCode == http.StatusNotModified {
5313		if res.Body != nil {
5314			res.Body.Close()
5315		}
5316		return nil, &googleapi.Error{
5317			Code:   res.StatusCode,
5318			Header: res.Header,
5319		}
5320	}
5321	if err != nil {
5322		return nil, err
5323	}
5324	defer googleapi.CloseBody(res)
5325	if err := googleapi.CheckResponse(res); err != nil {
5326		return nil, err
5327	}
5328	ret := &BuildBazelRemoteExecutionV2GetTreeResponse{
5329		ServerResponse: googleapi.ServerResponse{
5330			Header:         res.Header,
5331			HTTPStatusCode: res.StatusCode,
5332		},
5333	}
5334	target := &ret
5335	if err := gensupport.DecodeResponse(target, res); err != nil {
5336		return nil, err
5337	}
5338	return ret, nil
5339	// {
5340	//   "description": "Fetch the entire directory tree rooted at a node. This request must be targeted at a Directory stored in the ContentAddressableStorage (CAS). The server will enumerate the `Directory` tree recursively and return every node descended from the root. The GetTreeRequest.page_token parameter can be used to skip ahead in the stream (e.g. when retrying a partially completed and aborted request), by setting it to a value taken from GetTreeResponse.next_page_token of the last successfully processed GetTreeResponse). The exact traversal order is unspecified and, unless retrieving subsequent pages from an earlier request, is not guaranteed to be stable across multiple invocations of `GetTree`. If part of the tree is missing from the CAS, the server will return the portion present and omit the rest. Errors: * `NOT_FOUND`: The requested tree root is not present in the CAS.",
5341	//   "flatPath": "v2/{v2Id}/blobs/{hash}/{sizeBytes}:getTree",
5342	//   "httpMethod": "GET",
5343	//   "id": "remotebuildexecution.blobs.getTree",
5344	//   "parameterOrder": [
5345	//     "instanceName",
5346	//     "hash",
5347	//     "sizeBytes"
5348	//   ],
5349	//   "parameters": {
5350	//     "hash": {
5351	//       "description": "The hash. In the case of SHA-256, it will always be a lowercase hex string exactly 64 characters long.",
5352	//       "location": "path",
5353	//       "required": true,
5354	//       "type": "string"
5355	//     },
5356	//     "instanceName": {
5357	//       "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.",
5358	//       "location": "path",
5359	//       "pattern": "^.*$",
5360	//       "required": true,
5361	//       "type": "string"
5362	//     },
5363	//     "pageSize": {
5364	//       "description": "A maximum page size to request. If present, the server will request no more than this many items. Regardless of whether a page size is specified, the server may place its own limit on the number of items to be returned and require the client to retrieve more items using a subsequent request.",
5365	//       "format": "int32",
5366	//       "location": "query",
5367	//       "type": "integer"
5368	//     },
5369	//     "pageToken": {
5370	//       "description": "A page token, which must be a value received in a previous GetTreeResponse. If present, the server will use that token as an offset, returning only that page and the ones that succeed it.",
5371	//       "location": "query",
5372	//       "type": "string"
5373	//     },
5374	//     "sizeBytes": {
5375	//       "description": "The size of the blob, in bytes.",
5376	//       "format": "int64",
5377	//       "location": "path",
5378	//       "required": true,
5379	//       "type": "string"
5380	//     }
5381	//   },
5382	//   "path": "v2/{+instanceName}/blobs/{hash}/{sizeBytes}:getTree",
5383	//   "response": {
5384	//     "$ref": "BuildBazelRemoteExecutionV2GetTreeResponse"
5385	//   },
5386	//   "scopes": [
5387	//     "https://www.googleapis.com/auth/cloud-platform"
5388	//   ]
5389	// }
5390
5391}
5392
5393// Pages invokes f for each page of results.
5394// A non-nil error returned from f will halt the iteration.
5395// The provided context supersedes any context provided to the Context method.
5396func (c *BlobsGetTreeCall) Pages(ctx context.Context, f func(*BuildBazelRemoteExecutionV2GetTreeResponse) error) error {
5397	c.ctx_ = ctx
5398	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5399	for {
5400		x, err := c.Do()
5401		if err != nil {
5402			return err
5403		}
5404		if err := f(x); err != nil {
5405			return err
5406		}
5407		if x.NextPageToken == "" {
5408			return nil
5409		}
5410		c.PageToken(x.NextPageToken)
5411	}
5412}
5413
5414// method id "remotebuildexecution.operations.waitExecution":
5415
5416type OperationsWaitExecutionCall struct {
5417	s                                               *Service
5418	name                                            string
5419	buildbazelremoteexecutionv2waitexecutionrequest *BuildBazelRemoteExecutionV2WaitExecutionRequest
5420	urlParams_                                      gensupport.URLParams
5421	ctx_                                            context.Context
5422	header_                                         http.Header
5423}
5424
5425// WaitExecution: Wait for an execution operation to complete. When the
5426// client initially makes the request, the server immediately responds
5427// with the current status of the execution. The server will leave the
5428// request stream open until the operation completes, and then respond
5429// with the completed operation. The server MAY choose to stream
5430// additional updates as execution progresses, such as to provide an
5431// update as to the state of the execution.
5432func (r *OperationsService) WaitExecution(name string, buildbazelremoteexecutionv2waitexecutionrequest *BuildBazelRemoteExecutionV2WaitExecutionRequest) *OperationsWaitExecutionCall {
5433	c := &OperationsWaitExecutionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5434	c.name = name
5435	c.buildbazelremoteexecutionv2waitexecutionrequest = buildbazelremoteexecutionv2waitexecutionrequest
5436	return c
5437}
5438
5439// Fields allows partial responses to be retrieved. See
5440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5441// for more information.
5442func (c *OperationsWaitExecutionCall) Fields(s ...googleapi.Field) *OperationsWaitExecutionCall {
5443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5444	return c
5445}
5446
5447// Context sets the context to be used in this call's Do method. Any
5448// pending HTTP request will be aborted if the provided context is
5449// canceled.
5450func (c *OperationsWaitExecutionCall) Context(ctx context.Context) *OperationsWaitExecutionCall {
5451	c.ctx_ = ctx
5452	return c
5453}
5454
5455// Header returns an http.Header that can be modified by the caller to
5456// add HTTP headers to the request.
5457func (c *OperationsWaitExecutionCall) Header() http.Header {
5458	if c.header_ == nil {
5459		c.header_ = make(http.Header)
5460	}
5461	return c.header_
5462}
5463
5464func (c *OperationsWaitExecutionCall) doRequest(alt string) (*http.Response, error) {
5465	reqHeaders := make(http.Header)
5466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
5467	for k, v := range c.header_ {
5468		reqHeaders[k] = v
5469	}
5470	reqHeaders.Set("User-Agent", c.s.userAgent())
5471	var body io.Reader = nil
5472	body, err := googleapi.WithoutDataWrapper.JSONReader(c.buildbazelremoteexecutionv2waitexecutionrequest)
5473	if err != nil {
5474		return nil, err
5475	}
5476	reqHeaders.Set("Content-Type", "application/json")
5477	c.urlParams_.Set("alt", alt)
5478	c.urlParams_.Set("prettyPrint", "false")
5479	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+name}:waitExecution")
5480	urls += "?" + c.urlParams_.Encode()
5481	req, err := http.NewRequest("POST", urls, body)
5482	if err != nil {
5483		return nil, err
5484	}
5485	req.Header = reqHeaders
5486	googleapi.Expand(req.URL, map[string]string{
5487		"name": c.name,
5488	})
5489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5490}
5491
5492// Do executes the "remotebuildexecution.operations.waitExecution" call.
5493// Exactly one of *GoogleLongrunningOperation or error will be non-nil.
5494// Any non-2xx status code is an error. Response headers are in either
5495// *GoogleLongrunningOperation.ServerResponse.Header or (if a response
5496// was returned at all) in error.(*googleapi.Error).Header. Use
5497// googleapi.IsNotModified to check whether the returned error was
5498// because http.StatusNotModified was returned.
5499func (c *OperationsWaitExecutionCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
5500	gensupport.SetOptions(c.urlParams_, opts...)
5501	res, err := c.doRequest("json")
5502	if res != nil && res.StatusCode == http.StatusNotModified {
5503		if res.Body != nil {
5504			res.Body.Close()
5505		}
5506		return nil, &googleapi.Error{
5507			Code:   res.StatusCode,
5508			Header: res.Header,
5509		}
5510	}
5511	if err != nil {
5512		return nil, err
5513	}
5514	defer googleapi.CloseBody(res)
5515	if err := googleapi.CheckResponse(res); err != nil {
5516		return nil, err
5517	}
5518	ret := &GoogleLongrunningOperation{
5519		ServerResponse: googleapi.ServerResponse{
5520			Header:         res.Header,
5521			HTTPStatusCode: res.StatusCode,
5522		},
5523	}
5524	target := &ret
5525	if err := gensupport.DecodeResponse(target, res); err != nil {
5526		return nil, err
5527	}
5528	return ret, nil
5529	// {
5530	//   "description": "Wait for an execution operation to complete. When the client initially makes the request, the server immediately responds with the current status of the execution. The server will leave the request stream open until the operation completes, and then respond with the completed operation. The server MAY choose to stream additional updates as execution progresses, such as to provide an update as to the state of the execution.",
5531	//   "flatPath": "v2/operations/{operationsId}:waitExecution",
5532	//   "httpMethod": "POST",
5533	//   "id": "remotebuildexecution.operations.waitExecution",
5534	//   "parameterOrder": [
5535	//     "name"
5536	//   ],
5537	//   "parameters": {
5538	//     "name": {
5539	//       "description": "The name of the Operation returned by Execute.",
5540	//       "location": "path",
5541	//       "pattern": "^operations/.*$",
5542	//       "required": true,
5543	//       "type": "string"
5544	//     }
5545	//   },
5546	//   "path": "v2/{+name}:waitExecution",
5547	//   "request": {
5548	//     "$ref": "BuildBazelRemoteExecutionV2WaitExecutionRequest"
5549	//   },
5550	//   "response": {
5551	//     "$ref": "GoogleLongrunningOperation"
5552	//   },
5553	//   "scopes": [
5554	//     "https://www.googleapis.com/auth/cloud-platform"
5555	//   ]
5556	// }
5557
5558}
5559
5560// method id "remotebuildexecution.getCapabilities":
5561
5562type V2GetCapabilitiesCall struct {
5563	s            *Service
5564	instanceName string
5565	urlParams_   gensupport.URLParams
5566	ifNoneMatch_ string
5567	ctx_         context.Context
5568	header_      http.Header
5569}
5570
5571// GetCapabilities: GetCapabilities returns the server capabilities
5572// configuration of the remote endpoint. Only the capabilities of the
5573// services supported by the endpoint will be returned: * Execution +
5574// CAS + Action Cache endpoints should return both CacheCapabilities and
5575// ExecutionCapabilities. * Execution only endpoints should return
5576// ExecutionCapabilities. * CAS + Action Cache only endpoints should
5577// return CacheCapabilities.
5578func (r *V2Service) GetCapabilities(instanceName string) *V2GetCapabilitiesCall {
5579	c := &V2GetCapabilitiesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5580	c.instanceName = instanceName
5581	return c
5582}
5583
5584// Fields allows partial responses to be retrieved. See
5585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5586// for more information.
5587func (c *V2GetCapabilitiesCall) Fields(s ...googleapi.Field) *V2GetCapabilitiesCall {
5588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5589	return c
5590}
5591
5592// IfNoneMatch sets the optional parameter which makes the operation
5593// fail if the object's ETag matches the given value. This is useful for
5594// getting updates only after the object has changed since the last
5595// request. Use googleapi.IsNotModified to check whether the response
5596// error from Do is the result of In-None-Match.
5597func (c *V2GetCapabilitiesCall) IfNoneMatch(entityTag string) *V2GetCapabilitiesCall {
5598	c.ifNoneMatch_ = entityTag
5599	return c
5600}
5601
5602// Context sets the context to be used in this call's Do method. Any
5603// pending HTTP request will be aborted if the provided context is
5604// canceled.
5605func (c *V2GetCapabilitiesCall) Context(ctx context.Context) *V2GetCapabilitiesCall {
5606	c.ctx_ = ctx
5607	return c
5608}
5609
5610// Header returns an http.Header that can be modified by the caller to
5611// add HTTP headers to the request.
5612func (c *V2GetCapabilitiesCall) Header() http.Header {
5613	if c.header_ == nil {
5614		c.header_ = make(http.Header)
5615	}
5616	return c.header_
5617}
5618
5619func (c *V2GetCapabilitiesCall) doRequest(alt string) (*http.Response, error) {
5620	reqHeaders := make(http.Header)
5621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210322")
5622	for k, v := range c.header_ {
5623		reqHeaders[k] = v
5624	}
5625	reqHeaders.Set("User-Agent", c.s.userAgent())
5626	if c.ifNoneMatch_ != "" {
5627		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5628	}
5629	var body io.Reader = nil
5630	c.urlParams_.Set("alt", alt)
5631	c.urlParams_.Set("prettyPrint", "false")
5632	urls := googleapi.ResolveRelative(c.s.BasePath, "v2/{+instanceName}/capabilities")
5633	urls += "?" + c.urlParams_.Encode()
5634	req, err := http.NewRequest("GET", urls, body)
5635	if err != nil {
5636		return nil, err
5637	}
5638	req.Header = reqHeaders
5639	googleapi.Expand(req.URL, map[string]string{
5640		"instanceName": c.instanceName,
5641	})
5642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5643}
5644
5645// Do executes the "remotebuildexecution.getCapabilities" call.
5646// Exactly one of *BuildBazelRemoteExecutionV2ServerCapabilities or
5647// error will be non-nil. Any non-2xx status code is an error. Response
5648// headers are in either
5649// *BuildBazelRemoteExecutionV2ServerCapabilities.ServerResponse.Header
5650// or (if a response was returned at all) in
5651// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
5652// whether the returned error was because http.StatusNotModified was
5653// returned.
5654func (c *V2GetCapabilitiesCall) Do(opts ...googleapi.CallOption) (*BuildBazelRemoteExecutionV2ServerCapabilities, error) {
5655	gensupport.SetOptions(c.urlParams_, opts...)
5656	res, err := c.doRequest("json")
5657	if res != nil && res.StatusCode == http.StatusNotModified {
5658		if res.Body != nil {
5659			res.Body.Close()
5660		}
5661		return nil, &googleapi.Error{
5662			Code:   res.StatusCode,
5663			Header: res.Header,
5664		}
5665	}
5666	if err != nil {
5667		return nil, err
5668	}
5669	defer googleapi.CloseBody(res)
5670	if err := googleapi.CheckResponse(res); err != nil {
5671		return nil, err
5672	}
5673	ret := &BuildBazelRemoteExecutionV2ServerCapabilities{
5674		ServerResponse: googleapi.ServerResponse{
5675			Header:         res.Header,
5676			HTTPStatusCode: res.StatusCode,
5677		},
5678	}
5679	target := &ret
5680	if err := gensupport.DecodeResponse(target, res); err != nil {
5681		return nil, err
5682	}
5683	return ret, nil
5684	// {
5685	//   "description": "GetCapabilities returns the server capabilities configuration of the remote endpoint. Only the capabilities of the services supported by the endpoint will be returned: * Execution + CAS + Action Cache endpoints should return both CacheCapabilities and ExecutionCapabilities. * Execution only endpoints should return ExecutionCapabilities. * CAS + Action Cache only endpoints should return CacheCapabilities.",
5686	//   "flatPath": "v2/{v2Id}/capabilities",
5687	//   "httpMethod": "GET",
5688	//   "id": "remotebuildexecution.getCapabilities",
5689	//   "parameterOrder": [
5690	//     "instanceName"
5691	//   ],
5692	//   "parameters": {
5693	//     "instanceName": {
5694	//       "description": "The instance of the execution system to operate against. A server may support multiple instances of the execution system (with their own workers, storage, caches, etc.). The server MAY require use of this field to select between them in an implementation-defined fashion, otherwise it can be omitted.",
5695	//       "location": "path",
5696	//       "pattern": "^.*$",
5697	//       "required": true,
5698	//       "type": "string"
5699	//     }
5700	//   },
5701	//   "path": "v2/{+instanceName}/capabilities",
5702	//   "response": {
5703	//     "$ref": "BuildBazelRemoteExecutionV2ServerCapabilities"
5704	//   },
5705	//   "scopes": [
5706	//     "https://www.googleapis.com/auth/cloud-platform"
5707	//   ]
5708	// }
5709
5710}
5711