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