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