...

Source file src/google.golang.org/api/remotebuildexecution/v1/remotebuildexecution-gen.go

Documentation: google.golang.org/api/remotebuildexecution/v1

     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/v1"
    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.
    38  package remotebuildexecution // import "google.golang.org/api/remotebuildexecution/v1"
    39  
    40  import (
    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.
    61  var _ = bytes.NewBuffer
    62  var _ = strconv.Itoa
    63  var _ = fmt.Sprintf
    64  var _ = json.NewDecoder
    65  var _ = io.Copy
    66  var _ = url.Parse
    67  var _ = gensupport.MarshalJSON
    68  var _ = googleapi.Version
    69  var _ = errors.New
    70  var _ = strings.Replace
    71  var _ = context.Canceled
    72  var _ = internaloption.WithDefaultEndpoint
    73  
    74  const apiId = "remotebuildexecution:v1"
    75  const apiName = "remotebuildexecution"
    76  const apiVersion = "v1"
    77  const basePath = "https://remotebuildexecution.googleapis.com/"
    78  const mtlsBasePath = "https://remotebuildexecution.mtls.googleapis.com/"
    79  
    80  // OAuth2 scopes used by this API.
    81  const (
    82  	// See, edit, configure, and delete your Google Cloud Platform data
    83  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
    84  )
    85  
    86  // NewService creates a new Service.
    87  func 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.
   114  func 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.Media = NewMediaService(s)
   120  	s.Operations = NewOperationsService(s)
   121  	s.Projects = NewProjectsService(s)
   122  	return s, nil
   123  }
   124  
   125  type Service struct {
   126  	client    *http.Client
   127  	BasePath  string // API endpoint base URL
   128  	UserAgent string // optional additional User-Agent fragment
   129  
   130  	Media *MediaService
   131  
   132  	Operations *OperationsService
   133  
   134  	Projects *ProjectsService
   135  }
   136  
   137  func (s *Service) userAgent() string {
   138  	if s.UserAgent == "" {
   139  		return googleapi.UserAgent
   140  	}
   141  	return googleapi.UserAgent + " " + s.UserAgent
   142  }
   143  
   144  func NewMediaService(s *Service) *MediaService {
   145  	rs := &MediaService{s: s}
   146  	return rs
   147  }
   148  
   149  type MediaService struct {
   150  	s *Service
   151  }
   152  
   153  func NewOperationsService(s *Service) *OperationsService {
   154  	rs := &OperationsService{s: s}
   155  	return rs
   156  }
   157  
   158  type OperationsService struct {
   159  	s *Service
   160  }
   161  
   162  func NewProjectsService(s *Service) *ProjectsService {
   163  	rs := &ProjectsService{s: s}
   164  	rs.Operations = NewProjectsOperationsService(s)
   165  	return rs
   166  }
   167  
   168  type ProjectsService struct {
   169  	s *Service
   170  
   171  	Operations *ProjectsOperationsService
   172  }
   173  
   174  func NewProjectsOperationsService(s *Service) *ProjectsOperationsService {
   175  	rs := &ProjectsOperationsService{s: s}
   176  	return rs
   177  }
   178  
   179  type 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.
   198  type 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  
   266  func (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.
   277  type 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  
   417  func (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.
   429  type 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  
   554  func (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.
   563  type 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  
   587  func (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.
   620  type 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  
   645  func (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 } ] } ```
   682  type 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  
   711  func (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.
   720  type 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  
   745  func (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.
   754  type 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  
   795  func (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.
   804  type 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  
   855  func (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.
   863  type 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  
   924  func (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.
   932  type 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  
   961  func (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.
   969  type 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  
   998  func (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.
  1007  type 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  
  1034  func (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.
  1044  type 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  
  1068  func (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.
  1077  type 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  
  1106  func (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.
  1115  type 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  
  1154  func (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`.
  1164  type 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  
  1198  func (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.
  1209  type 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  
  1234  func (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.
  1257  type 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  
  1281  func (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.
  1299  type 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  
  1353  func (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.
  1361  type 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  
  1396  func (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.
  1404  type 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  
  1428  func (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.
  1437  type 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  
  1464  func (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  // GoogleBytestreamMedia: Media resource.
  1471  type GoogleBytestreamMedia struct {
  1472  	// ResourceName: Name of the media resource.
  1473  	ResourceName string `json:"resourceName,omitempty"`
  1474  
  1475  	// ServerResponse contains the HTTP response code and headers from the
  1476  	// server.
  1477  	googleapi.ServerResponse `json:"-"`
  1478  
  1479  	// ForceSendFields is a list of field names (e.g. "ResourceName") to
  1480  	// unconditionally include in API requests. By default, fields with
  1481  	// empty values are omitted from API requests. However, any non-pointer,
  1482  	// non-interface field appearing in ForceSendFields will be sent to the
  1483  	// server regardless of whether the field is empty or not. This may be
  1484  	// used to include empty fields in Patch requests.
  1485  	ForceSendFields []string `json:"-"`
  1486  
  1487  	// NullFields is a list of field names (e.g. "ResourceName") to include
  1488  	// in API requests with the JSON null value. By default, fields with
  1489  	// empty values are omitted from API requests. However, any field with
  1490  	// an empty value appearing in NullFields will be sent to the server as
  1491  	// null. It is an error if a field in this list has a non-empty value.
  1492  	// This may be used to include null fields in Patch requests.
  1493  	NullFields []string `json:"-"`
  1494  }
  1495  
  1496  func (s *GoogleBytestreamMedia) MarshalJSON() ([]byte, error) {
  1497  	type NoMethod GoogleBytestreamMedia
  1498  	raw := NoMethod(*s)
  1499  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1500  }
  1501  
  1502  // GoogleDevtoolsRemotebuildbotCommandDurations: CommandDuration
  1503  // contains the various duration metrics tracked when a bot performs a
  1504  // command.
  1505  type GoogleDevtoolsRemotebuildbotCommandDurations struct {
  1506  	// CasRelease: The time spent to release the CAS blobs used by the task.
  1507  	CasRelease string `json:"casRelease,omitempty"`
  1508  
  1509  	// CmWaitForAssignment: The time spent waiting for Container Manager to
  1510  	// assign an asynchronous container for execution.
  1511  	CmWaitForAssignment string `json:"cmWaitForAssignment,omitempty"`
  1512  
  1513  	// DockerPrep: The time spent preparing the command to be run in a
  1514  	// Docker container (includes pulling the Docker image, if necessary).
  1515  	DockerPrep string `json:"dockerPrep,omitempty"`
  1516  
  1517  	// DockerPrepStartTime: The timestamp when docker preparation begins.
  1518  	DockerPrepStartTime string `json:"dockerPrepStartTime,omitempty"`
  1519  
  1520  	// Download: The time spent downloading the input files and constructing
  1521  	// the working directory.
  1522  	Download string `json:"download,omitempty"`
  1523  
  1524  	// DownloadStartTime: The timestamp when downloading the input files
  1525  	// begins.
  1526  	DownloadStartTime string `json:"downloadStartTime,omitempty"`
  1527  
  1528  	// ExecStartTime: The timestamp when execution begins.
  1529  	ExecStartTime string `json:"execStartTime,omitempty"`
  1530  
  1531  	// Execution: The time spent executing the command (i.e., doing useful
  1532  	// work).
  1533  	Execution string `json:"execution,omitempty"`
  1534  
  1535  	// IsoPrepDone: The timestamp when preparation is done and bot starts
  1536  	// downloading files.
  1537  	IsoPrepDone string `json:"isoPrepDone,omitempty"`
  1538  
  1539  	// Overall: The time spent completing the command, in total.
  1540  	Overall string `json:"overall,omitempty"`
  1541  
  1542  	// Stdout: The time spent uploading the stdout logs.
  1543  	Stdout string `json:"stdout,omitempty"`
  1544  
  1545  	// Upload: The time spent uploading the output files.
  1546  	Upload string `json:"upload,omitempty"`
  1547  
  1548  	// UploadStartTime: The timestamp when uploading the output files
  1549  	// begins.
  1550  	UploadStartTime string `json:"uploadStartTime,omitempty"`
  1551  
  1552  	// ForceSendFields is a list of field names (e.g. "CasRelease") to
  1553  	// unconditionally include in API requests. By default, fields with
  1554  	// empty values are omitted from API requests. However, any non-pointer,
  1555  	// non-interface field appearing in ForceSendFields will be sent to the
  1556  	// server regardless of whether the field is empty or not. This may be
  1557  	// used to include empty fields in Patch requests.
  1558  	ForceSendFields []string `json:"-"`
  1559  
  1560  	// NullFields is a list of field names (e.g. "CasRelease") to include in
  1561  	// API requests with the JSON null value. By default, fields with empty
  1562  	// values are omitted from API requests. However, any field with an
  1563  	// empty value appearing in NullFields will be sent to the server as
  1564  	// null. It is an error if a field in this list has a non-empty value.
  1565  	// This may be used to include null fields in Patch requests.
  1566  	NullFields []string `json:"-"`
  1567  }
  1568  
  1569  func (s *GoogleDevtoolsRemotebuildbotCommandDurations) MarshalJSON() ([]byte, error) {
  1570  	type NoMethod GoogleDevtoolsRemotebuildbotCommandDurations
  1571  	raw := NoMethod(*s)
  1572  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1573  }
  1574  
  1575  // GoogleDevtoolsRemotebuildbotCommandEvents: CommandEvents contains
  1576  // counters for the number of warnings and errors that occurred during
  1577  // the execution of a command.
  1578  type GoogleDevtoolsRemotebuildbotCommandEvents struct {
  1579  	// CmUsage: Indicates if and how Container Manager is being used for
  1580  	// task execution.
  1581  	//
  1582  	// Possible values:
  1583  	//   "CONFIG_NONE" - Container Manager is disabled or not running for
  1584  	// this execution.
  1585  	//   "CONFIG_MATCH" - Container Manager is enabled and there was a
  1586  	// matching container available for use during execution.
  1587  	//   "CONFIG_MISMATCH" - Container Manager is enabled, but there was no
  1588  	// matching container available for execution.
  1589  	CmUsage string `json:"cmUsage,omitempty"`
  1590  
  1591  	// DockerCacheHit: Indicates whether we are using a cached Docker image
  1592  	// (true) or had to pull the Docker image (false) for this command.
  1593  	DockerCacheHit bool `json:"dockerCacheHit,omitempty"`
  1594  
  1595  	// DockerImageName: Docker Image name.
  1596  	DockerImageName string `json:"dockerImageName,omitempty"`
  1597  
  1598  	// InputCacheMiss: The input cache miss ratio.
  1599  	InputCacheMiss float64 `json:"inputCacheMiss,omitempty"`
  1600  
  1601  	// NumErrors: The number of errors reported.
  1602  	NumErrors uint64 `json:"numErrors,omitempty,string"`
  1603  
  1604  	// NumWarnings: The number of warnings reported.
  1605  	NumWarnings uint64 `json:"numWarnings,omitempty,string"`
  1606  
  1607  	// OutputLocation: Indicates whether output files and/or output
  1608  	// directories were found relative to the execution root or to the user
  1609  	// provided work directory or both or none.
  1610  	//
  1611  	// Possible values:
  1612  	//   "LOCATION_UNDEFINED" - Location is set to LOCATION_UNDEFINED for
  1613  	// tasks where the working directorty is not specified or is identical
  1614  	// to the execution root directory.
  1615  	//   "LOCATION_NONE" - No output files or directories were found neither
  1616  	// relative to the execution root directory nor relative to the working
  1617  	// directory.
  1618  	//   "LOCATION_EXEC_ROOT_RELATIVE" - Output files or directories were
  1619  	// found relative to the execution root directory but not relative to
  1620  	// the working directory.
  1621  	//   "LOCATION_WORKING_DIR_RELATIVE" - Output files or directories were
  1622  	// found relative to the working directory but not relative to the
  1623  	// execution root directory.
  1624  	//   "LOCATION_EXEC_ROOT_AND_WORKING_DIR_RELATIVE" - Output files or
  1625  	// directories were found both relative to the execution root directory
  1626  	// and relative to the working directory.
  1627  	//   "LOCATION_EXEC_ROOT_RELATIVE_OUTPUT_OUTSIDE_WORKING_DIR" - Output
  1628  	// files or directories were found relative to the execution root
  1629  	// directory but not relative to the working directory. In addition at
  1630  	// least one output file or directory was found outside of the working
  1631  	// directory such that a working-directory-relative-path would have
  1632  	// needed to start with a `..`.
  1633  	//
  1634  	// "LOCATION_EXEC_ROOT_AND_WORKING_DIR_RELATIVE_OUTPUT_OUTSIDE_WORKING_DI
  1635  	// R" - Output files or directories were found both relative to the
  1636  	// execution root directory and relative to the working directory. In
  1637  	// addition at least one exec-root-relative output file or directory was
  1638  	// found outside of the working directory such that a
  1639  	// working-directory-relative-path would have needed to start with a
  1640  	// `..`.
  1641  	OutputLocation string `json:"outputLocation,omitempty"`
  1642  
  1643  	// UsedAsyncContainer: Indicates whether an asynchronous container was
  1644  	// used for execution.
  1645  	UsedAsyncContainer bool `json:"usedAsyncContainer,omitempty"`
  1646  
  1647  	// ForceSendFields is a list of field names (e.g. "CmUsage") to
  1648  	// unconditionally include in API requests. By default, fields with
  1649  	// empty values are omitted from API requests. However, any non-pointer,
  1650  	// non-interface field appearing in ForceSendFields will be sent to the
  1651  	// server regardless of whether the field is empty or not. This may be
  1652  	// used to include empty fields in Patch requests.
  1653  	ForceSendFields []string `json:"-"`
  1654  
  1655  	// NullFields is a list of field names (e.g. "CmUsage") to include in
  1656  	// API requests with the JSON null value. By default, fields with empty
  1657  	// values are omitted from API requests. However, any field with an
  1658  	// empty value appearing in NullFields will be sent to the server as
  1659  	// null. It is an error if a field in this list has a non-empty value.
  1660  	// This may be used to include null fields in Patch requests.
  1661  	NullFields []string `json:"-"`
  1662  }
  1663  
  1664  func (s *GoogleDevtoolsRemotebuildbotCommandEvents) MarshalJSON() ([]byte, error) {
  1665  	type NoMethod GoogleDevtoolsRemotebuildbotCommandEvents
  1666  	raw := NoMethod(*s)
  1667  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1668  }
  1669  
  1670  func (s *GoogleDevtoolsRemotebuildbotCommandEvents) UnmarshalJSON(data []byte) error {
  1671  	type NoMethod GoogleDevtoolsRemotebuildbotCommandEvents
  1672  	var s1 struct {
  1673  		InputCacheMiss gensupport.JSONFloat64 `json:"inputCacheMiss"`
  1674  		*NoMethod
  1675  	}
  1676  	s1.NoMethod = (*NoMethod)(s)
  1677  	if err := json.Unmarshal(data, &s1); err != nil {
  1678  		return err
  1679  	}
  1680  	s.InputCacheMiss = float64(s1.InputCacheMiss)
  1681  	return nil
  1682  }
  1683  
  1684  // GoogleDevtoolsRemotebuildbotCommandStatus: The internal status of the
  1685  // command result.
  1686  type GoogleDevtoolsRemotebuildbotCommandStatus struct {
  1687  	// Code: The status code.
  1688  	//
  1689  	// Possible values:
  1690  	//   "OK" - The command succeeded.
  1691  	//   "INVALID_ARGUMENT" - The command input was invalid.
  1692  	//   "DEADLINE_EXCEEDED" - The command had passed its expiry time while
  1693  	// it was still running.
  1694  	//   "NOT_FOUND" - The resources requested by the command were not
  1695  	// found.
  1696  	//   "PERMISSION_DENIED" - The command failed due to permission errors.
  1697  	//   "INTERNAL" - The command failed because of some invariants expected
  1698  	// by the underlying system have been broken. This usually indicates a
  1699  	// bug wit the system.
  1700  	//   "ABORTED" - The command was aborted.
  1701  	//   "FAILED_PRECONDITION" - The command failed because the system is
  1702  	// not in a state required for the command, e.g. the command inputs
  1703  	// cannot be found on the server.
  1704  	//   "CLEANUP_ERROR" - The bot failed to do the cleanup, e.g. unable to
  1705  	// delete the command working directory or the command process.
  1706  	//   "DOWNLOAD_INPUTS_ERROR" - The bot failed to download the inputs.
  1707  	//   "UNKNOWN" - Unknown error.
  1708  	//   "UPLOAD_OUTPUTS_ERROR" - The bot failed to upload the outputs.
  1709  	//   "UPLOAD_OUTPUTS_BYTES_LIMIT_EXCEEDED" - The bot tried to upload
  1710  	// files having a total size that is too large.
  1711  	//   "DOCKER_LOGIN_ERROR" - The bot failed to login to docker.
  1712  	//   "DOCKER_IMAGE_PULL_ERROR" - The bot failed to pull docker image.
  1713  	//   "DOCKER_IMAGE_EXIST_ERROR" - The bot failed to check docker images.
  1714  	//   "DUPLICATE_INPUTS" - The inputs contain duplicate files.
  1715  	//   "DOCKER_IMAGE_PERMISSION_DENIED" - The bot doesn't have the
  1716  	// permissions to pull docker images.
  1717  	//   "DOCKER_IMAGE_NOT_FOUND" - The docker image cannot be found.
  1718  	//   "WORKING_DIR_NOT_FOUND" - Working directory is not found.
  1719  	//   "WORKING_DIR_NOT_IN_BASE_DIR" - Working directory is not under the
  1720  	// base directory
  1721  	//   "DOCKER_UNAVAILABLE" - There are issues with docker
  1722  	// service/runtime.
  1723  	//   "NO_CUDA_CAPABLE_DEVICE" - The command failed with "no cuda-capable
  1724  	// device is detected" error.
  1725  	//   "REMOTE_CAS_DOWNLOAD_ERROR" - The bot encountered errors from
  1726  	// remote CAS when downloading blobs.
  1727  	//   "REMOTE_CAS_UPLOAD_ERROR" - The bot encountered errors from remote
  1728  	// CAS when uploading blobs.
  1729  	//   "LOCAL_CASPROXY_NOT_RUNNING" - The local casproxy is not running.
  1730  	//   "DOCKER_CREATE_CONTAINER_ERROR" - The bot couldn't start the
  1731  	// container.
  1732  	//   "DOCKER_INVALID_ULIMIT" - The docker ulimit is not valid.
  1733  	//   "DOCKER_UNKNOWN_RUNTIME" - The docker runtime is unknown.
  1734  	//   "DOCKER_UNKNOWN_CAPABILITY" - The docker capability is unknown.
  1735  	//   "DOCKER_UNKNOWN_ERROR" - The command failed with unknown docker
  1736  	// errors.
  1737  	//   "DOCKER_CREATE_COMPUTE_SYSTEM_ERROR" - Docker failed to run
  1738  	// containers with CreateComputeSystem error.
  1739  	//   "DOCKER_PREPARELAYER_ERROR" - Docker failed to run containers with
  1740  	// hcsshim::PrepareLayer error.
  1741  	//   "DOCKER_INCOMPATIBLE_OS_ERROR" - Docker incompatible operating
  1742  	// system error.
  1743  	//   "DOCKER_CREATE_RUNTIME_FILE_NOT_FOUND" - Docker failed to create
  1744  	// OCI runtime because of file not found.
  1745  	//   "DOCKER_CREATE_RUNTIME_PERMISSION_DENIED" - Docker failed to create
  1746  	// OCI runtime because of permission denied.
  1747  	//   "DOCKER_CREATE_PROCESS_FILE_NOT_FOUND" - Docker failed to create
  1748  	// process because of file not found.
  1749  	//   "DOCKER_CREATE_COMPUTE_SYSTEM_INCORRECT_PARAMETER_ERROR" - Docker
  1750  	// failed to run containers with CreateComputeSystem error that involves
  1751  	// an incorrect parameter (more specific version of
  1752  	// DOCKER_CREATE_COMPUTE_SYSTEM_ERROR that is user-caused).
  1753  	//   "DOCKER_TOO_MANY_SYMBOLIC_LINK_LEVELS" - Docker failed to create an
  1754  	// overlay mount because of too many levels of symbolic links.
  1755  	//   "LOCAL_CONTAINER_MANAGER_NOT_RUNNING" - The local Container Manager
  1756  	// is not running.
  1757  	//   "DOCKER_IMAGE_VPCSC_PERMISSION_DENIED" - Docker failed because a
  1758  	// request was denied by the organization's policy.
  1759  	//   "WORKING_DIR_NOT_RELATIVE" - Working directory is not relative
  1760  	//   "DOCKER_MISSING_CONTAINER" - Docker cannot find the container
  1761  	// specified in the command. This error is likely to only occur if an
  1762  	// asynchronous container is not running when the command is run.
  1763  	Code string `json:"code,omitempty"`
  1764  
  1765  	// Message: The error message.
  1766  	Message string `json:"message,omitempty"`
  1767  
  1768  	// ForceSendFields is a list of field names (e.g. "Code") to
  1769  	// unconditionally include in API requests. By default, fields with
  1770  	// empty values are omitted from API requests. However, any non-pointer,
  1771  	// non-interface field appearing in ForceSendFields will be sent to the
  1772  	// server regardless of whether the field is empty or not. This may be
  1773  	// used to include empty fields in Patch requests.
  1774  	ForceSendFields []string `json:"-"`
  1775  
  1776  	// NullFields is a list of field names (e.g. "Code") to include in API
  1777  	// requests with the JSON null value. By default, fields with empty
  1778  	// values are omitted from API requests. However, any field with an
  1779  	// empty value appearing in NullFields will be sent to the server as
  1780  	// null. It is an error if a field in this list has a non-empty value.
  1781  	// This may be used to include null fields in Patch requests.
  1782  	NullFields []string `json:"-"`
  1783  }
  1784  
  1785  func (s *GoogleDevtoolsRemotebuildbotCommandStatus) MarshalJSON() ([]byte, error) {
  1786  	type NoMethod GoogleDevtoolsRemotebuildbotCommandStatus
  1787  	raw := NoMethod(*s)
  1788  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1789  }
  1790  
  1791  // GoogleDevtoolsRemotebuildbotResourceUsage: ResourceUsage is the
  1792  // system resource usage of the host machine.
  1793  type GoogleDevtoolsRemotebuildbotResourceUsage struct {
  1794  	CpuUsedPercent float64 `json:"cpuUsedPercent,omitempty"`
  1795  
  1796  	DiskUsage *GoogleDevtoolsRemotebuildbotResourceUsageStat `json:"diskUsage,omitempty"`
  1797  
  1798  	MemoryUsage *GoogleDevtoolsRemotebuildbotResourceUsageStat `json:"memoryUsage,omitempty"`
  1799  
  1800  	TotalDiskIoStats *GoogleDevtoolsRemotebuildbotResourceUsageIOStats `json:"totalDiskIoStats,omitempty"`
  1801  
  1802  	// ForceSendFields is a list of field names (e.g. "CpuUsedPercent") to
  1803  	// unconditionally include in API requests. By default, fields with
  1804  	// empty values are omitted from API requests. However, any non-pointer,
  1805  	// non-interface field appearing in ForceSendFields will be sent to the
  1806  	// server regardless of whether the field is empty or not. This may be
  1807  	// used to include empty fields in Patch requests.
  1808  	ForceSendFields []string `json:"-"`
  1809  
  1810  	// NullFields is a list of field names (e.g. "CpuUsedPercent") to
  1811  	// include in API requests with the JSON null value. By default, fields
  1812  	// with empty values are omitted from API requests. However, any field
  1813  	// with an empty value appearing in NullFields will be sent to the
  1814  	// server as null. It is an error if a field in this list has a
  1815  	// non-empty value. This may be used to include null fields in Patch
  1816  	// requests.
  1817  	NullFields []string `json:"-"`
  1818  }
  1819  
  1820  func (s *GoogleDevtoolsRemotebuildbotResourceUsage) MarshalJSON() ([]byte, error) {
  1821  	type NoMethod GoogleDevtoolsRemotebuildbotResourceUsage
  1822  	raw := NoMethod(*s)
  1823  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1824  }
  1825  
  1826  func (s *GoogleDevtoolsRemotebuildbotResourceUsage) UnmarshalJSON(data []byte) error {
  1827  	type NoMethod GoogleDevtoolsRemotebuildbotResourceUsage
  1828  	var s1 struct {
  1829  		CpuUsedPercent gensupport.JSONFloat64 `json:"cpuUsedPercent"`
  1830  		*NoMethod
  1831  	}
  1832  	s1.NoMethod = (*NoMethod)(s)
  1833  	if err := json.Unmarshal(data, &s1); err != nil {
  1834  		return err
  1835  	}
  1836  	s.CpuUsedPercent = float64(s1.CpuUsedPercent)
  1837  	return nil
  1838  }
  1839  
  1840  type GoogleDevtoolsRemotebuildbotResourceUsageIOStats struct {
  1841  	ReadBytesCount uint64 `json:"readBytesCount,omitempty,string"`
  1842  
  1843  	ReadCount uint64 `json:"readCount,omitempty,string"`
  1844  
  1845  	ReadTimeMs uint64 `json:"readTimeMs,omitempty,string"`
  1846  
  1847  	WriteBytesCount uint64 `json:"writeBytesCount,omitempty,string"`
  1848  
  1849  	WriteCount uint64 `json:"writeCount,omitempty,string"`
  1850  
  1851  	WriteTimeMs uint64 `json:"writeTimeMs,omitempty,string"`
  1852  
  1853  	// ForceSendFields is a list of field names (e.g. "ReadBytesCount") to
  1854  	// unconditionally include in API requests. By default, fields with
  1855  	// empty values are omitted from API requests. However, any non-pointer,
  1856  	// non-interface field appearing in ForceSendFields will be sent to the
  1857  	// server regardless of whether the field is empty or not. This may be
  1858  	// used to include empty fields in Patch requests.
  1859  	ForceSendFields []string `json:"-"`
  1860  
  1861  	// NullFields is a list of field names (e.g. "ReadBytesCount") to
  1862  	// include in API requests with the JSON null value. By default, fields
  1863  	// with empty values are omitted from API requests. However, any field
  1864  	// with an empty value appearing in NullFields will be sent to the
  1865  	// server as null. It is an error if a field in this list has a
  1866  	// non-empty value. This may be used to include null fields in Patch
  1867  	// requests.
  1868  	NullFields []string `json:"-"`
  1869  }
  1870  
  1871  func (s *GoogleDevtoolsRemotebuildbotResourceUsageIOStats) MarshalJSON() ([]byte, error) {
  1872  	type NoMethod GoogleDevtoolsRemotebuildbotResourceUsageIOStats
  1873  	raw := NoMethod(*s)
  1874  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1875  }
  1876  
  1877  type GoogleDevtoolsRemotebuildbotResourceUsageStat struct {
  1878  	Total uint64 `json:"total,omitempty,string"`
  1879  
  1880  	Used uint64 `json:"used,omitempty,string"`
  1881  
  1882  	// ForceSendFields is a list of field names (e.g. "Total") to
  1883  	// unconditionally include in API requests. By default, fields with
  1884  	// empty values are omitted from API requests. However, any non-pointer,
  1885  	// non-interface field appearing in ForceSendFields will be sent to the
  1886  	// server regardless of whether the field is empty or not. This may be
  1887  	// used to include empty fields in Patch requests.
  1888  	ForceSendFields []string `json:"-"`
  1889  
  1890  	// NullFields is a list of field names (e.g. "Total") to include in API
  1891  	// requests with the JSON null value. By default, fields with empty
  1892  	// values are omitted from API requests. However, any field with an
  1893  	// empty value appearing in NullFields will be sent to the server as
  1894  	// null. It is an error if a field in this list has a non-empty value.
  1895  	// This may be used to include null fields in Patch requests.
  1896  	NullFields []string `json:"-"`
  1897  }
  1898  
  1899  func (s *GoogleDevtoolsRemotebuildbotResourceUsageStat) MarshalJSON() ([]byte, error) {
  1900  	type NoMethod GoogleDevtoolsRemotebuildbotResourceUsageStat
  1901  	raw := NoMethod(*s)
  1902  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1903  }
  1904  
  1905  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig:
  1906  // AcceleratorConfig defines the accelerator cards to attach to the VM.
  1907  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig struct {
  1908  	// AcceleratorCount: The number of guest accelerator cards exposed to
  1909  	// each VM.
  1910  	AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"`
  1911  
  1912  	// AcceleratorType: The type of accelerator to attach to each VM, e.g.
  1913  	// "nvidia-tesla-k80" for nVidia Tesla K80.
  1914  	AcceleratorType string `json:"acceleratorType,omitempty"`
  1915  
  1916  	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
  1917  	// unconditionally include in API requests. By default, fields with
  1918  	// empty values are omitted from API requests. However, any non-pointer,
  1919  	// non-interface field appearing in ForceSendFields will be sent to the
  1920  	// server regardless of whether the field is empty or not. This may be
  1921  	// used to include empty fields in Patch requests.
  1922  	ForceSendFields []string `json:"-"`
  1923  
  1924  	// NullFields is a list of field names (e.g. "AcceleratorCount") to
  1925  	// include in API requests with the JSON null value. By default, fields
  1926  	// with empty values are omitted from API requests. However, any field
  1927  	// with an empty value appearing in NullFields will be sent to the
  1928  	// server as null. It is an error if a field in this list has a
  1929  	// non-empty value. This may be used to include null fields in Patch
  1930  	// requests.
  1931  	NullFields []string `json:"-"`
  1932  }
  1933  
  1934  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig) MarshalJSON() ([]byte, error) {
  1935  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig
  1936  	raw := NoMethod(*s)
  1937  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1938  }
  1939  
  1940  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale: Autoscale
  1941  // defines the autoscaling policy of a worker pool.
  1942  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale struct {
  1943  	// MaxSize: The maximal number of workers. Must be equal to or greater
  1944  	// than min_size.
  1945  	MaxSize int64 `json:"maxSize,omitempty,string"`
  1946  
  1947  	// MinSize: The minimal number of workers. Must be greater than 0.
  1948  	MinSize int64 `json:"minSize,omitempty,string"`
  1949  
  1950  	// ForceSendFields is a list of field names (e.g. "MaxSize") to
  1951  	// unconditionally include in API requests. By default, fields with
  1952  	// empty values are omitted from API requests. However, any non-pointer,
  1953  	// non-interface field appearing in ForceSendFields will be sent to the
  1954  	// server regardless of whether the field is empty or not. This may be
  1955  	// used to include empty fields in Patch requests.
  1956  	ForceSendFields []string `json:"-"`
  1957  
  1958  	// NullFields is a list of field names (e.g. "MaxSize") to include in
  1959  	// API requests with the JSON null value. By default, fields with empty
  1960  	// values are omitted from API requests. However, any field with an
  1961  	// empty value appearing in NullFields will be sent to the server as
  1962  	// null. It is an error if a field in this list has a non-empty value.
  1963  	// This may be used to include null fields in Patch requests.
  1964  	NullFields []string `json:"-"`
  1965  }
  1966  
  1967  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale) MarshalJSON() ([]byte, error) {
  1968  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale
  1969  	raw := NoMethod(*s)
  1970  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  1971  }
  1972  
  1973  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest:
  1974  // The request used for `CreateInstance`.
  1975  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest struct {
  1976  	// Instance: Specifies the instance to create. The name in the instance,
  1977  	// if specified in the instance, is ignored.
  1978  	Instance *GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance `json:"instance,omitempty"`
  1979  
  1980  	// InstanceId: ID of the created instance. A valid `instance_id` must:
  1981  	// be 6-50 characters long, contain only lowercase letters, digits,
  1982  	// hyphens and underscores, start with a lowercase letter, and end with
  1983  	// a lowercase letter or a digit.
  1984  	InstanceId string `json:"instanceId,omitempty"`
  1985  
  1986  	// Parent: Resource name of the project containing the instance. Format:
  1987  	// `projects/[PROJECT_ID]`.
  1988  	Parent string `json:"parent,omitempty"`
  1989  
  1990  	// ForceSendFields is a list of field names (e.g. "Instance") to
  1991  	// unconditionally include in API requests. By default, fields with
  1992  	// empty values are omitted from API requests. However, any non-pointer,
  1993  	// non-interface field appearing in ForceSendFields will be sent to the
  1994  	// server regardless of whether the field is empty or not. This may be
  1995  	// used to include empty fields in Patch requests.
  1996  	ForceSendFields []string `json:"-"`
  1997  
  1998  	// NullFields is a list of field names (e.g. "Instance") to include in
  1999  	// API requests with the JSON null value. By default, fields with empty
  2000  	// values are omitted from API requests. However, any field with an
  2001  	// empty value appearing in NullFields will be sent to the server as
  2002  	// null. It is an error if a field in this list has a non-empty value.
  2003  	// This may be used to include null fields in Patch requests.
  2004  	NullFields []string `json:"-"`
  2005  }
  2006  
  2007  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest) MarshalJSON() ([]byte, error) {
  2008  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest
  2009  	raw := NoMethod(*s)
  2010  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2011  }
  2012  
  2013  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest:
  2014  //
  2015  //	The request used for `CreateWorkerPool`.
  2016  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest struct {
  2017  	// Parent: Resource name of the instance in which to create the new
  2018  	// worker pool. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
  2019  	Parent string `json:"parent,omitempty"`
  2020  
  2021  	// PoolId: ID of the created worker pool. A valid pool ID must: be 6-50
  2022  	// characters long, contain only lowercase letters, digits, hyphens and
  2023  	// underscores, start with a lowercase letter, and end with a lowercase
  2024  	// letter or a digit.
  2025  	PoolId string `json:"poolId,omitempty"`
  2026  
  2027  	// WorkerPool: Specifies the worker pool to create. The name in the
  2028  	// worker pool, if specified, is ignored.
  2029  	WorkerPool *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool `json:"workerPool,omitempty"`
  2030  
  2031  	// ForceSendFields is a list of field names (e.g. "Parent") to
  2032  	// unconditionally include in API requests. By default, fields with
  2033  	// empty values are omitted from API requests. However, any non-pointer,
  2034  	// non-interface field appearing in ForceSendFields will be sent to the
  2035  	// server regardless of whether the field is empty or not. This may be
  2036  	// used to include empty fields in Patch requests.
  2037  	ForceSendFields []string `json:"-"`
  2038  
  2039  	// NullFields is a list of field names (e.g. "Parent") to include in API
  2040  	// requests with the JSON null value. By default, fields with empty
  2041  	// values are omitted from API requests. However, any field with an
  2042  	// empty value appearing in NullFields will be sent to the server as
  2043  	// null. It is an error if a field in this list has a non-empty value.
  2044  	// This may be used to include null fields in Patch requests.
  2045  	NullFields []string `json:"-"`
  2046  }
  2047  
  2048  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest) MarshalJSON() ([]byte, error) {
  2049  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest
  2050  	raw := NoMethod(*s)
  2051  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2052  }
  2053  
  2054  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest:
  2055  // The request used for `DeleteInstance`.
  2056  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest struct {
  2057  	// Name: Name of the instance to delete. Format:
  2058  	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
  2059  	Name string `json:"name,omitempty"`
  2060  
  2061  	// ForceSendFields is a list of field names (e.g. "Name") to
  2062  	// unconditionally include in API requests. By default, fields with
  2063  	// empty values are omitted from API requests. However, any non-pointer,
  2064  	// non-interface field appearing in ForceSendFields will be sent to the
  2065  	// server regardless of whether the field is empty or not. This may be
  2066  	// used to include empty fields in Patch requests.
  2067  	ForceSendFields []string `json:"-"`
  2068  
  2069  	// NullFields is a list of field names (e.g. "Name") to include in API
  2070  	// requests with the JSON null value. By default, fields with empty
  2071  	// values are omitted from API requests. However, any field with an
  2072  	// empty value appearing in NullFields will be sent to the server as
  2073  	// null. It is an error if a field in this list has a non-empty value.
  2074  	// This may be used to include null fields in Patch requests.
  2075  	NullFields []string `json:"-"`
  2076  }
  2077  
  2078  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest) MarshalJSON() ([]byte, error) {
  2079  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest
  2080  	raw := NoMethod(*s)
  2081  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2082  }
  2083  
  2084  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest:
  2085  //
  2086  //	The request used for DeleteWorkerPool.
  2087  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest struct {
  2088  	// Name: Name of the worker pool to delete. Format:
  2089  	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.
  2090  	Name string `json:"name,omitempty"`
  2091  
  2092  	// ForceSendFields is a list of field names (e.g. "Name") to
  2093  	// unconditionally include in API requests. By default, fields with
  2094  	// empty values are omitted from API requests. However, any non-pointer,
  2095  	// non-interface field appearing in ForceSendFields will be sent to the
  2096  	// server regardless of whether the field is empty or not. This may be
  2097  	// used to include empty fields in Patch requests.
  2098  	ForceSendFields []string `json:"-"`
  2099  
  2100  	// NullFields is a list of field names (e.g. "Name") to include in API
  2101  	// requests with the JSON null value. By default, fields with empty
  2102  	// values are omitted from API requests. However, any field with an
  2103  	// empty value appearing in NullFields will be sent to the server as
  2104  	// null. It is an error if a field in this list has a non-empty value.
  2105  	// This may be used to include null fields in Patch requests.
  2106  	NullFields []string `json:"-"`
  2107  }
  2108  
  2109  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest) MarshalJSON() ([]byte, error) {
  2110  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest
  2111  	raw := NoMethod(*s)
  2112  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2113  }
  2114  
  2115  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy:
  2116  // FeaturePolicy defines features allowed to be used on RBE instances,
  2117  // as well as instance-wide behavior changes that take effect without
  2118  // opt-in or opt-out at usage time.
  2119  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy struct {
  2120  	// ContainerImageSources: Which container image sources are allowed.
  2121  	// Currently only RBE-supported registry (gcr.io) is allowed. One can
  2122  	// allow all repositories under a project or one specific repository
  2123  	// only. E.g. container_image_sources { policy: RESTRICTED
  2124  	// allowed_values: [ "gcr.io/project-foo",
  2125  	// "gcr.io/project-bar/repo-baz", ] } will allow any repositories under
  2126  	// "gcr.io/project-foo" plus the repository
  2127  	// "gcr.io/project-bar/repo-baz". Default (UNSPECIFIED) is equivalent to
  2128  	// any source is allowed.
  2129  	ContainerImageSources *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"containerImageSources,omitempty"`
  2130  
  2131  	// DockerAddCapabilities: Whether dockerAddCapabilities can be used or
  2132  	// what capabilities are allowed.
  2133  	DockerAddCapabilities *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerAddCapabilities,omitempty"`
  2134  
  2135  	// DockerChrootPath: Whether dockerChrootPath can be used.
  2136  	DockerChrootPath *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerChrootPath,omitempty"`
  2137  
  2138  	// DockerNetwork: Whether dockerNetwork can be used or what network
  2139  	// modes are allowed. E.g. one may allow `off` value only via
  2140  	// `allowed_values`.
  2141  	DockerNetwork *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerNetwork,omitempty"`
  2142  
  2143  	// DockerPrivileged: Whether dockerPrivileged can be used.
  2144  	DockerPrivileged *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerPrivileged,omitempty"`
  2145  
  2146  	// DockerRunAsRoot: Whether dockerRunAsRoot can be used.
  2147  	DockerRunAsRoot *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerRunAsRoot,omitempty"`
  2148  
  2149  	// DockerRuntime: Whether dockerRuntime is allowed to be set or what
  2150  	// runtimes are allowed. Note linux_isolation takes precedence, and if
  2151  	// set, docker_runtime values may be rejected if they are incompatible
  2152  	// with the selected isolation.
  2153  	DockerRuntime *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerRuntime,omitempty"`
  2154  
  2155  	// DockerSiblingContainers: Whether dockerSiblingContainers can be used.
  2156  	DockerSiblingContainers *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature `json:"dockerSiblingContainers,omitempty"`
  2157  
  2158  	// LinuxIsolation: linux_isolation allows overriding the docker runtime
  2159  	// used for containers started on Linux.
  2160  	//
  2161  	// Possible values:
  2162  	//   "LINUX_ISOLATION_UNSPECIFIED" - Default value. Will be using Linux
  2163  	// default runtime.
  2164  	//   "GVISOR" - Use gVisor runsc runtime.
  2165  	//   "OFF" - Use stardard Linux runtime. This has the same behaviour as
  2166  	// unspecified, but it can be used to revert back from gVisor.
  2167  	LinuxIsolation string `json:"linuxIsolation,omitempty"`
  2168  
  2169  	// ForceSendFields is a list of field names (e.g.
  2170  	// "ContainerImageSources") to unconditionally include in API requests.
  2171  	// By default, fields with empty values are omitted from API requests.
  2172  	// However, any non-pointer, non-interface field appearing in
  2173  	// ForceSendFields will be sent to the server regardless of whether the
  2174  	// field is empty or not. This may be used to include empty fields in
  2175  	// Patch requests.
  2176  	ForceSendFields []string `json:"-"`
  2177  
  2178  	// NullFields is a list of field names (e.g. "ContainerImageSources") to
  2179  	// include in API requests with the JSON null value. By default, fields
  2180  	// with empty values are omitted from API requests. However, any field
  2181  	// with an empty value appearing in NullFields will be sent to the
  2182  	// server as null. It is an error if a field in this list has a
  2183  	// non-empty value. This may be used to include null fields in Patch
  2184  	// requests.
  2185  	NullFields []string `json:"-"`
  2186  }
  2187  
  2188  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy) MarshalJSON() ([]byte, error) {
  2189  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy
  2190  	raw := NoMethod(*s)
  2191  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2192  }
  2193  
  2194  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature:
  2195  // Defines whether a feature can be used or what values are accepted.
  2196  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature struct {
  2197  	// AllowedValues: A list of acceptable values. Only effective when the
  2198  	// policy is `RESTRICTED`.
  2199  	AllowedValues []string `json:"allowedValues,omitempty"`
  2200  
  2201  	// Policy: The policy of the feature.
  2202  	//
  2203  	// Possible values:
  2204  	//   "POLICY_UNSPECIFIED" - Default value, if not explicitly set.
  2205  	// Equivalent to FORBIDDEN, unless otherwise documented on a specific
  2206  	// Feature.
  2207  	//   "ALLOWED" - Feature is explicitly allowed.
  2208  	//   "FORBIDDEN" - Feature is forbidden. Requests attempting to leverage
  2209  	// it will get an FailedPrecondition error, with a message like:
  2210  	// "Feature forbidden by FeaturePolicy: Feature on instance "
  2211  	//   "RESTRICTED" - Only the values specified in the `allowed_values`
  2212  	// are allowed.
  2213  	Policy string `json:"policy,omitempty"`
  2214  
  2215  	// ForceSendFields is a list of field names (e.g. "AllowedValues") to
  2216  	// unconditionally include in API requests. By default, fields with
  2217  	// empty values are omitted from API requests. However, any non-pointer,
  2218  	// non-interface field appearing in ForceSendFields will be sent to the
  2219  	// server regardless of whether the field is empty or not. This may be
  2220  	// used to include empty fields in Patch requests.
  2221  	ForceSendFields []string `json:"-"`
  2222  
  2223  	// NullFields is a list of field names (e.g. "AllowedValues") to include
  2224  	// in API requests with the JSON null value. By default, fields with
  2225  	// empty values are omitted from API requests. However, any field with
  2226  	// an empty value appearing in NullFields will be sent to the server as
  2227  	// null. It is an error if a field in this list has a non-empty value.
  2228  	// This may be used to include null fields in Patch requests.
  2229  	NullFields []string `json:"-"`
  2230  }
  2231  
  2232  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature) MarshalJSON() ([]byte, error) {
  2233  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature
  2234  	raw := NoMethod(*s)
  2235  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2236  }
  2237  
  2238  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest: The
  2239  // request used for `GetInstance`.
  2240  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest struct {
  2241  	// Name: Name of the instance to retrieve. Format:
  2242  	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
  2243  	Name string `json:"name,omitempty"`
  2244  
  2245  	// ForceSendFields is a list of field names (e.g. "Name") to
  2246  	// unconditionally include in API requests. By default, fields with
  2247  	// empty values are omitted from API requests. However, any non-pointer,
  2248  	// non-interface field appearing in ForceSendFields will be sent to the
  2249  	// server regardless of whether the field is empty or not. This may be
  2250  	// used to include empty fields in Patch requests.
  2251  	ForceSendFields []string `json:"-"`
  2252  
  2253  	// NullFields is a list of field names (e.g. "Name") to include in API
  2254  	// requests with the JSON null value. By default, fields with empty
  2255  	// values are omitted from API requests. However, any field with an
  2256  	// empty value appearing in NullFields will be sent to the server as
  2257  	// null. It is an error if a field in this list has a non-empty value.
  2258  	// This may be used to include null fields in Patch requests.
  2259  	NullFields []string `json:"-"`
  2260  }
  2261  
  2262  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest) MarshalJSON() ([]byte, error) {
  2263  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest
  2264  	raw := NoMethod(*s)
  2265  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2266  }
  2267  
  2268  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest:
  2269  // The request used for GetWorkerPool.
  2270  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest struct {
  2271  	// Name: Name of the worker pool to retrieve. Format:
  2272  	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.
  2273  	Name string `json:"name,omitempty"`
  2274  
  2275  	// ForceSendFields is a list of field names (e.g. "Name") to
  2276  	// unconditionally include in API requests. By default, fields with
  2277  	// empty values are omitted from API requests. However, any non-pointer,
  2278  	// non-interface field appearing in ForceSendFields will be sent to the
  2279  	// server regardless of whether the field is empty or not. This may be
  2280  	// used to include empty fields in Patch requests.
  2281  	ForceSendFields []string `json:"-"`
  2282  
  2283  	// NullFields is a list of field names (e.g. "Name") to include in API
  2284  	// requests with the JSON null value. By default, fields with empty
  2285  	// values are omitted from API requests. However, any field with an
  2286  	// empty value appearing in NullFields will be sent to the server as
  2287  	// null. It is an error if a field in this list has a non-empty value.
  2288  	// This may be used to include null fields in Patch requests.
  2289  	NullFields []string `json:"-"`
  2290  }
  2291  
  2292  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest) MarshalJSON() ([]byte, error) {
  2293  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest
  2294  	raw := NoMethod(*s)
  2295  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2296  }
  2297  
  2298  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance: Instance
  2299  // conceptually encapsulates all Remote Build Execution resources for
  2300  // remote builds. An instance consists of storage and compute resources
  2301  // (for example, `ContentAddressableStorage`, `ActionCache`,
  2302  // `WorkerPools`) used for running remote builds. All Remote Build
  2303  // Execution API calls are scoped to an instance.
  2304  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance struct {
  2305  	// FeaturePolicy: The policy to define whether or not RBE features can
  2306  	// be used or how they can be used.
  2307  	FeaturePolicy *GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy `json:"featurePolicy,omitempty"`
  2308  
  2309  	// Location: The location is a GCP region. Currently only `us-central1`
  2310  	// is supported.
  2311  	Location string `json:"location,omitempty"`
  2312  
  2313  	// LoggingEnabled: Output only. Whether stack driver logging is enabled
  2314  	// for the instance.
  2315  	LoggingEnabled bool `json:"loggingEnabled,omitempty"`
  2316  
  2317  	// Name: Output only. Instance resource name formatted as:
  2318  	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. Name should not be
  2319  	// populated when creating an instance since it is provided in the
  2320  	// `instance_id` field.
  2321  	Name string `json:"name,omitempty"`
  2322  
  2323  	// State: Output only. State of the instance.
  2324  	//
  2325  	// Possible values:
  2326  	//   "STATE_UNSPECIFIED" - Not a valid state, but the default value of
  2327  	// the enum.
  2328  	//   "CREATING" - The instance is in state `CREATING` once
  2329  	// `CreateInstance` is called and before the instance is ready for use.
  2330  	//   "RUNNING" - The instance is in state `RUNNING` when it is ready for
  2331  	// use.
  2332  	//   "INACTIVE" - An `INACTIVE` instance indicates that there is a
  2333  	// problem that needs to be fixed. Such instances cannot be used for
  2334  	// execution and instances that remain in this state for a significant
  2335  	// period of time will be removed permanently.
  2336  	State string `json:"state,omitempty"`
  2337  
  2338  	// ForceSendFields is a list of field names (e.g. "FeaturePolicy") to
  2339  	// unconditionally include in API requests. By default, fields with
  2340  	// empty values are omitted from API requests. However, any non-pointer,
  2341  	// non-interface field appearing in ForceSendFields will be sent to the
  2342  	// server regardless of whether the field is empty or not. This may be
  2343  	// used to include empty fields in Patch requests.
  2344  	ForceSendFields []string `json:"-"`
  2345  
  2346  	// NullFields is a list of field names (e.g. "FeaturePolicy") to include
  2347  	// in API requests with the JSON null value. By default, fields with
  2348  	// empty values are omitted from API requests. However, any field with
  2349  	// an empty value appearing in NullFields will be sent to the server as
  2350  	// null. It is an error if a field in this list has a non-empty value.
  2351  	// This may be used to include null fields in Patch requests.
  2352  	NullFields []string `json:"-"`
  2353  }
  2354  
  2355  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance) MarshalJSON() ([]byte, error) {
  2356  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance
  2357  	raw := NoMethod(*s)
  2358  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2359  }
  2360  
  2361  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest struct {
  2362  	// Parent: Resource name of the project. Format:
  2363  	// `projects/[PROJECT_ID]`.
  2364  	Parent string `json:"parent,omitempty"`
  2365  
  2366  	// ForceSendFields is a list of field names (e.g. "Parent") to
  2367  	// unconditionally include in API requests. By default, fields with
  2368  	// empty values are omitted from API requests. However, any non-pointer,
  2369  	// non-interface field appearing in ForceSendFields will be sent to the
  2370  	// server regardless of whether the field is empty or not. This may be
  2371  	// used to include empty fields in Patch requests.
  2372  	ForceSendFields []string `json:"-"`
  2373  
  2374  	// NullFields is a list of field names (e.g. "Parent") to include in API
  2375  	// requests with the JSON null value. By default, fields with empty
  2376  	// values are omitted from API requests. However, any field with an
  2377  	// empty value appearing in NullFields will be sent to the server as
  2378  	// null. It is an error if a field in this list has a non-empty value.
  2379  	// This may be used to include null fields in Patch requests.
  2380  	NullFields []string `json:"-"`
  2381  }
  2382  
  2383  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest) MarshalJSON() ([]byte, error) {
  2384  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest
  2385  	raw := NoMethod(*s)
  2386  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2387  }
  2388  
  2389  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse struct {
  2390  	// Instances: The list of instances in a given project.
  2391  	Instances []*GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance `json:"instances,omitempty"`
  2392  
  2393  	// ForceSendFields is a list of field names (e.g. "Instances") to
  2394  	// unconditionally include in API requests. By default, fields with
  2395  	// empty values are omitted from API requests. However, any non-pointer,
  2396  	// non-interface field appearing in ForceSendFields will be sent to the
  2397  	// server regardless of whether the field is empty or not. This may be
  2398  	// used to include empty fields in Patch requests.
  2399  	ForceSendFields []string `json:"-"`
  2400  
  2401  	// NullFields is a list of field names (e.g. "Instances") to include in
  2402  	// API requests with the JSON null value. By default, fields with empty
  2403  	// values are omitted from API requests. However, any field with an
  2404  	// empty value appearing in NullFields will be sent to the server as
  2405  	// null. It is an error if a field in this list has a non-empty value.
  2406  	// This may be used to include null fields in Patch requests.
  2407  	NullFields []string `json:"-"`
  2408  }
  2409  
  2410  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse) MarshalJSON() ([]byte, error) {
  2411  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse
  2412  	raw := NoMethod(*s)
  2413  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2414  }
  2415  
  2416  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest struct {
  2417  	// Filter: Optional. A filter expression that filters resources listed
  2418  	// in the response. The expression must specify the field name, a
  2419  	// comparison operator, and the value that you want to use for
  2420  	// filtering. The value must be a string, a number, or a boolean. String
  2421  	// values are case-insensitive. The comparison operator must be either
  2422  	// `:`, `=`, `!=`, `>`, `>=`, `<=` or `<`. The `:` operator can be used
  2423  	// with string fields to match substrings. For non-string fields it is
  2424  	// equivalent to the `=` operator. The `:*` comparison can be used to
  2425  	// test whether a key has been defined. You can also filter on nested
  2426  	// fields. To filter on multiple expressions, you can separate
  2427  	// expression using `AND` and `OR` operators, using parentheses to
  2428  	// specify precedence. If neither operator is specified, `AND` is
  2429  	// assumed. Examples: Include only pools with more than 100 reserved
  2430  	// workers: `(worker_count > 100) (worker_config.reserved = true)`
  2431  	// Include only pools with a certain label or machines of the
  2432  	// e2-standard family: `worker_config.labels.key1 : * OR
  2433  	// worker_config.machine_type: e2-standard`
  2434  	Filter string `json:"filter,omitempty"`
  2435  
  2436  	// Parent: Resource name of the instance. Format:
  2437  	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
  2438  	Parent string `json:"parent,omitempty"`
  2439  
  2440  	// ForceSendFields is a list of field names (e.g. "Filter") to
  2441  	// unconditionally include in API requests. By default, fields with
  2442  	// empty values are omitted from API requests. However, any non-pointer,
  2443  	// non-interface field appearing in ForceSendFields will be sent to the
  2444  	// server regardless of whether the field is empty or not. This may be
  2445  	// used to include empty fields in Patch requests.
  2446  	ForceSendFields []string `json:"-"`
  2447  
  2448  	// NullFields is a list of field names (e.g. "Filter") to include in API
  2449  	// requests with the JSON null value. By default, fields with empty
  2450  	// values are omitted from API requests. However, any field with an
  2451  	// empty value appearing in NullFields will be sent to the server as
  2452  	// null. It is an error if a field in this list has a non-empty value.
  2453  	// This may be used to include null fields in Patch requests.
  2454  	NullFields []string `json:"-"`
  2455  }
  2456  
  2457  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest) MarshalJSON() ([]byte, error) {
  2458  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest
  2459  	raw := NoMethod(*s)
  2460  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2461  }
  2462  
  2463  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse struct {
  2464  	// WorkerPools: The list of worker pools in a given instance.
  2465  	WorkerPools []*GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool `json:"workerPools,omitempty"`
  2466  
  2467  	// ForceSendFields is a list of field names (e.g. "WorkerPools") to
  2468  	// unconditionally include in API requests. By default, fields with
  2469  	// empty values are omitted from API requests. However, any non-pointer,
  2470  	// non-interface field appearing in ForceSendFields will be sent to the
  2471  	// server regardless of whether the field is empty or not. This may be
  2472  	// used to include empty fields in Patch requests.
  2473  	ForceSendFields []string `json:"-"`
  2474  
  2475  	// NullFields is a list of field names (e.g. "WorkerPools") to include
  2476  	// in API requests with the JSON null value. By default, fields with
  2477  	// empty values are omitted from API requests. However, any field with
  2478  	// an empty value appearing in NullFields will be sent to the server as
  2479  	// null. It is an error if a field in this list has a non-empty value.
  2480  	// This may be used to include null fields in Patch requests.
  2481  	NullFields []string `json:"-"`
  2482  }
  2483  
  2484  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse) MarshalJSON() ([]byte, error) {
  2485  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse
  2486  	raw := NoMethod(*s)
  2487  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2488  }
  2489  
  2490  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest:
  2491  // The request used for `UpdateInstance`.
  2492  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest struct {
  2493  	// Instance: Specifies the instance to update.
  2494  	Instance *GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance `json:"instance,omitempty"`
  2495  
  2496  	// LoggingEnabled: Deprecated, use instance.logging_enabled instead.
  2497  	// Whether to enable Stackdriver logging for this instance.
  2498  	LoggingEnabled bool `json:"loggingEnabled,omitempty"`
  2499  
  2500  	// Name: Deprecated, use instance.Name instead. Name of the instance to
  2501  	// update. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.
  2502  	Name string `json:"name,omitempty"`
  2503  
  2504  	// UpdateMask: The update mask applies to instance. For the `FieldMask`
  2505  	// definition, see
  2506  	// https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
  2507  	// If an empty update_mask is provided, only the non-default valued
  2508  	// field in the worker pool field will be updated. Note that in order to
  2509  	// update a field to the default value (zero, false, empty string) an
  2510  	// explicit update_mask must be provided.
  2511  	UpdateMask string `json:"updateMask,omitempty"`
  2512  
  2513  	// ForceSendFields is a list of field names (e.g. "Instance") to
  2514  	// unconditionally include in API requests. By default, fields with
  2515  	// empty values are omitted from API requests. However, any non-pointer,
  2516  	// non-interface field appearing in ForceSendFields will be sent to the
  2517  	// server regardless of whether the field is empty or not. This may be
  2518  	// used to include empty fields in Patch requests.
  2519  	ForceSendFields []string `json:"-"`
  2520  
  2521  	// NullFields is a list of field names (e.g. "Instance") to include in
  2522  	// API requests with the JSON null value. By default, fields with empty
  2523  	// values are omitted from API requests. However, any field with an
  2524  	// empty value appearing in NullFields will be sent to the server as
  2525  	// null. It is an error if a field in this list has a non-empty value.
  2526  	// This may be used to include null fields in Patch requests.
  2527  	NullFields []string `json:"-"`
  2528  }
  2529  
  2530  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest) MarshalJSON() ([]byte, error) {
  2531  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest
  2532  	raw := NoMethod(*s)
  2533  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2534  }
  2535  
  2536  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest:
  2537  //
  2538  //	The request used for UpdateWorkerPool.
  2539  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest struct {
  2540  	// UpdateMask: The update mask applies to worker_pool. For the
  2541  	// `FieldMask` definition, see
  2542  	// https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
  2543  	// If an empty update_mask is provided, only the non-default valued
  2544  	// field in the worker pool field will be updated. Note that in order to
  2545  	// update a field to the default value (zero, false, empty string) an
  2546  	// explicit update_mask must be provided.
  2547  	UpdateMask string `json:"updateMask,omitempty"`
  2548  
  2549  	// WorkerPool: Specifies the worker pool to update.
  2550  	WorkerPool *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool `json:"workerPool,omitempty"`
  2551  
  2552  	// ForceSendFields is a list of field names (e.g. "UpdateMask") to
  2553  	// unconditionally include in API requests. By default, fields with
  2554  	// empty values are omitted from API requests. However, any non-pointer,
  2555  	// non-interface field appearing in ForceSendFields will be sent to the
  2556  	// server regardless of whether the field is empty or not. This may be
  2557  	// used to include empty fields in Patch requests.
  2558  	ForceSendFields []string `json:"-"`
  2559  
  2560  	// NullFields is a list of field names (e.g. "UpdateMask") to include in
  2561  	// API requests with the JSON null value. By default, fields with empty
  2562  	// values are omitted from API requests. However, any field with an
  2563  	// empty value appearing in NullFields will be sent to the server as
  2564  	// null. It is an error if a field in this list has a non-empty value.
  2565  	// This may be used to include null fields in Patch requests.
  2566  	NullFields []string `json:"-"`
  2567  }
  2568  
  2569  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest) MarshalJSON() ([]byte, error) {
  2570  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest
  2571  	raw := NoMethod(*s)
  2572  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2573  }
  2574  
  2575  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig: Defines
  2576  // the configuration to be used for creating workers in the worker pool.
  2577  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig struct {
  2578  	// Accelerator: The accelerator card attached to each VM.
  2579  	Accelerator *GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig `json:"accelerator,omitempty"`
  2580  
  2581  	// DiskSizeGb: Required. Size of the disk attached to the worker, in GB.
  2582  	// See https://cloud.google.com/compute/docs/disks/
  2583  	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
  2584  
  2585  	// DiskType: Required. Disk Type to use for the worker. See Storage
  2586  	// options (https://cloud.google.com/compute/docs/disks/#introduction).
  2587  	// Currently only `pd-standard` and `pd-ssd` are supported.
  2588  	DiskType string `json:"diskType,omitempty"`
  2589  
  2590  	// Labels: Labels associated with the workers. Label keys and values can
  2591  	// be no longer than 63 characters, can only contain lowercase letters,
  2592  	// numeric characters, underscores and dashes. International letters are
  2593  	// permitted. Label keys must start with a letter. Label values are
  2594  	// optional. There can not be more than 64 labels per resource.
  2595  	Labels map[string]string `json:"labels,omitempty"`
  2596  
  2597  	// MachineType: Required. Machine type of the worker, such as
  2598  	// `e2-standard-2`. See
  2599  	// https://cloud.google.com/compute/docs/machine-types for a list of
  2600  	// supported machine types. Note that `f1-micro` and `g1-small` are not
  2601  	// yet supported.
  2602  	MachineType string `json:"machineType,omitempty"`
  2603  
  2604  	// MaxConcurrentActions: The maximum number of actions a worker can
  2605  	// execute concurrently.
  2606  	MaxConcurrentActions int64 `json:"maxConcurrentActions,omitempty,string"`
  2607  
  2608  	// MinCpuPlatform: Minimum CPU platform to use when creating the worker.
  2609  	// See CPU Platforms
  2610  	// (https://cloud.google.com/compute/docs/cpu-platforms).
  2611  	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
  2612  
  2613  	// NetworkAccess: Determines the type of network access granted to
  2614  	// workers. Possible values: - "public": Workers can connect to the
  2615  	// public internet. - "private": Workers can only connect to Google APIs
  2616  	// and services. - "restricted-private": Workers can only connect to
  2617  	// Google APIs that are reachable through `restricted.googleapis.com`
  2618  	// (`199.36.153.4/30`).
  2619  	NetworkAccess string `json:"networkAccess,omitempty"`
  2620  
  2621  	// Reserved: Determines whether the worker is reserved (equivalent to a
  2622  	// Compute Engine on-demand VM and therefore won't be preempted). See
  2623  	// Preemptible VMs (https://cloud.google.com/preemptible-vms/) for more
  2624  	// details.
  2625  	Reserved bool `json:"reserved,omitempty"`
  2626  
  2627  	// SoleTenantNodeType: The node type name to be used for sole-tenant
  2628  	// nodes.
  2629  	SoleTenantNodeType string `json:"soleTenantNodeType,omitempty"`
  2630  
  2631  	// VmImage: The name of the image used by each VM.
  2632  	VmImage string `json:"vmImage,omitempty"`
  2633  
  2634  	// ForceSendFields is a list of field names (e.g. "Accelerator") to
  2635  	// unconditionally include in API requests. By default, fields with
  2636  	// empty values are omitted from API requests. However, any non-pointer,
  2637  	// non-interface field appearing in ForceSendFields will be sent to the
  2638  	// server regardless of whether the field is empty or not. This may be
  2639  	// used to include empty fields in Patch requests.
  2640  	ForceSendFields []string `json:"-"`
  2641  
  2642  	// NullFields is a list of field names (e.g. "Accelerator") to include
  2643  	// in API requests with the JSON null value. By default, fields with
  2644  	// empty values are omitted from API requests. However, any field with
  2645  	// an empty value appearing in NullFields will be sent to the server as
  2646  	// null. It is an error if a field in this list has a non-empty value.
  2647  	// This may be used to include null fields in Patch requests.
  2648  	NullFields []string `json:"-"`
  2649  }
  2650  
  2651  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig) MarshalJSON() ([]byte, error) {
  2652  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig
  2653  	raw := NoMethod(*s)
  2654  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2655  }
  2656  
  2657  // GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool: A worker
  2658  // pool resource in the Remote Build Execution API.
  2659  type GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool struct {
  2660  	// Autoscale: The autoscale policy to apply on a pool.
  2661  	Autoscale *GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale `json:"autoscale,omitempty"`
  2662  
  2663  	// Channel: Channel specifies the release channel of the pool.
  2664  	Channel string `json:"channel,omitempty"`
  2665  
  2666  	// Name: WorkerPool resource name formatted as:
  2667  	// `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.
  2668  	//  name should not be populated when creating a worker pool since it is
  2669  	// provided in the `poolId` field.
  2670  	Name string `json:"name,omitempty"`
  2671  
  2672  	// State: Output only. State of the worker pool.
  2673  	//
  2674  	// Possible values:
  2675  	//   "STATE_UNSPECIFIED" - Not a valid state, but the default value of
  2676  	// the enum.
  2677  	//   "CREATING" - The worker pool is in state `CREATING` once
  2678  	// `CreateWorkerPool` is called and before all requested workers are
  2679  	// ready.
  2680  	//   "RUNNING" - The worker pool is in state `RUNNING` when all its
  2681  	// workers are ready for use.
  2682  	//   "UPDATING" - The worker pool is in state `UPDATING` once
  2683  	// `UpdateWorkerPool` is called and before the new configuration has all
  2684  	// the requested workers ready for use, and no older configuration has
  2685  	// any workers. At that point the state transitions to `RUNNING`.
  2686  	//   "DELETING" - The worker pool is in state `DELETING` once the
  2687  	// `Delete` method is called and before the deletion completes.
  2688  	//   "INACTIVE" - The worker pool is in state `INACTIVE` when the
  2689  	// instance hosting the worker pool in not running.
  2690  	State string `json:"state,omitempty"`
  2691  
  2692  	// WorkerConfig: Specifies the properties, such as machine type and disk
  2693  	// size, used for creating workers in a worker pool.
  2694  	WorkerConfig *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig `json:"workerConfig,omitempty"`
  2695  
  2696  	// WorkerCount: The desired number of workers in the worker pool. Must
  2697  	// be a value between 0 and 15000.
  2698  	WorkerCount int64 `json:"workerCount,omitempty,string"`
  2699  
  2700  	// ForceSendFields is a list of field names (e.g. "Autoscale") to
  2701  	// unconditionally include in API requests. By default, fields with
  2702  	// empty values are omitted from API requests. However, any non-pointer,
  2703  	// non-interface field appearing in ForceSendFields will be sent to the
  2704  	// server regardless of whether the field is empty or not. This may be
  2705  	// used to include empty fields in Patch requests.
  2706  	ForceSendFields []string `json:"-"`
  2707  
  2708  	// NullFields is a list of field names (e.g. "Autoscale") to include in
  2709  	// API requests with the JSON null value. By default, fields with empty
  2710  	// values are omitted from API requests. However, any field with an
  2711  	// empty value appearing in NullFields will be sent to the server as
  2712  	// null. It is an error if a field in this list has a non-empty value.
  2713  	// This may be used to include null fields in Patch requests.
  2714  	NullFields []string `json:"-"`
  2715  }
  2716  
  2717  func (s *GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool) MarshalJSON() ([]byte, error) {
  2718  	type NoMethod GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool
  2719  	raw := NoMethod(*s)
  2720  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2721  }
  2722  
  2723  // GoogleDevtoolsRemoteworkersV1test2AdminTemp: AdminTemp is a
  2724  // prelimiary set of administration tasks. It's called "Temp" because we
  2725  // do not yet know the best way to represent admin tasks; it's possible
  2726  // that this will be entirely replaced in later versions of this API. If
  2727  // this message proves to be sufficient, it will be renamed in the alpha
  2728  // or beta release of this API. This message (suitably marshalled into a
  2729  // protobuf.Any) can be used as the inline_assignment field in a lease;
  2730  // the lease assignment field should simply be "admin" in these cases.
  2731  // This message is heavily based on Swarming administration tasks from
  2732  // the LUCI project (http://github.com/luci/luci-py/appengine/swarming).
  2733  type GoogleDevtoolsRemoteworkersV1test2AdminTemp struct {
  2734  	// Arg: The argument to the admin action; see `Command` for semantics.
  2735  	Arg string `json:"arg,omitempty"`
  2736  
  2737  	// Command: The admin action; see `Command` for legal values.
  2738  	//
  2739  	// Possible values:
  2740  	//   "UNSPECIFIED" - Illegal value.
  2741  	//   "BOT_UPDATE" - Download and run a new version of the bot. `arg`
  2742  	// will be a resource accessible via `ByteStream.Read` to obtain the new
  2743  	// bot code.
  2744  	//   "BOT_RESTART" - Restart the bot without downloading a new version.
  2745  	// `arg` will be a message to log.
  2746  	//   "BOT_TERMINATE" - Shut down the bot. `arg` will be a task resource
  2747  	// name (similar to those in tasks.proto) that the bot can use to tell
  2748  	// the server that it is terminating.
  2749  	//   "HOST_RESTART" - Restart the host computer. `arg` will be a message
  2750  	// to log.
  2751  	Command string `json:"command,omitempty"`
  2752  
  2753  	// ForceSendFields is a list of field names (e.g. "Arg") to
  2754  	// unconditionally include in API requests. By default, fields with
  2755  	// empty values are omitted from API requests. However, any non-pointer,
  2756  	// non-interface field appearing in ForceSendFields will be sent to the
  2757  	// server regardless of whether the field is empty or not. This may be
  2758  	// used to include empty fields in Patch requests.
  2759  	ForceSendFields []string `json:"-"`
  2760  
  2761  	// NullFields is a list of field names (e.g. "Arg") to include in API
  2762  	// requests with the JSON null value. By default, fields with empty
  2763  	// values are omitted from API requests. However, any field with an
  2764  	// empty value appearing in NullFields will be sent to the server as
  2765  	// null. It is an error if a field in this list has a non-empty value.
  2766  	// This may be used to include null fields in Patch requests.
  2767  	NullFields []string `json:"-"`
  2768  }
  2769  
  2770  func (s *GoogleDevtoolsRemoteworkersV1test2AdminTemp) MarshalJSON() ([]byte, error) {
  2771  	type NoMethod GoogleDevtoolsRemoteworkersV1test2AdminTemp
  2772  	raw := NoMethod(*s)
  2773  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2774  }
  2775  
  2776  // GoogleDevtoolsRemoteworkersV1test2Blob: Describes a blob of binary
  2777  // content with its digest.
  2778  type GoogleDevtoolsRemoteworkersV1test2Blob struct {
  2779  	// Contents: The contents of the blob.
  2780  	Contents string `json:"contents,omitempty"`
  2781  
  2782  	// Digest: The digest of the blob. This should be verified by the
  2783  	// receiver.
  2784  	Digest *GoogleDevtoolsRemoteworkersV1test2Digest `json:"digest,omitempty"`
  2785  
  2786  	// ForceSendFields is a list of field names (e.g. "Contents") 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. "Contents") 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  
  2803  func (s *GoogleDevtoolsRemoteworkersV1test2Blob) MarshalJSON() ([]byte, error) {
  2804  	type NoMethod GoogleDevtoolsRemoteworkersV1test2Blob
  2805  	raw := NoMethod(*s)
  2806  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2807  }
  2808  
  2809  // GoogleDevtoolsRemoteworkersV1test2CommandOutputs: DEPRECATED - use
  2810  // CommandResult instead. Describes the actual outputs from the task.
  2811  type GoogleDevtoolsRemoteworkersV1test2CommandOutputs struct {
  2812  	// ExitCode: exit_code is only fully reliable if the status' code is OK.
  2813  	// If the task exceeded its deadline or was cancelled, the process may
  2814  	// still produce an exit code as it is cancelled, and this will be
  2815  	// populated, but a successful (zero) is unlikely to be correct unless
  2816  	// the status code is OK.
  2817  	ExitCode int64 `json:"exitCode,omitempty"`
  2818  
  2819  	// Outputs: The output files. The blob referenced by the digest should
  2820  	// contain one of the following (implementation-dependent): * A
  2821  	// marshalled DirectoryMetadata of the returned filesystem * A
  2822  	// LUCI-style .isolated file
  2823  	Outputs *GoogleDevtoolsRemoteworkersV1test2Digest `json:"outputs,omitempty"`
  2824  
  2825  	// ForceSendFields is a list of field names (e.g. "ExitCode") to
  2826  	// unconditionally include in API requests. By default, fields with
  2827  	// empty values are omitted from API requests. However, any non-pointer,
  2828  	// non-interface field appearing in ForceSendFields will be sent to the
  2829  	// server regardless of whether the field is empty or not. This may be
  2830  	// used to include empty fields in Patch requests.
  2831  	ForceSendFields []string `json:"-"`
  2832  
  2833  	// NullFields is a list of field names (e.g. "ExitCode") to include in
  2834  	// API requests with the JSON null value. By default, fields with empty
  2835  	// values are omitted from API requests. However, any field with an
  2836  	// empty value appearing in NullFields will be sent to the server as
  2837  	// null. It is an error if a field in this list has a non-empty value.
  2838  	// This may be used to include null fields in Patch requests.
  2839  	NullFields []string `json:"-"`
  2840  }
  2841  
  2842  func (s *GoogleDevtoolsRemoteworkersV1test2CommandOutputs) MarshalJSON() ([]byte, error) {
  2843  	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandOutputs
  2844  	raw := NoMethod(*s)
  2845  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2846  }
  2847  
  2848  // GoogleDevtoolsRemoteworkersV1test2CommandOverhead: DEPRECATED - use
  2849  // CommandResult instead. Can be used as part of
  2850  // CompleteRequest.metadata, or are part of a more sophisticated
  2851  // message.
  2852  type GoogleDevtoolsRemoteworkersV1test2CommandOverhead struct {
  2853  	// Duration: The elapsed time between calling Accept and Complete. The
  2854  	// server will also have its own idea of what this should be, but this
  2855  	// excludes the overhead of the RPCs and the bot response time.
  2856  	Duration string `json:"duration,omitempty"`
  2857  
  2858  	// Overhead: The amount of time *not* spent executing the command (ie
  2859  	// uploading/downloading files).
  2860  	Overhead string `json:"overhead,omitempty"`
  2861  
  2862  	// ForceSendFields is a list of field names (e.g. "Duration") to
  2863  	// unconditionally include in API requests. By default, fields with
  2864  	// empty values are omitted from API requests. However, any non-pointer,
  2865  	// non-interface field appearing in ForceSendFields will be sent to the
  2866  	// server regardless of whether the field is empty or not. This may be
  2867  	// used to include empty fields in Patch requests.
  2868  	ForceSendFields []string `json:"-"`
  2869  
  2870  	// NullFields is a list of field names (e.g. "Duration") to include in
  2871  	// API requests with the JSON null value. By default, fields with empty
  2872  	// values are omitted from API requests. However, any field with an
  2873  	// empty value appearing in NullFields will be sent to the server as
  2874  	// null. It is an error if a field in this list has a non-empty value.
  2875  	// This may be used to include null fields in Patch requests.
  2876  	NullFields []string `json:"-"`
  2877  }
  2878  
  2879  func (s *GoogleDevtoolsRemoteworkersV1test2CommandOverhead) MarshalJSON() ([]byte, error) {
  2880  	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandOverhead
  2881  	raw := NoMethod(*s)
  2882  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2883  }
  2884  
  2885  // GoogleDevtoolsRemoteworkersV1test2CommandResult: All information
  2886  // about the execution of a command, suitable for providing as the Bots
  2887  // interface's `Lease.result` field.
  2888  type GoogleDevtoolsRemoteworkersV1test2CommandResult struct {
  2889  	// Duration: The elapsed time between calling Accept and Complete. The
  2890  	// server will also have its own idea of what this should be, but this
  2891  	// excludes the overhead of the RPCs and the bot response time.
  2892  	Duration string `json:"duration,omitempty"`
  2893  
  2894  	// ExitCode: The exit code of the process. An exit code of "0" should
  2895  	// only be trusted if `status` has a code of OK (otherwise it may simply
  2896  	// be unset).
  2897  	ExitCode int64 `json:"exitCode,omitempty"`
  2898  
  2899  	// Metadata: Implementation-dependent metadata about the task. Both
  2900  	// servers and bots may define messages which can be encoded here; bots
  2901  	// are free to provide metadata in multiple formats, and servers are
  2902  	// free to choose one or more of the values to process and ignore
  2903  	// others. In particular, it is *not* considered an error for the bot to
  2904  	// provide the server with a field that it doesn't know about.
  2905  	Metadata []googleapi.RawMessage `json:"metadata,omitempty"`
  2906  
  2907  	// Outputs: The output files. The blob referenced by the digest should
  2908  	// contain one of the following (implementation-dependent): * A
  2909  	// marshalled DirectoryMetadata of the returned filesystem * A
  2910  	// LUCI-style .isolated file
  2911  	Outputs *GoogleDevtoolsRemoteworkersV1test2Digest `json:"outputs,omitempty"`
  2912  
  2913  	// Overhead: The amount of time *not* spent executing the command (ie
  2914  	// uploading/downloading files).
  2915  	Overhead string `json:"overhead,omitempty"`
  2916  
  2917  	// Status: An overall status for the command. For example, if the
  2918  	// command timed out, this might have a code of DEADLINE_EXCEEDED; if it
  2919  	// was killed by the OS for memory exhaustion, it might have a code of
  2920  	// RESOURCE_EXHAUSTED.
  2921  	Status *GoogleRpcStatus `json:"status,omitempty"`
  2922  
  2923  	// ForceSendFields is a list of field names (e.g. "Duration") to
  2924  	// unconditionally include in API requests. By default, fields with
  2925  	// empty values are omitted from API requests. However, any non-pointer,
  2926  	// non-interface field appearing in ForceSendFields will be sent to the
  2927  	// server regardless of whether the field is empty or not. This may be
  2928  	// used to include empty fields in Patch requests.
  2929  	ForceSendFields []string `json:"-"`
  2930  
  2931  	// NullFields is a list of field names (e.g. "Duration") to include in
  2932  	// API requests with the JSON null value. By default, fields with empty
  2933  	// values are omitted from API requests. However, any field with an
  2934  	// empty value appearing in NullFields will be sent to the server as
  2935  	// null. It is an error if a field in this list has a non-empty value.
  2936  	// This may be used to include null fields in Patch requests.
  2937  	NullFields []string `json:"-"`
  2938  }
  2939  
  2940  func (s *GoogleDevtoolsRemoteworkersV1test2CommandResult) MarshalJSON() ([]byte, error) {
  2941  	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandResult
  2942  	raw := NoMethod(*s)
  2943  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2944  }
  2945  
  2946  // GoogleDevtoolsRemoteworkersV1test2CommandTask: Describes a
  2947  // shell-style task to execute, suitable for providing as the Bots
  2948  // interface's `Lease.payload` field.
  2949  type GoogleDevtoolsRemoteworkersV1test2CommandTask struct {
  2950  	// ExpectedOutputs: The expected outputs from the task.
  2951  	ExpectedOutputs *GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs `json:"expectedOutputs,omitempty"`
  2952  
  2953  	// Inputs: The inputs to the task.
  2954  	Inputs *GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs `json:"inputs,omitempty"`
  2955  
  2956  	// Timeouts: The timeouts of this task.
  2957  	Timeouts *GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts `json:"timeouts,omitempty"`
  2958  
  2959  	// ForceSendFields is a list of field names (e.g. "ExpectedOutputs") to
  2960  	// unconditionally include in API requests. By default, fields with
  2961  	// empty values are omitted from API requests. However, any non-pointer,
  2962  	// non-interface field appearing in ForceSendFields will be sent to the
  2963  	// server regardless of whether the field is empty or not. This may be
  2964  	// used to include empty fields in Patch requests.
  2965  	ForceSendFields []string `json:"-"`
  2966  
  2967  	// NullFields is a list of field names (e.g. "ExpectedOutputs") to
  2968  	// include in API requests with the JSON null value. By default, fields
  2969  	// with empty values are omitted from API requests. However, any field
  2970  	// with an empty value appearing in NullFields will be sent to the
  2971  	// server as null. It is an error if a field in this list has a
  2972  	// non-empty value. This may be used to include null fields in Patch
  2973  	// requests.
  2974  	NullFields []string `json:"-"`
  2975  }
  2976  
  2977  func (s *GoogleDevtoolsRemoteworkersV1test2CommandTask) MarshalJSON() ([]byte, error) {
  2978  	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTask
  2979  	raw := NoMethod(*s)
  2980  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  2981  }
  2982  
  2983  // GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs: Describes the
  2984  // inputs to a shell-style task.
  2985  type GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs struct {
  2986  	// Arguments: The command itself to run (e.g., argv). This field should
  2987  	// be passed directly to the underlying operating system, and so it must
  2988  	// be sensible to that operating system. For example, on Windows, the
  2989  	// first argument might be "C:\Windows\System32\ping.exe" - that is,
  2990  	// using drive letters and backslashes. A command for a *nix system, on
  2991  	// the other hand, would use forward slashes. All other fields in the
  2992  	// RWAPI must consistently use forward slashes, since those fields may
  2993  	// be interpretted by both the service and the bot.
  2994  	Arguments []string `json:"arguments,omitempty"`
  2995  
  2996  	// EnvironmentVariables: All environment variables required by the task.
  2997  	EnvironmentVariables []*GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable `json:"environmentVariables,omitempty"`
  2998  
  2999  	// Files: The input filesystem to be set up prior to the task beginning.
  3000  	// The contents should be a repeated set of FileMetadata messages though
  3001  	// other formats are allowed if better for the implementation (eg, a
  3002  	// LUCI-style .isolated file). This field is repeated since
  3003  	// implementations might want to cache the metadata, in which case it
  3004  	// may be useful to break up portions of the filesystem that change
  3005  	// frequently (eg, specific input files) from those that don't (eg,
  3006  	// standard header files).
  3007  	Files []*GoogleDevtoolsRemoteworkersV1test2Digest `json:"files,omitempty"`
  3008  
  3009  	// InlineBlobs: Inline contents for blobs expected to be needed by the
  3010  	// bot to execute the task. For example, contents of entries in `files`
  3011  	// or blobs that are indirectly referenced by an entry there. The bot
  3012  	// should check against this list before downloading required task
  3013  	// inputs to reduce the number of communications between itself and the
  3014  	// remote CAS server.
  3015  	InlineBlobs []*GoogleDevtoolsRemoteworkersV1test2Blob `json:"inlineBlobs,omitempty"`
  3016  
  3017  	// WorkingDirectory: Directory from which a command is executed. It is a
  3018  	// relative directory with respect to the bot's working directory (i.e.,
  3019  	// "./"). If it is non-empty, then it must exist under "./". Otherwise,
  3020  	// "./" will be used.
  3021  	WorkingDirectory string `json:"workingDirectory,omitempty"`
  3022  
  3023  	// ForceSendFields is a list of field names (e.g. "Arguments") to
  3024  	// unconditionally include in API requests. By default, fields with
  3025  	// empty values are omitted from API requests. However, any non-pointer,
  3026  	// non-interface field appearing in ForceSendFields will be sent to the
  3027  	// server regardless of whether the field is empty or not. This may be
  3028  	// used to include empty fields in Patch requests.
  3029  	ForceSendFields []string `json:"-"`
  3030  
  3031  	// NullFields is a list of field names (e.g. "Arguments") to include in
  3032  	// API requests with the JSON null value. By default, fields with empty
  3033  	// values are omitted from API requests. However, any field with an
  3034  	// empty value appearing in NullFields will be sent to the server as
  3035  	// null. It is an error if a field in this list has a non-empty value.
  3036  	// This may be used to include null fields in Patch requests.
  3037  	NullFields []string `json:"-"`
  3038  }
  3039  
  3040  func (s *GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs) MarshalJSON() ([]byte, error) {
  3041  	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs
  3042  	raw := NoMethod(*s)
  3043  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3044  }
  3045  
  3046  // GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable
  3047  // : An environment variable required by this task.
  3048  type GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable struct {
  3049  	// Name: The envvar name.
  3050  	Name string `json:"name,omitempty"`
  3051  
  3052  	// Value: The envvar value.
  3053  	Value string `json:"value,omitempty"`
  3054  
  3055  	// ForceSendFields is a list of field names (e.g. "Name") to
  3056  	// unconditionally include in API requests. By default, fields with
  3057  	// empty values are omitted from API requests. However, any non-pointer,
  3058  	// non-interface field appearing in ForceSendFields will be sent to the
  3059  	// server regardless of whether the field is empty or not. This may be
  3060  	// used to include empty fields in Patch requests.
  3061  	ForceSendFields []string `json:"-"`
  3062  
  3063  	// NullFields is a list of field names (e.g. "Name") to include in API
  3064  	// requests with the JSON null value. By default, fields with empty
  3065  	// values are omitted from API requests. However, any field with an
  3066  	// empty value appearing in NullFields will be sent to the server as
  3067  	// null. It is an error if a field in this list has a non-empty value.
  3068  	// This may be used to include null fields in Patch requests.
  3069  	NullFields []string `json:"-"`
  3070  }
  3071  
  3072  func (s *GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable) MarshalJSON() ([]byte, error) {
  3073  	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable
  3074  	raw := NoMethod(*s)
  3075  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3076  }
  3077  
  3078  // GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs: Describes the
  3079  // expected outputs of the command.
  3080  type GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs struct {
  3081  	// Directories: A list of expected directories, relative to the
  3082  	// execution root. All paths MUST be delimited by forward slashes.
  3083  	Directories []string `json:"directories,omitempty"`
  3084  
  3085  	// Files: A list of expected files, relative to the execution root. All
  3086  	// paths MUST be delimited by forward slashes.
  3087  	Files []string `json:"files,omitempty"`
  3088  
  3089  	// StderrDestination: The destination to which any stderr should be
  3090  	// sent. The method by which the bot should send the stream contents to
  3091  	// that destination is not defined in this API. As examples, the
  3092  	// destination could be a file referenced in the `files` field in this
  3093  	// message, or it could be a URI that must be written via the ByteStream
  3094  	// API.
  3095  	StderrDestination string `json:"stderrDestination,omitempty"`
  3096  
  3097  	// StdoutDestination: The destination to which any stdout should be
  3098  	// sent. The method by which the bot should send the stream contents to
  3099  	// that destination is not defined in this API. As examples, the
  3100  	// destination could be a file referenced in the `files` field in this
  3101  	// message, or it could be a URI that must be written via the ByteStream
  3102  	// API.
  3103  	StdoutDestination string `json:"stdoutDestination,omitempty"`
  3104  
  3105  	// ForceSendFields is a list of field names (e.g. "Directories") to
  3106  	// unconditionally include in API requests. By default, fields with
  3107  	// empty values are omitted from API requests. However, any non-pointer,
  3108  	// non-interface field appearing in ForceSendFields will be sent to the
  3109  	// server regardless of whether the field is empty or not. This may be
  3110  	// used to include empty fields in Patch requests.
  3111  	ForceSendFields []string `json:"-"`
  3112  
  3113  	// NullFields is a list of field names (e.g. "Directories") to include
  3114  	// in API requests with the JSON null value. By default, fields with
  3115  	// empty values are omitted from API requests. However, any field with
  3116  	// an empty value appearing in NullFields will be sent to the server as
  3117  	// null. It is an error if a field in this list has a non-empty value.
  3118  	// This may be used to include null fields in Patch requests.
  3119  	NullFields []string `json:"-"`
  3120  }
  3121  
  3122  func (s *GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs) MarshalJSON() ([]byte, error) {
  3123  	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs
  3124  	raw := NoMethod(*s)
  3125  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3126  }
  3127  
  3128  // GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts: Describes the
  3129  // timeouts associated with this task.
  3130  type GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts struct {
  3131  	// Execution: This specifies the maximum time that the task can run,
  3132  	// excluding the time required to download inputs or upload outputs.
  3133  	// That is, the worker will terminate the task if it runs longer than
  3134  	// this.
  3135  	Execution string `json:"execution,omitempty"`
  3136  
  3137  	// Idle: This specifies the maximum amount of time the task can be idle
  3138  	// - that is, go without generating some output in either stdout or
  3139  	// stderr. If the process is silent for more than the specified time,
  3140  	// the worker will terminate the task.
  3141  	Idle string `json:"idle,omitempty"`
  3142  
  3143  	// Shutdown: If the execution or IO timeouts are exceeded, the worker
  3144  	// will try to gracefully terminate the task and return any existing
  3145  	// logs. However, tasks may be hard-frozen in which case this process
  3146  	// will fail. This timeout specifies how long to wait for a terminated
  3147  	// task to shut down gracefully (e.g. via SIGTERM) before we bring down
  3148  	// the hammer (e.g. SIGKILL on *nix, CTRL_BREAK_EVENT on Windows).
  3149  	Shutdown string `json:"shutdown,omitempty"`
  3150  
  3151  	// ForceSendFields is a list of field names (e.g. "Execution") to
  3152  	// unconditionally include in API requests. By default, fields with
  3153  	// empty values are omitted from API requests. However, any non-pointer,
  3154  	// non-interface field appearing in ForceSendFields will be sent to the
  3155  	// server regardless of whether the field is empty or not. This may be
  3156  	// used to include empty fields in Patch requests.
  3157  	ForceSendFields []string `json:"-"`
  3158  
  3159  	// NullFields is a list of field names (e.g. "Execution") to include in
  3160  	// API requests with the JSON null value. By default, fields with empty
  3161  	// values are omitted from API requests. However, any field with an
  3162  	// empty value appearing in NullFields will be sent to the server as
  3163  	// null. It is an error if a field in this list has a non-empty value.
  3164  	// This may be used to include null fields in Patch requests.
  3165  	NullFields []string `json:"-"`
  3166  }
  3167  
  3168  func (s *GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts) MarshalJSON() ([]byte, error) {
  3169  	type NoMethod GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts
  3170  	raw := NoMethod(*s)
  3171  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3172  }
  3173  
  3174  // GoogleDevtoolsRemoteworkersV1test2Digest: The CommandTask and
  3175  // CommandResult messages assume the existence of a service that can
  3176  // serve blobs of content, identified by a hash and size known as a
  3177  // "digest." The method by which these blobs may be retrieved is not
  3178  // specified here, but a model implementation is in the Remote Execution
  3179  // API's "ContentAddressibleStorage" interface. In the context of the
  3180  // RWAPI, a Digest will virtually always refer to the contents of a file
  3181  // or a directory. The latter is represented by the byte-encoded
  3182  // Directory message.
  3183  type GoogleDevtoolsRemoteworkersV1test2Digest struct {
  3184  	// Hash: A string-encoded hash (eg "1a2b3c", not the byte array [0x1a,
  3185  	// 0x2b, 0x3c]) using an implementation-defined hash algorithm (eg
  3186  	// SHA-256).
  3187  	Hash string `json:"hash,omitempty"`
  3188  
  3189  	// SizeBytes: The size of the contents. While this is not strictly
  3190  	// required as part of an identifier (after all, any given hash will
  3191  	// have exactly one canonical size), it's useful in almost all cases
  3192  	// when one might want to send or retrieve blobs of content and is
  3193  	// included here for this reason.
  3194  	SizeBytes int64 `json:"sizeBytes,omitempty,string"`
  3195  
  3196  	// ForceSendFields is a list of field names (e.g. "Hash") to
  3197  	// unconditionally include in API requests. By default, fields with
  3198  	// empty values are omitted from API requests. However, any non-pointer,
  3199  	// non-interface field appearing in ForceSendFields will be sent to the
  3200  	// server regardless of whether the field is empty or not. This may be
  3201  	// used to include empty fields in Patch requests.
  3202  	ForceSendFields []string `json:"-"`
  3203  
  3204  	// NullFields is a list of field names (e.g. "Hash") to include in API
  3205  	// requests with the JSON null value. By default, fields with empty
  3206  	// values are omitted from API requests. However, any field with an
  3207  	// empty value appearing in NullFields will be sent to the server as
  3208  	// null. It is an error if a field in this list has a non-empty value.
  3209  	// This may be used to include null fields in Patch requests.
  3210  	NullFields []string `json:"-"`
  3211  }
  3212  
  3213  func (s *GoogleDevtoolsRemoteworkersV1test2Digest) MarshalJSON() ([]byte, error) {
  3214  	type NoMethod GoogleDevtoolsRemoteworkersV1test2Digest
  3215  	raw := NoMethod(*s)
  3216  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3217  }
  3218  
  3219  // GoogleDevtoolsRemoteworkersV1test2Directory: The contents of a
  3220  // directory. Similar to the equivalent message in the Remote Execution
  3221  // API.
  3222  type GoogleDevtoolsRemoteworkersV1test2Directory struct {
  3223  	// Directories: Any subdirectories
  3224  	Directories []*GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata `json:"directories,omitempty"`
  3225  
  3226  	// Files: The files in this directory
  3227  	Files []*GoogleDevtoolsRemoteworkersV1test2FileMetadata `json:"files,omitempty"`
  3228  
  3229  	// ForceSendFields is a list of field names (e.g. "Directories") to
  3230  	// unconditionally include in API requests. By default, fields with
  3231  	// empty values are omitted from API requests. However, any non-pointer,
  3232  	// non-interface field appearing in ForceSendFields will be sent to the
  3233  	// server regardless of whether the field is empty or not. This may be
  3234  	// used to include empty fields in Patch requests.
  3235  	ForceSendFields []string `json:"-"`
  3236  
  3237  	// NullFields is a list of field names (e.g. "Directories") to include
  3238  	// in API requests with the JSON null value. By default, fields with
  3239  	// empty values are omitted from API requests. However, any field with
  3240  	// an empty value appearing in NullFields will be sent to the server as
  3241  	// null. It is an error if a field in this list has a non-empty value.
  3242  	// This may be used to include null fields in Patch requests.
  3243  	NullFields []string `json:"-"`
  3244  }
  3245  
  3246  func (s *GoogleDevtoolsRemoteworkersV1test2Directory) MarshalJSON() ([]byte, error) {
  3247  	type NoMethod GoogleDevtoolsRemoteworkersV1test2Directory
  3248  	raw := NoMethod(*s)
  3249  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3250  }
  3251  
  3252  // GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata: The metadata for
  3253  // a directory. Similar to the equivalent message in the Remote
  3254  // Execution API.
  3255  type GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata struct {
  3256  	// Digest: A pointer to the contents of the directory, in the form of a
  3257  	// marshalled Directory message.
  3258  	Digest *GoogleDevtoolsRemoteworkersV1test2Digest `json:"digest,omitempty"`
  3259  
  3260  	// Path: The path of the directory, as in FileMetadata.path.
  3261  	Path string `json:"path,omitempty"`
  3262  
  3263  	// ForceSendFields is a list of field names (e.g. "Digest") to
  3264  	// unconditionally include in API requests. By default, fields with
  3265  	// empty values are omitted from API requests. However, any non-pointer,
  3266  	// non-interface field appearing in ForceSendFields will be sent to the
  3267  	// server regardless of whether the field is empty or not. This may be
  3268  	// used to include empty fields in Patch requests.
  3269  	ForceSendFields []string `json:"-"`
  3270  
  3271  	// NullFields is a list of field names (e.g. "Digest") to include in API
  3272  	// requests with the JSON null value. By default, fields with empty
  3273  	// values are omitted from API requests. However, any field with an
  3274  	// empty value appearing in NullFields will be sent to the server as
  3275  	// null. It is an error if a field in this list has a non-empty value.
  3276  	// This may be used to include null fields in Patch requests.
  3277  	NullFields []string `json:"-"`
  3278  }
  3279  
  3280  func (s *GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata) MarshalJSON() ([]byte, error) {
  3281  	type NoMethod GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata
  3282  	raw := NoMethod(*s)
  3283  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3284  }
  3285  
  3286  // GoogleDevtoolsRemoteworkersV1test2FileMetadata: The metadata for a
  3287  // file. Similar to the equivalent message in the Remote Execution API.
  3288  type GoogleDevtoolsRemoteworkersV1test2FileMetadata struct {
  3289  	// Contents: If the file is small enough, its contents may also or
  3290  	// alternatively be listed here.
  3291  	Contents string `json:"contents,omitempty"`
  3292  
  3293  	// Digest: A pointer to the contents of the file. The method by which a
  3294  	// client retrieves the contents from a CAS system is not defined here.
  3295  	Digest *GoogleDevtoolsRemoteworkersV1test2Digest `json:"digest,omitempty"`
  3296  
  3297  	// IsExecutable: Properties of the file
  3298  	IsExecutable bool `json:"isExecutable,omitempty"`
  3299  
  3300  	// Path: The path of this file. If this message is part of the
  3301  	// CommandOutputs.outputs fields, the path is relative to the execution
  3302  	// root and must correspond to an entry in CommandTask.outputs.files. If
  3303  	// this message is part of a Directory message, then the path is
  3304  	// relative to the root of that directory. All paths MUST be delimited
  3305  	// by forward slashes.
  3306  	Path string `json:"path,omitempty"`
  3307  
  3308  	// ForceSendFields is a list of field names (e.g. "Contents") to
  3309  	// unconditionally include in API requests. By default, fields with
  3310  	// empty values are omitted from API requests. However, any non-pointer,
  3311  	// non-interface field appearing in ForceSendFields will be sent to the
  3312  	// server regardless of whether the field is empty or not. This may be
  3313  	// used to include empty fields in Patch requests.
  3314  	ForceSendFields []string `json:"-"`
  3315  
  3316  	// NullFields is a list of field names (e.g. "Contents") to include in
  3317  	// API requests with the JSON null value. By default, fields with empty
  3318  	// values are omitted from API requests. However, any field with an
  3319  	// empty value appearing in NullFields will be sent to the server as
  3320  	// null. It is an error if a field in this list has a non-empty value.
  3321  	// This may be used to include null fields in Patch requests.
  3322  	NullFields []string `json:"-"`
  3323  }
  3324  
  3325  func (s *GoogleDevtoolsRemoteworkersV1test2FileMetadata) MarshalJSON() ([]byte, error) {
  3326  	type NoMethod GoogleDevtoolsRemoteworkersV1test2FileMetadata
  3327  	raw := NoMethod(*s)
  3328  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3329  }
  3330  
  3331  // GoogleLongrunningCancelOperationRequest: The request message for
  3332  // Operations.CancelOperation.
  3333  type GoogleLongrunningCancelOperationRequest struct {
  3334  }
  3335  
  3336  // GoogleLongrunningListOperationsResponse: The response message for
  3337  // Operations.ListOperations.
  3338  type GoogleLongrunningListOperationsResponse struct {
  3339  	// NextPageToken: The standard List next-page token.
  3340  	NextPageToken string `json:"nextPageToken,omitempty"`
  3341  
  3342  	// Operations: A list of operations that matches the specified filter in
  3343  	// the request.
  3344  	Operations []*GoogleLongrunningOperation `json:"operations,omitempty"`
  3345  
  3346  	// ServerResponse contains the HTTP response code and headers from the
  3347  	// server.
  3348  	googleapi.ServerResponse `json:"-"`
  3349  
  3350  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  3351  	// unconditionally include in API requests. By default, fields with
  3352  	// empty values are omitted from API requests. However, any non-pointer,
  3353  	// non-interface field appearing in ForceSendFields will be sent to the
  3354  	// server regardless of whether the field is empty or not. This may be
  3355  	// used to include empty fields in Patch requests.
  3356  	ForceSendFields []string `json:"-"`
  3357  
  3358  	// NullFields is a list of field names (e.g. "NextPageToken") to include
  3359  	// in API requests with the JSON null value. By default, fields with
  3360  	// empty values are omitted from API requests. However, any field with
  3361  	// an empty value appearing in NullFields will be sent to the server as
  3362  	// null. It is an error if a field in this list has a non-empty value.
  3363  	// This may be used to include null fields in Patch requests.
  3364  	NullFields []string `json:"-"`
  3365  }
  3366  
  3367  func (s *GoogleLongrunningListOperationsResponse) MarshalJSON() ([]byte, error) {
  3368  	type NoMethod GoogleLongrunningListOperationsResponse
  3369  	raw := NoMethod(*s)
  3370  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3371  }
  3372  
  3373  // GoogleLongrunningOperation: This resource represents a long-running
  3374  // operation that is the result of a network API call.
  3375  type GoogleLongrunningOperation struct {
  3376  	// Done: If the value is `false`, it means the operation is still in
  3377  	// progress. If `true`, the operation is completed, and either `error`
  3378  	// or `response` is available.
  3379  	Done bool `json:"done,omitempty"`
  3380  
  3381  	// Error: The error result of the operation in case of failure or
  3382  	// cancellation.
  3383  	Error *GoogleRpcStatus `json:"error,omitempty"`
  3384  
  3385  	// Metadata: Service-specific metadata associated with the operation. It
  3386  	// typically contains progress information and common metadata such as
  3387  	// create time. Some services might not provide such metadata. Any
  3388  	// method that returns a long-running operation should document the
  3389  	// metadata type, if any.
  3390  	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
  3391  
  3392  	// Name: The server-assigned name, which is only unique within the same
  3393  	// service that originally returns it. If you use the default HTTP
  3394  	// mapping, the `name` should be a resource name ending with
  3395  	// `operations/{unique_id}`.
  3396  	Name string `json:"name,omitempty"`
  3397  
  3398  	// Response: The normal response of the operation in case of success. If
  3399  	// the original method returns no data on success, such as `Delete`, the
  3400  	// response is `google.protobuf.Empty`. If the original method is
  3401  	// standard `Get`/`Create`/`Update`, the response should be the
  3402  	// resource. For other methods, the response should have the type
  3403  	// `XxxResponse`, where `Xxx` is the original method name. For example,
  3404  	// if the original method name is `TakeSnapshot()`, the inferred
  3405  	// response type is `TakeSnapshotResponse`.
  3406  	Response googleapi.RawMessage `json:"response,omitempty"`
  3407  
  3408  	// ServerResponse contains the HTTP response code and headers from the
  3409  	// server.
  3410  	googleapi.ServerResponse `json:"-"`
  3411  
  3412  	// ForceSendFields is a list of field names (e.g. "Done") to
  3413  	// unconditionally include in API requests. By default, fields with
  3414  	// empty values are omitted from API requests. However, any non-pointer,
  3415  	// non-interface field appearing in ForceSendFields will be sent to the
  3416  	// server regardless of whether the field is empty or not. This may be
  3417  	// used to include empty fields in Patch requests.
  3418  	ForceSendFields []string `json:"-"`
  3419  
  3420  	// NullFields is a list of field names (e.g. "Done") to include in API
  3421  	// requests with the JSON null value. By default, fields with empty
  3422  	// values are omitted from API requests. However, any field with an
  3423  	// empty value appearing in NullFields will be sent to the server as
  3424  	// null. It is an error if a field in this list has a non-empty value.
  3425  	// This may be used to include null fields in Patch requests.
  3426  	NullFields []string `json:"-"`
  3427  }
  3428  
  3429  func (s *GoogleLongrunningOperation) MarshalJSON() ([]byte, error) {
  3430  	type NoMethod GoogleLongrunningOperation
  3431  	raw := NoMethod(*s)
  3432  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3433  }
  3434  
  3435  // GoogleProtobufEmpty: A generic empty message that you can re-use to
  3436  // avoid defining duplicated empty messages in your APIs. A typical
  3437  // example is to use it as the request or the response type of an API
  3438  // method. For instance: service Foo { rpc Bar(google.protobuf.Empty)
  3439  // returns (google.protobuf.Empty); } The JSON representation for
  3440  // `Empty` is empty JSON object `{}`.
  3441  type GoogleProtobufEmpty struct {
  3442  	// ServerResponse contains the HTTP response code and headers from the
  3443  	// server.
  3444  	googleapi.ServerResponse `json:"-"`
  3445  }
  3446  
  3447  // GoogleRpcStatus: The `Status` type defines a logical error model that
  3448  // is suitable for different programming environments, including REST
  3449  // APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each
  3450  // `Status` message contains three pieces of data: error code, error
  3451  // message, and error details. You can find out more about this error
  3452  // model and how to work with it in the API Design Guide
  3453  // (https://cloud.google.com/apis/design/errors).
  3454  type GoogleRpcStatus struct {
  3455  	// Code: The status code, which should be an enum value of
  3456  	// google.rpc.Code.
  3457  	Code int64 `json:"code,omitempty"`
  3458  
  3459  	// Details: A list of messages that carry the error details. There is a
  3460  	// common set of message types for APIs to use.
  3461  	Details []googleapi.RawMessage `json:"details,omitempty"`
  3462  
  3463  	// Message: A developer-facing error message, which should be in
  3464  	// English. Any user-facing error message should be localized and sent
  3465  	// in the google.rpc.Status.details field, or localized by the client.
  3466  	Message string `json:"message,omitempty"`
  3467  
  3468  	// ForceSendFields is a list of field names (e.g. "Code") to
  3469  	// unconditionally include in API requests. By default, fields with
  3470  	// empty values are omitted from API requests. However, any non-pointer,
  3471  	// non-interface field appearing in ForceSendFields will be sent to the
  3472  	// server regardless of whether the field is empty or not. This may be
  3473  	// used to include empty fields in Patch requests.
  3474  	ForceSendFields []string `json:"-"`
  3475  
  3476  	// NullFields is a list of field names (e.g. "Code") to include in API
  3477  	// requests with the JSON null value. By default, fields with empty
  3478  	// values are omitted from API requests. However, any field with an
  3479  	// empty value appearing in NullFields will be sent to the server as
  3480  	// null. It is an error if a field in this list has a non-empty value.
  3481  	// This may be used to include null fields in Patch requests.
  3482  	NullFields []string `json:"-"`
  3483  }
  3484  
  3485  func (s *GoogleRpcStatus) MarshalJSON() ([]byte, error) {
  3486  	type NoMethod GoogleRpcStatus
  3487  	raw := NoMethod(*s)
  3488  	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
  3489  }
  3490  
  3491  // method id "remotebuildexecution.media.download":
  3492  
  3493  type MediaDownloadCall struct {
  3494  	s            *Service
  3495  	resourceName string
  3496  	urlParams_   gensupport.URLParams
  3497  	ifNoneMatch_ string
  3498  	ctx_         context.Context
  3499  	header_      http.Header
  3500  }
  3501  
  3502  // Download: Downloads media. Download is supported on the URI
  3503  // `/v1/media/{+name}?alt=media`.
  3504  //
  3505  //   - resourceName: Name of the media that is being downloaded. See
  3506  //     ReadRequest.resource_name.
  3507  func (r *MediaService) Download(resourceName string) *MediaDownloadCall {
  3508  	c := &MediaDownloadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3509  	c.resourceName = resourceName
  3510  	return c
  3511  }
  3512  
  3513  // Fields allows partial responses to be retrieved. See
  3514  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  3515  // for more information.
  3516  func (c *MediaDownloadCall) Fields(s ...googleapi.Field) *MediaDownloadCall {
  3517  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3518  	return c
  3519  }
  3520  
  3521  // IfNoneMatch sets the optional parameter which makes the operation
  3522  // fail if the object's ETag matches the given value. This is useful for
  3523  // getting updates only after the object has changed since the last
  3524  // request. Use googleapi.IsNotModified to check whether the response
  3525  // error from Do is the result of In-None-Match.
  3526  func (c *MediaDownloadCall) IfNoneMatch(entityTag string) *MediaDownloadCall {
  3527  	c.ifNoneMatch_ = entityTag
  3528  	return c
  3529  }
  3530  
  3531  // Context sets the context to be used in this call's Do and Download
  3532  // methods. Any pending HTTP request will be aborted if the provided
  3533  // context is canceled.
  3534  func (c *MediaDownloadCall) Context(ctx context.Context) *MediaDownloadCall {
  3535  	c.ctx_ = ctx
  3536  	return c
  3537  }
  3538  
  3539  // Header returns an http.Header that can be modified by the caller to
  3540  // add HTTP headers to the request.
  3541  func (c *MediaDownloadCall) Header() http.Header {
  3542  	if c.header_ == nil {
  3543  		c.header_ = make(http.Header)
  3544  	}
  3545  	return c.header_
  3546  }
  3547  
  3548  func (c *MediaDownloadCall) doRequest(alt string) (*http.Response, error) {
  3549  	reqHeaders := make(http.Header)
  3550  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210721")
  3551  	for k, v := range c.header_ {
  3552  		reqHeaders[k] = v
  3553  	}
  3554  	reqHeaders.Set("User-Agent", c.s.userAgent())
  3555  	if c.ifNoneMatch_ != "" {
  3556  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3557  	}
  3558  	var body io.Reader = nil
  3559  	c.urlParams_.Set("alt", alt)
  3560  	c.urlParams_.Set("prettyPrint", "false")
  3561  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/media/{+resourceName}")
  3562  	urls += "?" + c.urlParams_.Encode()
  3563  	req, err := http.NewRequest("GET", urls, body)
  3564  	if err != nil {
  3565  		return nil, err
  3566  	}
  3567  	req.Header = reqHeaders
  3568  	googleapi.Expand(req.URL, map[string]string{
  3569  		"resourceName": c.resourceName,
  3570  	})
  3571  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3572  }
  3573  
  3574  // Download fetches the API endpoint's "media" value, instead of the normal
  3575  // API response value. If the returned error is nil, the Response is guaranteed to
  3576  // have a 2xx status code. Callers must close the Response.Body as usual.
  3577  func (c *MediaDownloadCall) Download(opts ...googleapi.CallOption) (*http.Response, error) {
  3578  	gensupport.SetOptions(c.urlParams_, opts...)
  3579  	res, err := c.doRequest("media")
  3580  	if err != nil {
  3581  		return nil, err
  3582  	}
  3583  	if err := googleapi.CheckResponse(res); err != nil {
  3584  		res.Body.Close()
  3585  		return nil, err
  3586  	}
  3587  	return res, nil
  3588  }
  3589  
  3590  // Do executes the "remotebuildexecution.media.download" call.
  3591  // Exactly one of *GoogleBytestreamMedia or error will be non-nil. Any
  3592  // non-2xx status code is an error. Response headers are in either
  3593  // *GoogleBytestreamMedia.ServerResponse.Header or (if a response was
  3594  // returned at all) in error.(*googleapi.Error).Header. Use
  3595  // googleapi.IsNotModified to check whether the returned error was
  3596  // because http.StatusNotModified was returned.
  3597  func (c *MediaDownloadCall) Do(opts ...googleapi.CallOption) (*GoogleBytestreamMedia, error) {
  3598  	gensupport.SetOptions(c.urlParams_, opts...)
  3599  	res, err := c.doRequest("json")
  3600  	if res != nil && res.StatusCode == http.StatusNotModified {
  3601  		if res.Body != nil {
  3602  			res.Body.Close()
  3603  		}
  3604  		return nil, &googleapi.Error{
  3605  			Code:   res.StatusCode,
  3606  			Header: res.Header,
  3607  		}
  3608  	}
  3609  	if err != nil {
  3610  		return nil, err
  3611  	}
  3612  	defer googleapi.CloseBody(res)
  3613  	if err := googleapi.CheckResponse(res); err != nil {
  3614  		return nil, err
  3615  	}
  3616  	ret := &GoogleBytestreamMedia{
  3617  		ServerResponse: googleapi.ServerResponse{
  3618  			Header:         res.Header,
  3619  			HTTPStatusCode: res.StatusCode,
  3620  		},
  3621  	}
  3622  	target := &ret
  3623  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3624  		return nil, err
  3625  	}
  3626  	return ret, nil
  3627  	// {
  3628  	//   "description": "Downloads media. Download is supported on the URI `/v1/media/{+name}?alt=media`.",
  3629  	//   "flatPath": "v1/media/{mediaId}",
  3630  	//   "httpMethod": "GET",
  3631  	//   "id": "remotebuildexecution.media.download",
  3632  	//   "parameterOrder": [
  3633  	//     "resourceName"
  3634  	//   ],
  3635  	//   "parameters": {
  3636  	//     "resourceName": {
  3637  	//       "description": "Name of the media that is being downloaded. See ReadRequest.resource_name.",
  3638  	//       "location": "path",
  3639  	//       "pattern": "^.*$",
  3640  	//       "required": true,
  3641  	//       "type": "string"
  3642  	//     }
  3643  	//   },
  3644  	//   "path": "v1/media/{+resourceName}",
  3645  	//   "response": {
  3646  	//     "$ref": "GoogleBytestreamMedia"
  3647  	//   },
  3648  	//   "scopes": [
  3649  	//     "https://www.googleapis.com/auth/cloud-platform"
  3650  	//   ],
  3651  	//   "supportsMediaDownload": true
  3652  	// }
  3653  
  3654  }
  3655  
  3656  // method id "remotebuildexecution.media.upload":
  3657  
  3658  type MediaUploadCall struct {
  3659  	s                     *Service
  3660  	resourceName          string
  3661  	googlebytestreammedia *GoogleBytestreamMedia
  3662  	urlParams_            gensupport.URLParams
  3663  	mediaInfo_            *gensupport.MediaInfo
  3664  	ctx_                  context.Context
  3665  	header_               http.Header
  3666  }
  3667  
  3668  // Upload: Uploads media. Upload is supported on the URI
  3669  // `/upload/v1/media/{+name}`.
  3670  //
  3671  //   - resourceName: Name of the media that is being downloaded. See
  3672  //     ReadRequest.resource_name.
  3673  func (r *MediaService) Upload(resourceName string, googlebytestreammedia *GoogleBytestreamMedia) *MediaUploadCall {
  3674  	c := &MediaUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3675  	c.resourceName = resourceName
  3676  	c.googlebytestreammedia = googlebytestreammedia
  3677  	return c
  3678  }
  3679  
  3680  // Media specifies the media to upload in one or more chunks. The chunk
  3681  // size may be controlled by supplying a MediaOption generated by
  3682  // googleapi.ChunkSize. The chunk size defaults to
  3683  // googleapi.DefaultUploadChunkSize.The Content-Type header used in the
  3684  // upload request will be determined by sniffing the contents of r,
  3685  // unless a MediaOption generated by googleapi.ContentType is
  3686  // supplied.
  3687  // At most one of Media and ResumableMedia may be set.
  3688  func (c *MediaUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *MediaUploadCall {
  3689  	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
  3690  	return c
  3691  }
  3692  
  3693  // ResumableMedia specifies the media to upload in chunks and can be
  3694  // canceled with ctx.
  3695  //
  3696  // Deprecated: use Media instead.
  3697  //
  3698  // At most one of Media and ResumableMedia may be set. mediaType
  3699  // identifies the MIME media type of the upload, such as "image/png". If
  3700  // mediaType is "", it will be auto-detected. The provided ctx will
  3701  // supersede any context previously provided to the Context method.
  3702  func (c *MediaUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *MediaUploadCall {
  3703  	c.ctx_ = ctx
  3704  	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
  3705  	return c
  3706  }
  3707  
  3708  // ProgressUpdater provides a callback function that will be called
  3709  // after every chunk. It should be a low-latency function in order to
  3710  // not slow down the upload operation. This should only be called when
  3711  // using ResumableMedia (as opposed to Media).
  3712  func (c *MediaUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *MediaUploadCall {
  3713  	c.mediaInfo_.SetProgressUpdater(pu)
  3714  	return c
  3715  }
  3716  
  3717  // Fields allows partial responses to be retrieved. See
  3718  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  3719  // for more information.
  3720  func (c *MediaUploadCall) Fields(s ...googleapi.Field) *MediaUploadCall {
  3721  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3722  	return c
  3723  }
  3724  
  3725  // Context sets the context to be used in this call's Do method. Any
  3726  // pending HTTP request will be aborted if the provided context is
  3727  // canceled.
  3728  // This context will supersede any context previously provided to the
  3729  // ResumableMedia method.
  3730  func (c *MediaUploadCall) Context(ctx context.Context) *MediaUploadCall {
  3731  	c.ctx_ = ctx
  3732  	return c
  3733  }
  3734  
  3735  // Header returns an http.Header that can be modified by the caller to
  3736  // add HTTP headers to the request.
  3737  func (c *MediaUploadCall) Header() http.Header {
  3738  	if c.header_ == nil {
  3739  		c.header_ = make(http.Header)
  3740  	}
  3741  	return c.header_
  3742  }
  3743  
  3744  func (c *MediaUploadCall) doRequest(alt string) (*http.Response, error) {
  3745  	reqHeaders := make(http.Header)
  3746  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210721")
  3747  	for k, v := range c.header_ {
  3748  		reqHeaders[k] = v
  3749  	}
  3750  	reqHeaders.Set("User-Agent", c.s.userAgent())
  3751  	var body io.Reader = nil
  3752  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlebytestreammedia)
  3753  	if err != nil {
  3754  		return nil, err
  3755  	}
  3756  	reqHeaders.Set("Content-Type", "application/json")
  3757  	c.urlParams_.Set("alt", alt)
  3758  	c.urlParams_.Set("prettyPrint", "false")
  3759  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/media/{+resourceName}")
  3760  	if c.mediaInfo_ != nil {
  3761  		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/v1/media/{+resourceName}")
  3762  		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
  3763  	}
  3764  	if body == nil {
  3765  		body = new(bytes.Buffer)
  3766  		reqHeaders.Set("Content-Type", "application/json")
  3767  	}
  3768  	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
  3769  	defer cleanup()
  3770  	urls += "?" + c.urlParams_.Encode()
  3771  	req, err := http.NewRequest("POST", urls, body)
  3772  	if err != nil {
  3773  		return nil, err
  3774  	}
  3775  	req.Header = reqHeaders
  3776  	req.GetBody = getBody
  3777  	googleapi.Expand(req.URL, map[string]string{
  3778  		"resourceName": c.resourceName,
  3779  	})
  3780  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3781  }
  3782  
  3783  // Do executes the "remotebuildexecution.media.upload" call.
  3784  // Exactly one of *GoogleBytestreamMedia or error will be non-nil. Any
  3785  // non-2xx status code is an error. Response headers are in either
  3786  // *GoogleBytestreamMedia.ServerResponse.Header or (if a response was
  3787  // returned at all) in error.(*googleapi.Error).Header. Use
  3788  // googleapi.IsNotModified to check whether the returned error was
  3789  // because http.StatusNotModified was returned.
  3790  func (c *MediaUploadCall) Do(opts ...googleapi.CallOption) (*GoogleBytestreamMedia, error) {
  3791  	gensupport.SetOptions(c.urlParams_, opts...)
  3792  	res, err := c.doRequest("json")
  3793  	if res != nil && res.StatusCode == http.StatusNotModified {
  3794  		if res.Body != nil {
  3795  			res.Body.Close()
  3796  		}
  3797  		return nil, &googleapi.Error{
  3798  			Code:   res.StatusCode,
  3799  			Header: res.Header,
  3800  		}
  3801  	}
  3802  	if err != nil {
  3803  		return nil, err
  3804  	}
  3805  	defer googleapi.CloseBody(res)
  3806  	if err := googleapi.CheckResponse(res); err != nil {
  3807  		return nil, err
  3808  	}
  3809  	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
  3810  	if rx != nil {
  3811  		rx.Client = c.s.client
  3812  		rx.UserAgent = c.s.userAgent()
  3813  		ctx := c.ctx_
  3814  		if ctx == nil {
  3815  			ctx = context.TODO()
  3816  		}
  3817  		res, err = rx.Upload(ctx)
  3818  		if err != nil {
  3819  			return nil, err
  3820  		}
  3821  		defer res.Body.Close()
  3822  		if err := googleapi.CheckResponse(res); err != nil {
  3823  			return nil, err
  3824  		}
  3825  	}
  3826  	ret := &GoogleBytestreamMedia{
  3827  		ServerResponse: googleapi.ServerResponse{
  3828  			Header:         res.Header,
  3829  			HTTPStatusCode: res.StatusCode,
  3830  		},
  3831  	}
  3832  	target := &ret
  3833  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3834  		return nil, err
  3835  	}
  3836  	return ret, nil
  3837  	// {
  3838  	//   "description": "Uploads media. Upload is supported on the URI `/upload/v1/media/{+name}`.",
  3839  	//   "flatPath": "v1/media/{mediaId}",
  3840  	//   "httpMethod": "POST",
  3841  	//   "id": "remotebuildexecution.media.upload",
  3842  	//   "mediaUpload": {
  3843  	//     "accept": [
  3844  	//       "*/*"
  3845  	//     ],
  3846  	//     "protocols": {
  3847  	//       "simple": {
  3848  	//         "multipart": true,
  3849  	//         "path": "/upload/v1/media/{+resourceName}"
  3850  	//       }
  3851  	//     }
  3852  	//   },
  3853  	//   "parameterOrder": [
  3854  	//     "resourceName"
  3855  	//   ],
  3856  	//   "parameters": {
  3857  	//     "resourceName": {
  3858  	//       "description": "Name of the media that is being downloaded. See ReadRequest.resource_name.",
  3859  	//       "location": "path",
  3860  	//       "pattern": "^.*$",
  3861  	//       "required": true,
  3862  	//       "type": "string"
  3863  	//     }
  3864  	//   },
  3865  	//   "path": "v1/media/{+resourceName}",
  3866  	//   "request": {
  3867  	//     "$ref": "GoogleBytestreamMedia"
  3868  	//   },
  3869  	//   "response": {
  3870  	//     "$ref": "GoogleBytestreamMedia"
  3871  	//   },
  3872  	//   "scopes": [
  3873  	//     "https://www.googleapis.com/auth/cloud-platform"
  3874  	//   ],
  3875  	//   "supportsMediaUpload": true
  3876  	// }
  3877  
  3878  }
  3879  
  3880  // method id "remotebuildexecution.operations.cancel":
  3881  
  3882  type OperationsCancelCall struct {
  3883  	s                                       *Service
  3884  	name                                    string
  3885  	googlelongrunningcanceloperationrequest *GoogleLongrunningCancelOperationRequest
  3886  	urlParams_                              gensupport.URLParams
  3887  	ctx_                                    context.Context
  3888  	header_                                 http.Header
  3889  }
  3890  
  3891  // Cancel: Starts asynchronous cancellation on a long-running operation.
  3892  // The server makes a best effort to cancel the operation, but success
  3893  // is not guaranteed. If the server doesn't support this method, it
  3894  // returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use
  3895  // Operations.GetOperation or other methods to check whether the
  3896  // cancellation succeeded or whether the operation completed despite
  3897  // cancellation. On successful cancellation, the operation is not
  3898  // deleted; instead, it becomes an operation with an Operation.error
  3899  // value with a google.rpc.Status.code of 1, corresponding to
  3900  // `Code.CANCELLED`.
  3901  //
  3902  // - name: The name of the operation resource to be cancelled.
  3903  func (r *OperationsService) Cancel(name string, googlelongrunningcanceloperationrequest *GoogleLongrunningCancelOperationRequest) *OperationsCancelCall {
  3904  	c := &OperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3905  	c.name = name
  3906  	c.googlelongrunningcanceloperationrequest = googlelongrunningcanceloperationrequest
  3907  	return c
  3908  }
  3909  
  3910  // Fields allows partial responses to be retrieved. See
  3911  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  3912  // for more information.
  3913  func (c *OperationsCancelCall) Fields(s ...googleapi.Field) *OperationsCancelCall {
  3914  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3915  	return c
  3916  }
  3917  
  3918  // Context sets the context to be used in this call's Do method. Any
  3919  // pending HTTP request will be aborted if the provided context is
  3920  // canceled.
  3921  func (c *OperationsCancelCall) Context(ctx context.Context) *OperationsCancelCall {
  3922  	c.ctx_ = ctx
  3923  	return c
  3924  }
  3925  
  3926  // Header returns an http.Header that can be modified by the caller to
  3927  // add HTTP headers to the request.
  3928  func (c *OperationsCancelCall) Header() http.Header {
  3929  	if c.header_ == nil {
  3930  		c.header_ = make(http.Header)
  3931  	}
  3932  	return c.header_
  3933  }
  3934  
  3935  func (c *OperationsCancelCall) doRequest(alt string) (*http.Response, error) {
  3936  	reqHeaders := make(http.Header)
  3937  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210721")
  3938  	for k, v := range c.header_ {
  3939  		reqHeaders[k] = v
  3940  	}
  3941  	reqHeaders.Set("User-Agent", c.s.userAgent())
  3942  	var body io.Reader = nil
  3943  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlelongrunningcanceloperationrequest)
  3944  	if err != nil {
  3945  		return nil, err
  3946  	}
  3947  	reqHeaders.Set("Content-Type", "application/json")
  3948  	c.urlParams_.Set("alt", alt)
  3949  	c.urlParams_.Set("prettyPrint", "false")
  3950  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
  3951  	urls += "?" + c.urlParams_.Encode()
  3952  	req, err := http.NewRequest("POST", urls, body)
  3953  	if err != nil {
  3954  		return nil, err
  3955  	}
  3956  	req.Header = reqHeaders
  3957  	googleapi.Expand(req.URL, map[string]string{
  3958  		"name": c.name,
  3959  	})
  3960  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3961  }
  3962  
  3963  // Do executes the "remotebuildexecution.operations.cancel" call.
  3964  // Exactly one of *GoogleProtobufEmpty or error will be non-nil. Any
  3965  // non-2xx status code is an error. Response headers are in either
  3966  // *GoogleProtobufEmpty.ServerResponse.Header or (if a response was
  3967  // returned at all) in error.(*googleapi.Error).Header. Use
  3968  // googleapi.IsNotModified to check whether the returned error was
  3969  // because http.StatusNotModified was returned.
  3970  func (c *OperationsCancelCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
  3971  	gensupport.SetOptions(c.urlParams_, opts...)
  3972  	res, err := c.doRequest("json")
  3973  	if res != nil && res.StatusCode == http.StatusNotModified {
  3974  		if res.Body != nil {
  3975  			res.Body.Close()
  3976  		}
  3977  		return nil, &googleapi.Error{
  3978  			Code:   res.StatusCode,
  3979  			Header: res.Header,
  3980  		}
  3981  	}
  3982  	if err != nil {
  3983  		return nil, err
  3984  	}
  3985  	defer googleapi.CloseBody(res)
  3986  	if err := googleapi.CheckResponse(res); err != nil {
  3987  		return nil, err
  3988  	}
  3989  	ret := &GoogleProtobufEmpty{
  3990  		ServerResponse: googleapi.ServerResponse{
  3991  			Header:         res.Header,
  3992  			HTTPStatusCode: res.StatusCode,
  3993  		},
  3994  	}
  3995  	target := &ret
  3996  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3997  		return nil, err
  3998  	}
  3999  	return ret, nil
  4000  	// {
  4001  	//   "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
  4002  	//   "flatPath": "v1/operations/{operationsId}:cancel",
  4003  	//   "httpMethod": "POST",
  4004  	//   "id": "remotebuildexecution.operations.cancel",
  4005  	//   "parameterOrder": [
  4006  	//     "name"
  4007  	//   ],
  4008  	//   "parameters": {
  4009  	//     "name": {
  4010  	//       "description": "The name of the operation resource to be cancelled.",
  4011  	//       "location": "path",
  4012  	//       "pattern": "^operations/.*$",
  4013  	//       "required": true,
  4014  	//       "type": "string"
  4015  	//     }
  4016  	//   },
  4017  	//   "path": "v1/{+name}:cancel",
  4018  	//   "request": {
  4019  	//     "$ref": "GoogleLongrunningCancelOperationRequest"
  4020  	//   },
  4021  	//   "response": {
  4022  	//     "$ref": "GoogleProtobufEmpty"
  4023  	//   },
  4024  	//   "scopes": [
  4025  	//     "https://www.googleapis.com/auth/cloud-platform"
  4026  	//   ]
  4027  	// }
  4028  
  4029  }
  4030  
  4031  // method id "remotebuildexecution.operations.delete":
  4032  
  4033  type OperationsDeleteCall struct {
  4034  	s          *Service
  4035  	name       string
  4036  	urlParams_ gensupport.URLParams
  4037  	ctx_       context.Context
  4038  	header_    http.Header
  4039  }
  4040  
  4041  // Delete: Deletes a long-running operation. This method indicates that
  4042  // the client is no longer interested in the operation result. It does
  4043  // not cancel the operation. If the server doesn't support this method,
  4044  // it returns `google.rpc.Code.UNIMPLEMENTED`.
  4045  //
  4046  // - name: The name of the operation resource to be deleted.
  4047  func (r *OperationsService) Delete(name string) *OperationsDeleteCall {
  4048  	c := &OperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4049  	c.name = name
  4050  	return c
  4051  }
  4052  
  4053  // Fields allows partial responses to be retrieved. See
  4054  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  4055  // for more information.
  4056  func (c *OperationsDeleteCall) Fields(s ...googleapi.Field) *OperationsDeleteCall {
  4057  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4058  	return c
  4059  }
  4060  
  4061  // Context sets the context to be used in this call's Do method. Any
  4062  // pending HTTP request will be aborted if the provided context is
  4063  // canceled.
  4064  func (c *OperationsDeleteCall) Context(ctx context.Context) *OperationsDeleteCall {
  4065  	c.ctx_ = ctx
  4066  	return c
  4067  }
  4068  
  4069  // Header returns an http.Header that can be modified by the caller to
  4070  // add HTTP headers to the request.
  4071  func (c *OperationsDeleteCall) Header() http.Header {
  4072  	if c.header_ == nil {
  4073  		c.header_ = make(http.Header)
  4074  	}
  4075  	return c.header_
  4076  }
  4077  
  4078  func (c *OperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
  4079  	reqHeaders := make(http.Header)
  4080  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210721")
  4081  	for k, v := range c.header_ {
  4082  		reqHeaders[k] = v
  4083  	}
  4084  	reqHeaders.Set("User-Agent", c.s.userAgent())
  4085  	var body io.Reader = nil
  4086  	c.urlParams_.Set("alt", alt)
  4087  	c.urlParams_.Set("prettyPrint", "false")
  4088  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  4089  	urls += "?" + c.urlParams_.Encode()
  4090  	req, err := http.NewRequest("DELETE", urls, body)
  4091  	if err != nil {
  4092  		return nil, err
  4093  	}
  4094  	req.Header = reqHeaders
  4095  	googleapi.Expand(req.URL, map[string]string{
  4096  		"name": c.name,
  4097  	})
  4098  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4099  }
  4100  
  4101  // Do executes the "remotebuildexecution.operations.delete" call.
  4102  // Exactly one of *GoogleProtobufEmpty or error will be non-nil. Any
  4103  // non-2xx status code is an error. Response headers are in either
  4104  // *GoogleProtobufEmpty.ServerResponse.Header or (if a response was
  4105  // returned at all) in error.(*googleapi.Error).Header. Use
  4106  // googleapi.IsNotModified to check whether the returned error was
  4107  // because http.StatusNotModified was returned.
  4108  func (c *OperationsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
  4109  	gensupport.SetOptions(c.urlParams_, opts...)
  4110  	res, err := c.doRequest("json")
  4111  	if res != nil && res.StatusCode == http.StatusNotModified {
  4112  		if res.Body != nil {
  4113  			res.Body.Close()
  4114  		}
  4115  		return nil, &googleapi.Error{
  4116  			Code:   res.StatusCode,
  4117  			Header: res.Header,
  4118  		}
  4119  	}
  4120  	if err != nil {
  4121  		return nil, err
  4122  	}
  4123  	defer googleapi.CloseBody(res)
  4124  	if err := googleapi.CheckResponse(res); err != nil {
  4125  		return nil, err
  4126  	}
  4127  	ret := &GoogleProtobufEmpty{
  4128  		ServerResponse: googleapi.ServerResponse{
  4129  			Header:         res.Header,
  4130  			HTTPStatusCode: res.StatusCode,
  4131  		},
  4132  	}
  4133  	target := &ret
  4134  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4135  		return nil, err
  4136  	}
  4137  	return ret, nil
  4138  	// {
  4139  	//   "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
  4140  	//   "flatPath": "v1/operations/{operationsId}",
  4141  	//   "httpMethod": "DELETE",
  4142  	//   "id": "remotebuildexecution.operations.delete",
  4143  	//   "parameterOrder": [
  4144  	//     "name"
  4145  	//   ],
  4146  	//   "parameters": {
  4147  	//     "name": {
  4148  	//       "description": "The name of the operation resource to be deleted.",
  4149  	//       "location": "path",
  4150  	//       "pattern": "^operations/.*$",
  4151  	//       "required": true,
  4152  	//       "type": "string"
  4153  	//     }
  4154  	//   },
  4155  	//   "path": "v1/{+name}",
  4156  	//   "response": {
  4157  	//     "$ref": "GoogleProtobufEmpty"
  4158  	//   },
  4159  	//   "scopes": [
  4160  	//     "https://www.googleapis.com/auth/cloud-platform"
  4161  	//   ]
  4162  	// }
  4163  
  4164  }
  4165  
  4166  // method id "remotebuildexecution.operations.list":
  4167  
  4168  type OperationsListCall struct {
  4169  	s            *Service
  4170  	name         string
  4171  	urlParams_   gensupport.URLParams
  4172  	ifNoneMatch_ string
  4173  	ctx_         context.Context
  4174  	header_      http.Header
  4175  }
  4176  
  4177  // List: Lists operations that match the specified filter in the
  4178  // request. If the server doesn't support this method, it returns
  4179  // `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to
  4180  // override the binding to use different resource name schemes, such as
  4181  // `users/*/operations`. To override the binding, API services can add a
  4182  // binding such as "/v1/{name=users/*}/operations" to their service
  4183  // configuration. For backwards compatibility, the default name includes
  4184  // the operations collection id, however overriding users must ensure
  4185  // the name binding is the parent resource, without the operations
  4186  // collection id.
  4187  //
  4188  // - name: The name of the operation's parent resource.
  4189  func (r *OperationsService) List(name string) *OperationsListCall {
  4190  	c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4191  	c.name = name
  4192  	return c
  4193  }
  4194  
  4195  // Filter sets the optional parameter "filter": The standard list
  4196  // filter.
  4197  func (c *OperationsListCall) Filter(filter string) *OperationsListCall {
  4198  	c.urlParams_.Set("filter", filter)
  4199  	return c
  4200  }
  4201  
  4202  // PageSize sets the optional parameter "pageSize": The standard list
  4203  // page size.
  4204  func (c *OperationsListCall) PageSize(pageSize int64) *OperationsListCall {
  4205  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  4206  	return c
  4207  }
  4208  
  4209  // PageToken sets the optional parameter "pageToken": The standard list
  4210  // page token.
  4211  func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall {
  4212  	c.urlParams_.Set("pageToken", pageToken)
  4213  	return c
  4214  }
  4215  
  4216  // Fields allows partial responses to be retrieved. See
  4217  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  4218  // for more information.
  4219  func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall {
  4220  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4221  	return c
  4222  }
  4223  
  4224  // IfNoneMatch sets the optional parameter which makes the operation
  4225  // fail if the object's ETag matches the given value. This is useful for
  4226  // getting updates only after the object has changed since the last
  4227  // request. Use googleapi.IsNotModified to check whether the response
  4228  // error from Do is the result of In-None-Match.
  4229  func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall {
  4230  	c.ifNoneMatch_ = entityTag
  4231  	return c
  4232  }
  4233  
  4234  // Context sets the context to be used in this call's Do method. Any
  4235  // pending HTTP request will be aborted if the provided context is
  4236  // canceled.
  4237  func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall {
  4238  	c.ctx_ = ctx
  4239  	return c
  4240  }
  4241  
  4242  // Header returns an http.Header that can be modified by the caller to
  4243  // add HTTP headers to the request.
  4244  func (c *OperationsListCall) Header() http.Header {
  4245  	if c.header_ == nil {
  4246  		c.header_ = make(http.Header)
  4247  	}
  4248  	return c.header_
  4249  }
  4250  
  4251  func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) {
  4252  	reqHeaders := make(http.Header)
  4253  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210721")
  4254  	for k, v := range c.header_ {
  4255  		reqHeaders[k] = v
  4256  	}
  4257  	reqHeaders.Set("User-Agent", c.s.userAgent())
  4258  	if c.ifNoneMatch_ != "" {
  4259  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4260  	}
  4261  	var body io.Reader = nil
  4262  	c.urlParams_.Set("alt", alt)
  4263  	c.urlParams_.Set("prettyPrint", "false")
  4264  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  4265  	urls += "?" + c.urlParams_.Encode()
  4266  	req, err := http.NewRequest("GET", urls, body)
  4267  	if err != nil {
  4268  		return nil, err
  4269  	}
  4270  	req.Header = reqHeaders
  4271  	googleapi.Expand(req.URL, map[string]string{
  4272  		"name": c.name,
  4273  	})
  4274  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4275  }
  4276  
  4277  // Do executes the "remotebuildexecution.operations.list" call.
  4278  // Exactly one of *GoogleLongrunningListOperationsResponse or error will
  4279  // be non-nil. Any non-2xx status code is an error. Response headers are
  4280  // in either
  4281  // *GoogleLongrunningListOperationsResponse.ServerResponse.Header or (if
  4282  // a response was returned at all) in error.(*googleapi.Error).Header.
  4283  // Use googleapi.IsNotModified to check whether the returned error was
  4284  // because http.StatusNotModified was returned.
  4285  func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, error) {
  4286  	gensupport.SetOptions(c.urlParams_, opts...)
  4287  	res, err := c.doRequest("json")
  4288  	if res != nil && res.StatusCode == http.StatusNotModified {
  4289  		if res.Body != nil {
  4290  			res.Body.Close()
  4291  		}
  4292  		return nil, &googleapi.Error{
  4293  			Code:   res.StatusCode,
  4294  			Header: res.Header,
  4295  		}
  4296  	}
  4297  	if err != nil {
  4298  		return nil, err
  4299  	}
  4300  	defer googleapi.CloseBody(res)
  4301  	if err := googleapi.CheckResponse(res); err != nil {
  4302  		return nil, err
  4303  	}
  4304  	ret := &GoogleLongrunningListOperationsResponse{
  4305  		ServerResponse: googleapi.ServerResponse{
  4306  			Header:         res.Header,
  4307  			HTTPStatusCode: res.StatusCode,
  4308  		},
  4309  	}
  4310  	target := &ret
  4311  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4312  		return nil, err
  4313  	}
  4314  	return ret, nil
  4315  	// {
  4316  	//   "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.",
  4317  	//   "flatPath": "v1/operations",
  4318  	//   "httpMethod": "GET",
  4319  	//   "id": "remotebuildexecution.operations.list",
  4320  	//   "parameterOrder": [
  4321  	//     "name"
  4322  	//   ],
  4323  	//   "parameters": {
  4324  	//     "filter": {
  4325  	//       "description": "The standard list filter.",
  4326  	//       "location": "query",
  4327  	//       "type": "string"
  4328  	//     },
  4329  	//     "name": {
  4330  	//       "description": "The name of the operation's parent resource.",
  4331  	//       "location": "path",
  4332  	//       "pattern": "^operations$",
  4333  	//       "required": true,
  4334  	//       "type": "string"
  4335  	//     },
  4336  	//     "pageSize": {
  4337  	//       "description": "The standard list page size.",
  4338  	//       "format": "int32",
  4339  	//       "location": "query",
  4340  	//       "type": "integer"
  4341  	//     },
  4342  	//     "pageToken": {
  4343  	//       "description": "The standard list page token.",
  4344  	//       "location": "query",
  4345  	//       "type": "string"
  4346  	//     }
  4347  	//   },
  4348  	//   "path": "v1/{+name}",
  4349  	//   "response": {
  4350  	//     "$ref": "GoogleLongrunningListOperationsResponse"
  4351  	//   },
  4352  	//   "scopes": [
  4353  	//     "https://www.googleapis.com/auth/cloud-platform"
  4354  	//   ]
  4355  	// }
  4356  
  4357  }
  4358  
  4359  // Pages invokes f for each page of results.
  4360  // A non-nil error returned from f will halt the iteration.
  4361  // The provided context supersedes any context provided to the Context method.
  4362  func (c *OperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) error) error {
  4363  	c.ctx_ = ctx
  4364  	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
  4365  	for {
  4366  		x, err := c.Do()
  4367  		if err != nil {
  4368  			return err
  4369  		}
  4370  		if err := f(x); err != nil {
  4371  			return err
  4372  		}
  4373  		if x.NextPageToken == "" {
  4374  			return nil
  4375  		}
  4376  		c.PageToken(x.NextPageToken)
  4377  	}
  4378  }
  4379  
  4380  // method id "remotebuildexecution.projects.operations.get":
  4381  
  4382  type ProjectsOperationsGetCall struct {
  4383  	s            *Service
  4384  	name         string
  4385  	urlParams_   gensupport.URLParams
  4386  	ifNoneMatch_ string
  4387  	ctx_         context.Context
  4388  	header_      http.Header
  4389  }
  4390  
  4391  // Get: Gets the latest state of a long-running operation. Clients can
  4392  // use this method to poll the operation result at intervals as
  4393  // recommended by the API service.
  4394  //
  4395  // - name: The name of the operation resource.
  4396  func (r *ProjectsOperationsService) Get(name string) *ProjectsOperationsGetCall {
  4397  	c := &ProjectsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4398  	c.name = name
  4399  	return c
  4400  }
  4401  
  4402  // Fields allows partial responses to be retrieved. See
  4403  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
  4404  // for more information.
  4405  func (c *ProjectsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsOperationsGetCall {
  4406  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4407  	return c
  4408  }
  4409  
  4410  // IfNoneMatch sets the optional parameter which makes the operation
  4411  // fail if the object's ETag matches the given value. This is useful for
  4412  // getting updates only after the object has changed since the last
  4413  // request. Use googleapi.IsNotModified to check whether the response
  4414  // error from Do is the result of In-None-Match.
  4415  func (c *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall {
  4416  	c.ifNoneMatch_ = entityTag
  4417  	return c
  4418  }
  4419  
  4420  // Context sets the context to be used in this call's Do method. Any
  4421  // pending HTTP request will be aborted if the provided context is
  4422  // canceled.
  4423  func (c *ProjectsOperationsGetCall) Context(ctx context.Context) *ProjectsOperationsGetCall {
  4424  	c.ctx_ = ctx
  4425  	return c
  4426  }
  4427  
  4428  // Header returns an http.Header that can be modified by the caller to
  4429  // add HTTP headers to the request.
  4430  func (c *ProjectsOperationsGetCall) Header() http.Header {
  4431  	if c.header_ == nil {
  4432  		c.header_ = make(http.Header)
  4433  	}
  4434  	return c.header_
  4435  }
  4436  
  4437  func (c *ProjectsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
  4438  	reqHeaders := make(http.Header)
  4439  	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210721")
  4440  	for k, v := range c.header_ {
  4441  		reqHeaders[k] = v
  4442  	}
  4443  	reqHeaders.Set("User-Agent", c.s.userAgent())
  4444  	if c.ifNoneMatch_ != "" {
  4445  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4446  	}
  4447  	var body io.Reader = nil
  4448  	c.urlParams_.Set("alt", alt)
  4449  	c.urlParams_.Set("prettyPrint", "false")
  4450  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  4451  	urls += "?" + c.urlParams_.Encode()
  4452  	req, err := http.NewRequest("GET", urls, body)
  4453  	if err != nil {
  4454  		return nil, err
  4455  	}
  4456  	req.Header = reqHeaders
  4457  	googleapi.Expand(req.URL, map[string]string{
  4458  		"name": c.name,
  4459  	})
  4460  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4461  }
  4462  
  4463  // Do executes the "remotebuildexecution.projects.operations.get" call.
  4464  // Exactly one of *GoogleLongrunningOperation or error will be non-nil.
  4465  // Any non-2xx status code is an error. Response headers are in either
  4466  // *GoogleLongrunningOperation.ServerResponse.Header or (if a response
  4467  // was returned at all) in error.(*googleapi.Error).Header. Use
  4468  // googleapi.IsNotModified to check whether the returned error was
  4469  // because http.StatusNotModified was returned.
  4470  func (c *ProjectsOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
  4471  	gensupport.SetOptions(c.urlParams_, opts...)
  4472  	res, err := c.doRequest("json")
  4473  	if res != nil && res.StatusCode == http.StatusNotModified {
  4474  		if res.Body != nil {
  4475  			res.Body.Close()
  4476  		}
  4477  		return nil, &googleapi.Error{
  4478  			Code:   res.StatusCode,
  4479  			Header: res.Header,
  4480  		}
  4481  	}
  4482  	if err != nil {
  4483  		return nil, err
  4484  	}
  4485  	defer googleapi.CloseBody(res)
  4486  	if err := googleapi.CheckResponse(res); err != nil {
  4487  		return nil, err
  4488  	}
  4489  	ret := &GoogleLongrunningOperation{
  4490  		ServerResponse: googleapi.ServerResponse{
  4491  			Header:         res.Header,
  4492  			HTTPStatusCode: res.StatusCode,
  4493  		},
  4494  	}
  4495  	target := &ret
  4496  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4497  		return nil, err
  4498  	}
  4499  	return ret, nil
  4500  	// {
  4501  	//   "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.",
  4502  	//   "flatPath": "v1/projects/{projectsId}/operations/{operationsId}",
  4503  	//   "httpMethod": "GET",
  4504  	//   "id": "remotebuildexecution.projects.operations.get",
  4505  	//   "parameterOrder": [
  4506  	//     "name"
  4507  	//   ],
  4508  	//   "parameters": {
  4509  	//     "name": {
  4510  	//       "description": "The name of the operation resource.",
  4511  	//       "location": "path",
  4512  	//       "pattern": "^projects/[^/]+/operations/[^/]+$",
  4513  	//       "required": true,
  4514  	//       "type": "string"
  4515  	//     }
  4516  	//   },
  4517  	//   "path": "v1/{+name}",
  4518  	//   "response": {
  4519  	//     "$ref": "GoogleLongrunningOperation"
  4520  	//   },
  4521  	//   "scopes": [
  4522  	//     "https://www.googleapis.com/auth/cloud-platform"
  4523  	//   ]
  4524  	// }
  4525  
  4526  }
  4527  

View as plain text