...

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

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

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

View as plain text