...

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

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

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

View as plain text