resultstore_download.proto 31 KB

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