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