file_set.proto 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Copyright 2021 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. syntax = "proto3";
  15. package google.devtools.resultstore.v2;
  16. import "google/api/resource.proto";
  17. import "google/devtools/resultstore/v2/file.proto";
  18. option go_package = "google.golang.org/genproto/googleapis/devtools/resultstore/v2;resultstore";
  19. option java_multiple_files = true;
  20. option java_outer_classname = "FileSetProto";
  21. option java_package = "com.google.devtools.resultstore.v2";
  22. // This resource represents a set of Files and other (nested) FileSets.
  23. // A FileSet is a node in the graph, and the file_sets field represents the
  24. // outgoing edges. A resource may reference various nodes in the graph to
  25. // represent the transitive closure of all files from those nodes.
  26. // The FileSets must form a directed acyclic graph. The Upload API is unable to
  27. // enforce that the graph is acyclic at write time, and if cycles are written,
  28. // it may cause issues at read time.
  29. //
  30. // A FileSet may be referenced by other resources in conjunction with Files.
  31. //
  32. // Clients should prefer using Files directly under resources. Clients should
  33. // not use FileSets unless their usecase requires a directed acyclic graph of
  34. // Files.
  35. message FileSet {
  36. option (google.api.resource) = {
  37. type: "resultstore.googleapis.com/FileSet"
  38. pattern: "invocations/{invocation}/fileSets/{file_set}"
  39. };
  40. // The resource ID components that identify the FileSet.
  41. message Id {
  42. // The Invocation ID.
  43. string invocation_id = 1;
  44. // The FileSet ID.
  45. string file_set_id = 2;
  46. }
  47. // The format of this FileSet resource name must be:
  48. // invocations/${INVOCATION_ID}/fileSets/${url_encode(FILE_SET_ID)}
  49. string name = 1;
  50. // The resource ID components that identify the file set. They must match the
  51. // resource name after proper encoding.
  52. Id id = 2;
  53. // List of names of other file sets that are referenced from this one.
  54. // Each name must point to a file set under the same invocation. The name
  55. // format must be: invocations/${INVOCATION_ID}/fileSets/${FILE_SET_ID}
  56. repeated string file_sets = 3;
  57. // Files that are contained within this file set.
  58. // The uid field in the file should be unique for the Invocation.
  59. repeated File files = 4;
  60. }