1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.devtools.resultstore.v2; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/devtools/resultstore/v2/action.proto"; 24import "google/devtools/resultstore/v2/configuration.proto"; 25import "google/devtools/resultstore/v2/configured_target.proto"; 26import "google/devtools/resultstore/v2/download_metadata.proto"; 27import "google/devtools/resultstore/v2/file_set.proto"; 28import "google/devtools/resultstore/v2/invocation.proto"; 29import "google/devtools/resultstore/v2/target.proto"; 30 31option go_package = "google.golang.org/genproto/googleapis/devtools/resultstore/v2;resultstore"; 32option java_multiple_files = true; 33option java_outer_classname = "ResultStoreDownloadProto"; 34option java_package = "com.google.devtools.resultstore.v2"; 35 36// This is the interface used to download information from the ResultStore 37// database. 38// 39// Clients are encourage to use ExportInvocation for most traffic. 40// 41// Most APIs require setting a response FieldMask via the 'fields' URL query 42// parameter or the X-Goog-FieldMask HTTP/gRPC header. 43service ResultStoreDownload { 44 option (google.api.default_host) = "resultstore.googleapis.com"; 45 option (google.api.oauth_scopes) = 46 "https://www.googleapis.com/auth/cloud-platform"; 47 48 // Exports the invocation with the given name and its child resources. 49 // 50 // The order in which resources are returned is defined as follows, 51 // invocation; download_metadata; configurations; targets interleaving 52 // configured_targets and actions; file_sets. 53 // 54 // - Invocation 55 // - DownloadMetadata 56 // - Configurations 57 // - Targets 58 // └─ ConfiguredTargets 59 // └─Actions 60 // - FileSets 61 // 62 // All child resources will be returned before the next parent 63 // resource is returned. For example, all actions under a configured_target 64 // will be returned before the next configured_target is returned. 65 // The order in which results within a given resource type are returned is 66 // undefined, but stable. 67 // 68 // An error will be reported in the following cases: 69 // - If the invocation is not found. 70 // - If the given invocation name is badly formatted. 71 // - If no field mask was given. 72 rpc ExportInvocation(ExportInvocationRequest) 73 returns (ExportInvocationResponse) { 74 option (google.api.http) = { 75 get: "/v2/{name=invocations/*}:export" 76 }; 77 } 78 79 // Retrieves the invocation with the given name. 80 // 81 // An error will be reported in the following cases: 82 // - If the invocation is not found. 83 // - If the given invocation name is badly formatted. 84 // - If no field mask was given. 85 rpc GetInvocation(GetInvocationRequest) returns (Invocation) { 86 option (google.api.http) = { 87 get: "/v2/{name=invocations/*}" 88 }; 89 option (google.api.method_signature) = "name"; 90 } 91 92 // Searches for invocations matching the given query parameters. Results will 93 // be ordered by timing.start_time with most recent first, but total ordering 94 // of results is not guaranteed when difference in timestamps is very small. 95 // Results may be stale. Results may be omitted. 96 // 97 // 98 // An error will be reported in the following cases: 99 // - If a query string is not provided 100 // - If no field mask was given. 101 rpc SearchInvocations(SearchInvocationsRequest) 102 returns (SearchInvocationsResponse) { 103 option (google.api.http) = { 104 get: "/v2/invocations:search" 105 }; 106 } 107 108 // Retrieves the metadata for an invocation with the given name. 109 // 110 // An error will be reported in the following cases: 111 // - If the invocation is not found. 112 // - If the given invocation name is badly formatted. 113 rpc GetInvocationDownloadMetadata(GetInvocationDownloadMetadataRequest) 114 returns (DownloadMetadata) { 115 option (google.api.http) = { 116 get: "/v2/{name=invocations/*/downloadMetadata}" 117 }; 118 option (google.api.method_signature) = "name"; 119 } 120 121 // Retrieves the configuration with the given name. 122 // 123 // An error will be reported in the following cases: 124 // - If the configuration or its parent invocation is not found. 125 // - If the given configuration name is badly formatted. 126 // - If no field mask was given. 127 rpc GetConfiguration(GetConfigurationRequest) returns (Configuration) { 128 option (google.api.http) = { 129 get: "/v2/{name=invocations/*/configs/*}" 130 }; 131 option (google.api.method_signature) = "name"; 132 } 133 134 // Retrieves all configurations for a parent invocation. 135 // This might be limited by user or server, 136 // in which case a continuation token is provided. 137 // The order in which results are returned is undefined, but stable. 138 // 139 // An error will be reported in the following cases: 140 // - If the parent invocation is not found. 141 // - If the given parent invocation name is badly formatted. 142 // - If no field mask was given. 143 rpc ListConfigurations(ListConfigurationsRequest) 144 returns (ListConfigurationsResponse) { 145 option (google.api.http) = { 146 get: "/v2/{parent=invocations/*}/configs" 147 }; 148 option (google.api.method_signature) = "parent"; 149 } 150 151 // Retrieves the target with the given name. 152 // 153 // An error will be reported in the following cases: 154 // - If the target or its parent invocation is not found. 155 // - If the given target name is badly formatted. 156 // - If no field mask was given. 157 rpc GetTarget(GetTargetRequest) returns (Target) { 158 option (google.api.http) = { 159 get: "/v2/{name=invocations/*/targets/*}" 160 }; 161 option (google.api.method_signature) = "name"; 162 } 163 164 // Retrieves all targets for a parent invocation. This might be limited by 165 // user or server, in which case a continuation token is provided. 166 // The order in which results are returned is undefined, but stable. 167 // 168 // An error will be reported in the following cases: 169 // - If the parent is not found. 170 // - If the given parent name is badly formatted. 171 // - If no field mask was given. 172 rpc ListTargets(ListTargetsRequest) returns (ListTargetsResponse) { 173 option (google.api.http) = { 174 get: "/v2/{parent=invocations/*}/targets" 175 }; 176 option (google.api.method_signature) = "parent"; 177 } 178 179 // Retrieves the configured target with the given name. 180 // 181 // An error will be reported in the following cases: 182 // - If the configured target is not found. 183 // - If the given name is badly formatted. 184 // - If no field mask was given. 185 rpc GetConfiguredTarget(GetConfiguredTargetRequest) 186 returns (ConfiguredTarget) { 187 option (google.api.http) = { 188 get: "/v2/{name=invocations/*/targets/*/configuredTargets/*}" 189 }; 190 option (google.api.method_signature) = "name"; 191 } 192 193 // Retrieves all configured targets for a parent invocation/target. 194 // This might be limited by user or server, in which case a continuation 195 // token is provided. Supports '-' for targetId meaning all targets. 196 // The order in which results are returned is undefined, but stable and 197 // consistent with ListTargets and ListConfigurations. 198 // 199 // An error will be reported in the following cases: 200 // - If the parent is not found. 201 // - If the given parent name is badly formatted. 202 // - If no field mask was given. 203 rpc ListConfiguredTargets(ListConfiguredTargetsRequest) 204 returns (ListConfiguredTargetsResponse) { 205 option (google.api.http) = { 206 get: "/v2/{parent=invocations/*/targets/*}/configuredTargets" 207 }; 208 option (google.api.method_signature) = "parent"; 209 } 210 211 // Searches for ConfiguredTargets matching the given query parameters. Results 212 // will be ordered by timing.start_time with most recent first, but total 213 // ordering of results is not guaranteed when difference in timestamps is 214 // very small. Results may be stale. Results may be omitted. 215 // 216 // 217 // Field masks are supported for only these fields and their subfields: 218 // - configured_targets.name 219 // - configured_targets.id 220 // - configured_targets.status_attributes 221 // - configured_targets.timing 222 // - next_page_token 223 // 224 // An error will be reported in the following cases: 225 // - If a query string is not provided 226 // - If no field mask was given. 227 rpc SearchConfiguredTargets(SearchConfiguredTargetsRequest) 228 returns (SearchConfiguredTargetsResponse) { 229 option (google.api.http) = { 230 get: "/v2/{parent=invocations/*/targets/*}/configuredTargets:search" 231 }; 232 } 233 234 // Retrieves the action with the given name. 235 // 236 // An error will be reported in the following cases: 237 // - If the action is not found. 238 // - If the given name is badly formatted. 239 // - If no field mask was given. 240 rpc GetAction(GetActionRequest) returns (Action) { 241 option (google.api.http) = { 242 get: "/v2/{name=invocations/*/targets/*/configuredTargets/*/actions/*}" 243 }; 244 option (google.api.method_signature) = "name"; 245 } 246 247 // Retrieves all actions for a parent invocation/target/configuration. 248 // This might be limited by user or server, in which case a continuation 249 // token is provided. Supports '-' for configurationId to mean all 250 // actions for all configurations for a target, or '-' for targetId and 251 // configurationId to mean all actions for all configurations and all targets. 252 // Does not support targetId '-' with a specified configuration. 253 // The order in which results are returned is undefined, but stable and 254 // consistent with ListConfiguredTargets. 255 // 256 // An error will be reported in the following cases: 257 // - If the parent is not found. 258 // - If the given parent name is badly formatted. 259 // - If no field mask was given. 260 rpc ListActions(ListActionsRequest) returns (ListActionsResponse) { 261 option (google.api.http) = { 262 get: "/v2/{parent=invocations/*/targets/*/configuredTargets/*}/actions" 263 }; 264 option (google.api.method_signature) = "parent"; 265 } 266 267 // Retrieves a list of actions for a parent invocation or multiple parents 268 // target/configuration. This might be limited by user or server, in which 269 // case a continuation token is provided. The order in which results are 270 // returned is undefined, but stable and consistent with 271 // ListConfiguredTargets. 272 // 273 // An error will be reported in the following cases: 274 // - If the given parent name is badly formatted. 275 // - If no field mask was given. 276 rpc BatchListActions(BatchListActionsRequest) 277 returns (BatchListActionsResponse) { 278 option (google.api.http) = { 279 get: "/v2/{parent=invocations/*}/actions:batchList" 280 }; 281 } 282 283 // Retrieves the file set with the given name. 284 // 285 // An error will be reported in the following cases: 286 // - If the file set or its parent invocation is not found. 287 // - If the given file set name is badly formatted. 288 // - If no field mask was given. 289 rpc GetFileSet(GetFileSetRequest) returns (FileSet) { 290 option (google.api.http) = { 291 get: "/v2/{name=invocations/*/fileSets/*}" 292 }; 293 option (google.api.method_signature) = "name"; 294 } 295 296 // Retrieves all file sets for a parent invocation. 297 // This might be limited by user or server, 298 // in which case a continuation token is provided. 299 // The order in which results are returned is undefined, but stable. 300 // 301 // An error will be reported in the following cases: 302 // - If the parent invocation is not found. 303 // - If the given parent invocation name is badly formatted. 304 // - If no field mask was given. 305 rpc ListFileSets(ListFileSetsRequest) returns (ListFileSetsResponse) { 306 option (google.api.http) = { 307 get: "/v2/{parent=invocations/*}/fileSets" 308 }; 309 option (google.api.method_signature) = "parent"; 310 } 311 312 // Returns the transitive closure of FileSets. This might be limited by user 313 // or server, in which case a continuation token is provided. 314 // The order in which results are returned is undefined, and unstable. 315 // 316 // An error will be reported in the following cases: 317 // - If page_token is too large to continue the calculation. 318 // - If the resource is not found. 319 // - If the given resource name is badly formatted. 320 // - If no field mask was given. 321 rpc TraverseFileSets(TraverseFileSetsRequest) 322 returns (TraverseFileSetsResponse) { 323 option (google.api.http) = { 324 get: "/v2/{name=invocations/*/fileSets/*}:traverseFileSets" 325 additional_bindings { 326 get: "/v2/{name=invocations/*/targets/*/configuredTargets/*/actions/*}:traverseFileSets" 327 } 328 }; 329 } 330} 331 332// Request passed into GetInvocation 333message GetInvocationRequest { 334 // Required. The name of the invocation to retrieve. It must match this 335 // format: invocations/${INVOCATION_ID} where INVOCATION_ID must be an RFC 336 // 4122-compliant UUID. 337 string name = 1 [ 338 (google.api.field_behavior) = REQUIRED, 339 (google.api.resource_reference) = { 340 type: "resultstore.googleapis.com/Invocation" 341 } 342 ]; 343} 344 345// Request passed into SearchInvocations 346message SearchInvocationsRequest { 347 // The maximum number of items to return. Zero means all, but may be capped by 348 // the server. 349 int32 page_size = 1; 350 351 // Options for pagination. 352 oneof page_start { 353 // The next_page_token value returned from a previous Search request, if 354 // any. 355 string page_token = 2; 356 357 // Absolute number of results to skip. May be rejected if too high. 358 int64 offset = 3; 359 } 360 361 // A filtering query string. 362 // 363 // Only a limited number of fields and operators are supported. Not every 364 // field supports every operator. 365 // 366 // Fields that support equals ("=") restrictions: 367 // 368 // id.invocation_id 369 // name 370 // status_attributes.status 371 // workspace_info.hostname 372 // download_metadata.upload_status 373 // 374 // Fields that support contains (":") restrictions: 375 // 376 // invocation_attributes.users 377 // invocation_attributes.labels 378 // 379 // Fields that support comparison ("<", "<=", ">", ">=") restrictions; 380 // 381 // timing.start_time 382 // 383 // Supported custom function global restrictions: 384 // 385 // propertyEquals("key", "value") 386 string query = 4; 387 388 // The project id to search under. 389 string project_id = 5; 390 391 // If true, all equals or contains restrictions on string fields in query will 392 // require exact match. Otherwise, a string field restriction may ignore case 393 // and punctuation. 394 bool exact_match = 7; 395} 396 397// Response from calling SearchInvocations 398message SearchInvocationsResponse { 399 // Invocations matching the search, possibly capped at request.page_size or a 400 // server limit. 401 repeated Invocation invocations = 1; 402 403 // Token to retrieve the next page of results, or empty if there are no 404 // more results. 405 string next_page_token = 2; 406} 407 408// Request passed into ExportInvocationRequest 409message ExportInvocationRequest { 410 // Required. The name of the invocation to retrieve. It must match this 411 // format: invocations/${INVOCATION_ID} where INVOCATION_ID must be an RFC 412 // 4122-compliant UUID. 413 string name = 1 [ 414 (google.api.field_behavior) = REQUIRED, 415 (google.api.resource_reference) = { 416 type: "resultstore.googleapis.com/Invocation" 417 } 418 ]; 419 420 // The maximum number of items to return. Zero means all, but may be capped by 421 // the server. 422 int32 page_size = 2; 423 424 // Options for pagination. 425 oneof page_start { 426 // The next_page_token value returned from a previous export request, if 427 // any. 428 string page_token = 3; 429 430 // Absolute number of results to skip. 431 int64 offset = 4; 432 } 433 434 // Filters Targets, ConfiguredTargets, and Actions returned 435 // 436 // Only id.target_id field with single equals ("=") restriction supported 437 string targets_filter = 6; 438 439 // Requires targets_filter to be populated 440 // Filters ConfiguredTargets and Actions returned 441 // 442 // Only id.configuration_id field with single equals ("=") restriction 443 // supported 444 string configured_targets_filter = 7; 445 446 // Requires both targets_filter and configured_targets_filter to be populated 447 // Filters Actions returned 448 // 449 // Only id.action_id field with single equals ("=") restriction supported 450 string actions_filter = 8; 451} 452 453// Response from calling ExportInvocationResponse. 454// Possibly capped at request.page_size or a server limit. 455message ExportInvocationResponse { 456 // Parent Invocation resource. 457 Invocation invocation = 1; 458 459 // download metadata of request invocation 460 // download_metadata and invocation count towards page_size once. 461 DownloadMetadata download_metadata = 8; 462 463 // Targets matching the request invocation. 464 repeated Target targets = 2; 465 466 // Configurations matching the request invocation. 467 repeated Configuration configurations = 3; 468 469 // ConfiguredTargets matching the request invocation. 470 repeated ConfiguredTarget configured_targets = 4; 471 472 // Actions matching the request invocation. 473 repeated Action actions = 5; 474 475 // FileSets matching the request invocation. 476 repeated FileSet file_sets = 6; 477 478 // Token to retrieve the next page of results, or empty if there are no 479 // more results in the list. 480 string next_page_token = 7; 481} 482 483// Request passed into GetInvocationDownloadMetadata 484message GetInvocationDownloadMetadataRequest { 485 // Required. The name of the download metadata to retrieve. It must match this 486 // format: invocations/${INVOCATION_ID}/downloadMetadata where INVOCATION_ID 487 // must be an RFC 4122-compliant UUID. 488 string name = 1 [ 489 (google.api.field_behavior) = REQUIRED, 490 (google.api.resource_reference) = { 491 type: "resultstore.googleapis.com/DownloadMetadata" 492 } 493 ]; 494} 495 496// Request passed into GetConfiguration 497message GetConfigurationRequest { 498 // Required. The name of the configuration to retrieve. It must match this 499 // format: invocations/${INVOCATION_ID}/configs/${CONFIGURATION_ID} 500 string name = 1 [ 501 (google.api.field_behavior) = REQUIRED, 502 (google.api.resource_reference) = { 503 type: "resultstore.googleapis.com/Configuration" 504 } 505 ]; 506} 507 508// Request passed into ListConfigurations 509message ListConfigurationsRequest { 510 // Required. The invocation name of the configurations to retrieve. 511 // It must match this format: invocations/${INVOCATION_ID} 512 string parent = 1 [ 513 (google.api.field_behavior) = REQUIRED, 514 (google.api.resource_reference) = { 515 type: "resultstore.googleapis.com/Invocation" 516 } 517 ]; 518 519 // The maximum number of items to return. 520 // Zero means all, but may be capped by the server. 521 int32 page_size = 2; 522 523 // Options for pagination. 524 oneof page_start { 525 // The next_page_token value returned from a previous List request, if any. 526 string page_token = 3; 527 528 // Absolute number of results to skip. 529 int64 offset = 4; 530 } 531 532 // A filter to return only resources that match it. 533 // Any fields used in the filter must be also specified in the field mask. 534 // May cause pages with 0 results and a next_page_token to be returned. 535 string filter = 5; 536} 537 538// Response from calling ListConfigurations 539message ListConfigurationsResponse { 540 // Configurations matching the request invocation, 541 // possibly capped at request.page_size or a server limit. 542 repeated Configuration configurations = 1; 543 544 // Token to retrieve the next page of results, or empty if there are no 545 // more results in the list. 546 string next_page_token = 2; 547} 548 549// Request passed into GetTarget 550message GetTargetRequest { 551 // Required. The name of the target to retrieve. It must match this format: 552 // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)} 553 string name = 1 [ 554 (google.api.field_behavior) = REQUIRED, 555 (google.api.resource_reference) = { 556 type: "resultstore.googleapis.com/Target" 557 } 558 ]; 559} 560 561// Request passed into ListTargets 562message ListTargetsRequest { 563 // Required. The invocation name of the targets to retrieve. It must match 564 // this format: invocations/${INVOCATION_ID} 565 string parent = 1 [ 566 (google.api.field_behavior) = REQUIRED, 567 (google.api.resource_reference) = { 568 type: "resultstore.googleapis.com/Invocation" 569 } 570 ]; 571 572 // The maximum number of items to return. 573 // Zero means all, but may be capped by the server. 574 int32 page_size = 2; 575 576 // Options for pagination. 577 oneof page_start { 578 // The next_page_token value returned from a previous List request, if any. 579 string page_token = 3; 580 581 // Absolute number of results to skip. 582 int64 offset = 4; 583 } 584 585 // A filter to return only resources that match it. 586 // Any fields used in the filter must be also specified in the field mask. 587 // May cause pages with 0 results and a next_page_token to be returned. 588 string filter = 5; 589} 590 591// Response from calling ListTargetsResponse 592message ListTargetsResponse { 593 // Targets matching the request invocation, 594 // possibly capped at request.page_size or a server limit. 595 repeated Target targets = 1; 596 597 // Token to retrieve the next page of results, or empty if there are no 598 // more results in the list. 599 string next_page_token = 2; 600} 601 602// Request passed into GetConfiguredTarget 603message GetConfiguredTargetRequest { 604 // Required. The name of the configured target to retrieve. It must match this 605 // format: 606 // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIGURATION_ID} 607 string name = 1 [ 608 (google.api.field_behavior) = REQUIRED, 609 (google.api.resource_reference) = { 610 type: "resultstore.googleapis.com/ConfiguredTarget" 611 } 612 ]; 613} 614 615// Request passed into ListConfiguredTargets 616message ListConfiguredTargetsRequest { 617 // Required. The invocation and target name of the configured targets to 618 // retrieve. It must match this format: 619 // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)} 620 // Supports '-' for ${TARGET_ID} meaning all targets. 621 string parent = 1 [ 622 (google.api.field_behavior) = REQUIRED, 623 (google.api.resource_reference) = { 624 type: "resultstore.googleapis.com/Target" 625 } 626 ]; 627 628 // The maximum number of items to return. 629 // Zero means all, but may be capped by the server. 630 int32 page_size = 2; 631 632 // Options for pagination. 633 oneof page_start { 634 // The next_page_token value returned from a previous List request, if any. 635 string page_token = 3; 636 637 // Absolute number of results to skip. 638 int64 offset = 4; 639 } 640 641 // A filter to return only resources that match it. 642 // Any fields used in the filter must be also specified in the field mask. 643 // May cause pages with 0 results and a next_page_token to be returned. 644 string filter = 5; 645} 646 647// Response from calling ListConfiguredTargets 648message ListConfiguredTargetsResponse { 649 // ConfiguredTargets matching the request, 650 // possibly capped at request.page_size or a server limit. 651 repeated ConfiguredTarget configured_targets = 1; 652 653 // Token to retrieve the next page of results, or empty if there are no 654 // more results in the list. 655 string next_page_token = 2; 656} 657 658// Request passed into SearchConfiguredTargets 659message SearchConfiguredTargetsRequest { 660 // Required. Must be set to invocations/-/targets/- 661 // This only supports searching all ConfiguredTargets across all Invocations. 662 string parent = 1 [ 663 (google.api.field_behavior) = REQUIRED, 664 (google.api.resource_reference) = { 665 type: "resultstore.googleapis.com/Target" 666 } 667 ]; 668 669 // The maximum number of items to return. Zero means all, but may be capped by 670 // the server. 671 int32 page_size = 2; 672 673 // Options for pagination. 674 oneof page_start { 675 // The next_page_token value returned from a previous Search request, if 676 // any. 677 string page_token = 3; 678 679 // Absolute number of results to skip. May be rejected if too high. 680 int64 offset = 4; 681 } 682 683 // A filtering query string. 684 // 685 // Only a limited number of fields and operators are supported. Not every 686 // field supports every operator. Access to parent resources is provided 687 // via synthetic fields ‘invocation’, ‘configuration’, and ‘target’. 688 // 689 // Any search must contain an equals restriction on id.target_id. 690 // 691 // Fields that support equals ("=") restrictions: 692 // 693 // id.target_id 694 // status_attributes.status 695 // 696 // target.target_attributes.type 697 // target.target_attributes.language 698 // target.test_attributes.size 699 // 700 // configuration.configuration_attributes.cpu 701 // 702 // invocation.workspace_info.hostname 703 // 704 // Fields that support contains (":") restrictions: 705 // 706 // target.target_attributes.tags 707 // 708 // invocation.invocation_attributes.users 709 // invocation.invocation_attributes.labels 710 // 711 // Fields that support comparison ("<", "<=", ">", ">=") restrictions; 712 // 713 // timing.start_time 714 // coalesced_start_time 715 // Supported custom function global restrictions: 716 // 717 // invocationPropertyEquals("key", "value") 718 // targetPropertyEquals("key", "value") 719 // configurationPropertyEquals("key", "value") 720 // configuredTargetPropertyEquals("key", "value") 721 string query = 5; 722 723 // The project id to search under. 724 string project_id = 6; 725 726 // Unimplemented 727 bool exact_match = 7; 728} 729 730// Response from calling SearchConfiguredTargets 731message SearchConfiguredTargetsResponse { 732 // ConfiguredTargets matching the search, possibly capped at request.page_size 733 // or a server limit. 734 repeated ConfiguredTarget configured_targets = 1; 735 736 // Token to retrieve the next page of results, or empty if there are no 737 // more results. 738 string next_page_token = 2; 739} 740 741// Request passed into GetAction 742message GetActionRequest { 743 // Required. The name of the action to retrieve. It must match this format: 744 // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIGURATION_ID}/actions/${ACTION_ID} 745 string name = 1 [ 746 (google.api.field_behavior) = REQUIRED, 747 (google.api.resource_reference) = { 748 type: "resultstore.googleapis.com/Action" 749 } 750 ]; 751} 752 753// Request passed into ListActions 754message ListActionsRequest { 755 // Required. The invocation, target, and configuration name of the action to 756 // retrieve. It must match this format: 757 // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIGURATION_ID} 758 // Supports '-' for ${CONFIGURATION_ID} to mean all Actions for all 759 // Configurations for a Target, or '-' for ${TARGET_ID} and 760 // ${CONFIGURATION_ID} to mean all Actions for all Configurations and all 761 // Targets. Does not support ${TARGET_ID} '-' with a specified configuration. 762 string parent = 1 [ 763 (google.api.field_behavior) = REQUIRED, 764 (google.api.resource_reference) = { 765 type: "resultstore.googleapis.com/ConfiguredTarget" 766 } 767 ]; 768 769 // The maximum number of items to return. 770 // Zero means all, but may be capped by the server. 771 int32 page_size = 2; 772 773 // Options for pagination. 774 oneof page_start { 775 // The next_page_token value returned from a previous List request, if any. 776 string page_token = 3; 777 778 // Absolute number of results to skip. 779 int64 offset = 4; 780 } 781 782 // A filter to return only resources that match it. 783 // Any fields used in the filter must be also specified in the field mask. 784 // May cause pages with 0 results and a next_page_token to be returned. 785 string filter = 5; 786} 787 788// Response from calling ListActions 789message ListActionsResponse { 790 // Actions matching the request, 791 // possibly capped at request.page_size or a server limit. 792 repeated Action actions = 1; 793 794 // Token to retrieve the next page of results, or empty if there are no 795 // more results in the list. 796 string next_page_token = 2; 797} 798 799// Request passed into BatchListActionsRequest 800message BatchListActionsRequest { 801 // Required. The invocation name of the actions to retrieve. It must match 802 // this format: invocations/${INVOCATION_ID} 803 string parent = 1 [ 804 (google.api.field_behavior) = REQUIRED, 805 (google.api.resource_reference) = { 806 type: "resultstore.googleapis.com/Invocation" 807 } 808 ]; 809 810 // The names of the configured targets to retrieve. 811 // It must match this format: 812 // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIGURATION_ID} 813 repeated string configured_targets = 2; 814 815 // The maximum number of items to return. 816 // Zero means all, but may be capped by the server. 817 int32 page_size = 3; 818 819 // Options for pagination. 820 oneof page_start { 821 // The next_page_token value returned from a previous List request, if any. 822 // Page tokens will become larger with every page returned, and if a page 823 // token becomes too large, it will no longer be possible to continue to 824 // calculate the transitive dependencies. The API will return a 400 825 // Bad request (HTTPS), or a INVALID_ARGUMENT (gRPC ) when 826 // this happens. 827 string page_token = 4; 828 829 // Absolute number of results to skip. 830 // Not yet implemented. 0 for default. 831 int64 offset = 5; 832 } 833 834 // A filter to return only resources that match it. 835 // Any fields used in the filter must be also specified in the field mask. 836 // May cause pages with 0 results and a next_page_token to be returned. 837 string filter = 6; 838} 839 840// Response from calling BatchListActionsResponse 841message BatchListActionsResponse { 842 // Actions matching the request, 843 // possibly capped at request.page_size or a server limit. 844 repeated Action actions = 1; 845 846 // Token to retrieve the next page of results, or empty if there are no 847 // more results in the list. 848 string next_page_token = 2; 849 850 // Not found configured target names. 851 repeated string not_found = 3; 852} 853 854// Request passed into GetFileSet 855message GetFileSetRequest { 856 // Required. The name of the file set to retrieve. It must match this format: 857 // invocations/${INVOCATION_ID}/fileSets/${FILE_SET_ID} 858 string name = 1 [ 859 (google.api.field_behavior) = REQUIRED, 860 (google.api.resource_reference) = { 861 type: "resultstore.googleapis.com/FileSet" 862 } 863 ]; 864} 865 866// Request passed into ListFileSets 867message ListFileSetsRequest { 868 // Required. The invocation name of the file sets to retrieve. 869 // It must match this format: invocations/${INVOCATION_ID} 870 string parent = 1 [ 871 (google.api.field_behavior) = REQUIRED, 872 (google.api.resource_reference) = { 873 type: "resultstore.googleapis.com/Invocation" 874 } 875 ]; 876 877 // The maximum number of items to return. 878 // Zero means all, but may be capped by the server. 879 int32 page_size = 2; 880 881 // Options for pagination. 882 oneof page_start { 883 // The next_page_token value returned from a previous List request, if any. 884 string page_token = 3; 885 886 // Absolute number of results to skip. 887 int64 offset = 4; 888 } 889 890 // A filter to return only resources that match it. 891 // Any fields used in the filter must be also specified in the field mask. 892 // May cause pages with 0 results and a next_page_token to be returned. 893 string filter = 5; 894} 895 896// Response from calling ListFileSets 897message ListFileSetsResponse { 898 // File sets matching the request, 899 // possibly capped at request.page_size or a server limit. 900 repeated FileSet file_sets = 1; 901 902 // Token to retrieve the next page of results, or empty if there are no 903 // more results in the list. 904 string next_page_token = 2; 905} 906 907// Request passed into TraverseFileSets 908message TraverseFileSetsRequest { 909 // Required. The name of the resource to traverse. 910 // It must match one of the following formats: 911 // 912 // invocations/${INVOCATION_ID}/fileSets/${FILE_SET_ID} 913 // This returns the transitive closure of FileSets referenced by the given 914 // FileSet, including itself. 915 // 916 // invocations/${INVOCATION_ID}/targets/${url_encode(TARGET_ID)}/configuredTargets/${CONFIGURATION_ID}/actions/${ACTION_ID} 917 // This returns the transitive closure of FileSets referenced by the given 918 // Action. If ${ACTION_ID} is "-", this returns the transitive closure of 919 // FileSets referenced by all Actions under the given ConfiguredTarget. 920 string name = 1 [ 921 (google.api.field_behavior) = REQUIRED, 922 (google.api.resource_reference) = { type: "*" } 923 ]; 924 925 // The maximum number of items to return. 926 // Zero means all, but may be capped by the server. 927 int32 page_size = 2; 928 929 // Options for pagination. 930 oneof page_start { 931 // The next_page_token value returned from a previous List request, if any. 932 // Page tokens will become larger with every page returned, and if a page 933 // token becomes too large, it will no longer be possible to continue to 934 // calculate the transitive dependencies. The API will return a 400 935 // Bad request (HTTPS), or a INVALID_ARGUMENT (gRPC ) when 936 // this happens. 937 string page_token = 3; 938 939 // Absolute number of results to skip. 940 // Not yet implemented. 0 for default. 941 int64 offset = 4; 942 } 943} 944 945// Response from calling TraverseFileSets 946message TraverseFileSetsResponse { 947 // File sets matching the request. 948 // The order in which results are returned is undefined, but stable. 949 repeated FileSet file_sets = 1; 950 951 // Token to retrieve the next page of results, or empty if there are no 952 // more results in the list. 953 string next_page_token = 2; 954} 955