job_service.proto 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977
  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.cloud.aiplatform.v1beta1;
  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/cloud/aiplatform/v1beta1/batch_prediction_job.proto";
  21. import "google/cloud/aiplatform/v1beta1/custom_job.proto";
  22. import "google/cloud/aiplatform/v1beta1/data_labeling_job.proto";
  23. import "google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto";
  24. import "google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto";
  25. import "google/cloud/aiplatform/v1beta1/operation.proto";
  26. import "google/longrunning/operations.proto";
  27. import "google/protobuf/empty.proto";
  28. import "google/protobuf/field_mask.proto";
  29. import "google/protobuf/timestamp.proto";
  30. option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1";
  31. option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
  32. option java_multiple_files = true;
  33. option java_outer_classname = "JobServiceProto";
  34. option java_package = "com.google.cloud.aiplatform.v1beta1";
  35. option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1";
  36. option ruby_package = "Google::Cloud::AIPlatform::V1beta1";
  37. // A service for creating and managing Vertex AI's jobs.
  38. service JobService {
  39. option (google.api.default_host) = "aiplatform.googleapis.com";
  40. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  41. // Creates a CustomJob. A created CustomJob right away
  42. // will be attempted to be run.
  43. rpc CreateCustomJob(CreateCustomJobRequest) returns (CustomJob) {
  44. option (google.api.http) = {
  45. post: "/v1beta1/{parent=projects/*/locations/*}/customJobs"
  46. body: "custom_job"
  47. };
  48. option (google.api.method_signature) = "parent,custom_job";
  49. }
  50. // Gets a CustomJob.
  51. rpc GetCustomJob(GetCustomJobRequest) returns (CustomJob) {
  52. option (google.api.http) = {
  53. get: "/v1beta1/{name=projects/*/locations/*/customJobs/*}"
  54. };
  55. option (google.api.method_signature) = "name";
  56. }
  57. // Lists CustomJobs in a Location.
  58. rpc ListCustomJobs(ListCustomJobsRequest) returns (ListCustomJobsResponse) {
  59. option (google.api.http) = {
  60. get: "/v1beta1/{parent=projects/*/locations/*}/customJobs"
  61. };
  62. option (google.api.method_signature) = "parent";
  63. }
  64. // Deletes a CustomJob.
  65. rpc DeleteCustomJob(DeleteCustomJobRequest) returns (google.longrunning.Operation) {
  66. option (google.api.http) = {
  67. delete: "/v1beta1/{name=projects/*/locations/*/customJobs/*}"
  68. };
  69. option (google.api.method_signature) = "name";
  70. option (google.longrunning.operation_info) = {
  71. response_type: "google.protobuf.Empty"
  72. metadata_type: "DeleteOperationMetadata"
  73. };
  74. }
  75. // Cancels a CustomJob.
  76. // Starts asynchronous cancellation on the CustomJob. The server
  77. // makes a best effort to cancel the job, but success is not
  78. // guaranteed. Clients can use [JobService.GetCustomJob][google.cloud.aiplatform.v1beta1.JobService.GetCustomJob] or
  79. // other methods to check whether the cancellation succeeded or whether the
  80. // job completed despite cancellation. On successful cancellation,
  81. // the CustomJob is not deleted; instead it becomes a job with
  82. // a [CustomJob.error][google.cloud.aiplatform.v1beta1.CustomJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
  83. // corresponding to `Code.CANCELLED`, and [CustomJob.state][google.cloud.aiplatform.v1beta1.CustomJob.state] is set to
  84. // `CANCELLED`.
  85. rpc CancelCustomJob(CancelCustomJobRequest) returns (google.protobuf.Empty) {
  86. option (google.api.http) = {
  87. post: "/v1beta1/{name=projects/*/locations/*/customJobs/*}:cancel"
  88. body: "*"
  89. };
  90. option (google.api.method_signature) = "name";
  91. }
  92. // Creates a DataLabelingJob.
  93. rpc CreateDataLabelingJob(CreateDataLabelingJobRequest) returns (DataLabelingJob) {
  94. option (google.api.http) = {
  95. post: "/v1beta1/{parent=projects/*/locations/*}/dataLabelingJobs"
  96. body: "data_labeling_job"
  97. };
  98. option (google.api.method_signature) = "parent,data_labeling_job";
  99. }
  100. // Gets a DataLabelingJob.
  101. rpc GetDataLabelingJob(GetDataLabelingJobRequest) returns (DataLabelingJob) {
  102. option (google.api.http) = {
  103. get: "/v1beta1/{name=projects/*/locations/*/dataLabelingJobs/*}"
  104. };
  105. option (google.api.method_signature) = "name";
  106. }
  107. // Lists DataLabelingJobs in a Location.
  108. rpc ListDataLabelingJobs(ListDataLabelingJobsRequest) returns (ListDataLabelingJobsResponse) {
  109. option (google.api.http) = {
  110. get: "/v1beta1/{parent=projects/*/locations/*}/dataLabelingJobs"
  111. };
  112. option (google.api.method_signature) = "parent";
  113. }
  114. // Deletes a DataLabelingJob.
  115. rpc DeleteDataLabelingJob(DeleteDataLabelingJobRequest) returns (google.longrunning.Operation) {
  116. option (google.api.http) = {
  117. delete: "/v1beta1/{name=projects/*/locations/*/dataLabelingJobs/*}"
  118. };
  119. option (google.api.method_signature) = "name";
  120. option (google.longrunning.operation_info) = {
  121. response_type: "google.protobuf.Empty"
  122. metadata_type: "DeleteOperationMetadata"
  123. };
  124. }
  125. // Cancels a DataLabelingJob. Success of cancellation is not guaranteed.
  126. rpc CancelDataLabelingJob(CancelDataLabelingJobRequest) returns (google.protobuf.Empty) {
  127. option (google.api.http) = {
  128. post: "/v1beta1/{name=projects/*/locations/*/dataLabelingJobs/*}:cancel"
  129. body: "*"
  130. };
  131. option (google.api.method_signature) = "name";
  132. }
  133. // Creates a HyperparameterTuningJob
  134. rpc CreateHyperparameterTuningJob(CreateHyperparameterTuningJobRequest) returns (HyperparameterTuningJob) {
  135. option (google.api.http) = {
  136. post: "/v1beta1/{parent=projects/*/locations/*}/hyperparameterTuningJobs"
  137. body: "hyperparameter_tuning_job"
  138. };
  139. option (google.api.method_signature) = "parent,hyperparameter_tuning_job";
  140. }
  141. // Gets a HyperparameterTuningJob
  142. rpc GetHyperparameterTuningJob(GetHyperparameterTuningJobRequest) returns (HyperparameterTuningJob) {
  143. option (google.api.http) = {
  144. get: "/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}"
  145. };
  146. option (google.api.method_signature) = "name";
  147. }
  148. // Lists HyperparameterTuningJobs in a Location.
  149. rpc ListHyperparameterTuningJobs(ListHyperparameterTuningJobsRequest) returns (ListHyperparameterTuningJobsResponse) {
  150. option (google.api.http) = {
  151. get: "/v1beta1/{parent=projects/*/locations/*}/hyperparameterTuningJobs"
  152. };
  153. option (google.api.method_signature) = "parent";
  154. }
  155. // Deletes a HyperparameterTuningJob.
  156. rpc DeleteHyperparameterTuningJob(DeleteHyperparameterTuningJobRequest) returns (google.longrunning.Operation) {
  157. option (google.api.http) = {
  158. delete: "/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}"
  159. };
  160. option (google.api.method_signature) = "name";
  161. option (google.longrunning.operation_info) = {
  162. response_type: "google.protobuf.Empty"
  163. metadata_type: "DeleteOperationMetadata"
  164. };
  165. }
  166. // Cancels a HyperparameterTuningJob.
  167. // Starts asynchronous cancellation on the HyperparameterTuningJob. The server
  168. // makes a best effort to cancel the job, but success is not
  169. // guaranteed. Clients can use [JobService.GetHyperparameterTuningJob][google.cloud.aiplatform.v1beta1.JobService.GetHyperparameterTuningJob] or
  170. // other methods to check whether the cancellation succeeded or whether the
  171. // job completed despite cancellation. On successful cancellation,
  172. // the HyperparameterTuningJob is not deleted; instead it becomes a job with
  173. // a [HyperparameterTuningJob.error][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code]
  174. // of 1, corresponding to `Code.CANCELLED`, and
  175. // [HyperparameterTuningJob.state][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob.state] is set to `CANCELLED`.
  176. rpc CancelHyperparameterTuningJob(CancelHyperparameterTuningJobRequest) returns (google.protobuf.Empty) {
  177. option (google.api.http) = {
  178. post: "/v1beta1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}:cancel"
  179. body: "*"
  180. };
  181. option (google.api.method_signature) = "name";
  182. }
  183. // Creates a BatchPredictionJob. A BatchPredictionJob once created will
  184. // right away be attempted to start.
  185. rpc CreateBatchPredictionJob(CreateBatchPredictionJobRequest) returns (BatchPredictionJob) {
  186. option (google.api.http) = {
  187. post: "/v1beta1/{parent=projects/*/locations/*}/batchPredictionJobs"
  188. body: "batch_prediction_job"
  189. };
  190. option (google.api.method_signature) = "parent,batch_prediction_job";
  191. }
  192. // Gets a BatchPredictionJob
  193. rpc GetBatchPredictionJob(GetBatchPredictionJobRequest) returns (BatchPredictionJob) {
  194. option (google.api.http) = {
  195. get: "/v1beta1/{name=projects/*/locations/*/batchPredictionJobs/*}"
  196. };
  197. option (google.api.method_signature) = "name";
  198. }
  199. // Lists BatchPredictionJobs in a Location.
  200. rpc ListBatchPredictionJobs(ListBatchPredictionJobsRequest) returns (ListBatchPredictionJobsResponse) {
  201. option (google.api.http) = {
  202. get: "/v1beta1/{parent=projects/*/locations/*}/batchPredictionJobs"
  203. };
  204. option (google.api.method_signature) = "parent";
  205. }
  206. // Deletes a BatchPredictionJob. Can only be called on jobs that already
  207. // finished.
  208. rpc DeleteBatchPredictionJob(DeleteBatchPredictionJobRequest) returns (google.longrunning.Operation) {
  209. option (google.api.http) = {
  210. delete: "/v1beta1/{name=projects/*/locations/*/batchPredictionJobs/*}"
  211. };
  212. option (google.api.method_signature) = "name";
  213. option (google.longrunning.operation_info) = {
  214. response_type: "google.protobuf.Empty"
  215. metadata_type: "DeleteOperationMetadata"
  216. };
  217. }
  218. // Cancels a BatchPredictionJob.
  219. //
  220. // Starts asynchronous cancellation on the BatchPredictionJob. The server
  221. // makes the best effort to cancel the job, but success is not
  222. // guaranteed. Clients can use [JobService.GetBatchPredictionJob][google.cloud.aiplatform.v1beta1.JobService.GetBatchPredictionJob] or
  223. // other methods to check whether the cancellation succeeded or whether the
  224. // job completed despite cancellation. On a successful cancellation,
  225. // the BatchPredictionJob is not deleted;instead its
  226. // [BatchPredictionJob.state][google.cloud.aiplatform.v1beta1.BatchPredictionJob.state] is set to `CANCELLED`. Any files already
  227. // outputted by the job are not deleted.
  228. rpc CancelBatchPredictionJob(CancelBatchPredictionJobRequest) returns (google.protobuf.Empty) {
  229. option (google.api.http) = {
  230. post: "/v1beta1/{name=projects/*/locations/*/batchPredictionJobs/*}:cancel"
  231. body: "*"
  232. };
  233. option (google.api.method_signature) = "name";
  234. }
  235. // Creates a ModelDeploymentMonitoringJob. It will run periodically on a
  236. // configured interval.
  237. rpc CreateModelDeploymentMonitoringJob(CreateModelDeploymentMonitoringJobRequest) returns (ModelDeploymentMonitoringJob) {
  238. option (google.api.http) = {
  239. post: "/v1beta1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs"
  240. body: "model_deployment_monitoring_job"
  241. };
  242. option (google.api.method_signature) = "parent,model_deployment_monitoring_job";
  243. }
  244. // Searches Model Monitoring Statistics generated within a given time window.
  245. rpc SearchModelDeploymentMonitoringStatsAnomalies(SearchModelDeploymentMonitoringStatsAnomaliesRequest) returns (SearchModelDeploymentMonitoringStatsAnomaliesResponse) {
  246. option (google.api.http) = {
  247. post: "/v1beta1/{model_deployment_monitoring_job=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:searchModelDeploymentMonitoringStatsAnomalies"
  248. body: "*"
  249. };
  250. option (google.api.method_signature) = "model_deployment_monitoring_job,deployed_model_id";
  251. }
  252. // Gets a ModelDeploymentMonitoringJob.
  253. rpc GetModelDeploymentMonitoringJob(GetModelDeploymentMonitoringJobRequest) returns (ModelDeploymentMonitoringJob) {
  254. option (google.api.http) = {
  255. get: "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}"
  256. };
  257. option (google.api.method_signature) = "name";
  258. }
  259. // Lists ModelDeploymentMonitoringJobs in a Location.
  260. rpc ListModelDeploymentMonitoringJobs(ListModelDeploymentMonitoringJobsRequest) returns (ListModelDeploymentMonitoringJobsResponse) {
  261. option (google.api.http) = {
  262. get: "/v1beta1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs"
  263. };
  264. option (google.api.method_signature) = "parent";
  265. }
  266. // Updates a ModelDeploymentMonitoringJob.
  267. rpc UpdateModelDeploymentMonitoringJob(UpdateModelDeploymentMonitoringJobRequest) returns (google.longrunning.Operation) {
  268. option (google.api.http) = {
  269. patch: "/v1beta1/{model_deployment_monitoring_job.name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}"
  270. body: "model_deployment_monitoring_job"
  271. };
  272. option (google.api.method_signature) = "model_deployment_monitoring_job,update_mask";
  273. option (google.longrunning.operation_info) = {
  274. response_type: "ModelDeploymentMonitoringJob"
  275. metadata_type: "UpdateModelDeploymentMonitoringJobOperationMetadata"
  276. };
  277. }
  278. // Deletes a ModelDeploymentMonitoringJob.
  279. rpc DeleteModelDeploymentMonitoringJob(DeleteModelDeploymentMonitoringJobRequest) returns (google.longrunning.Operation) {
  280. option (google.api.http) = {
  281. delete: "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}"
  282. };
  283. option (google.api.method_signature) = "name";
  284. option (google.longrunning.operation_info) = {
  285. response_type: "google.protobuf.Empty"
  286. metadata_type: "DeleteOperationMetadata"
  287. };
  288. }
  289. // Pauses a ModelDeploymentMonitoringJob. If the job is running, the server
  290. // makes a best effort to cancel the job. Will mark
  291. // [ModelDeploymentMonitoringJob.state][google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob.state] to 'PAUSED'.
  292. rpc PauseModelDeploymentMonitoringJob(PauseModelDeploymentMonitoringJobRequest) returns (google.protobuf.Empty) {
  293. option (google.api.http) = {
  294. post: "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:pause"
  295. body: "*"
  296. };
  297. option (google.api.method_signature) = "name";
  298. }
  299. // Resumes a paused ModelDeploymentMonitoringJob. It will start to run from
  300. // next scheduled time. A deleted ModelDeploymentMonitoringJob can't be
  301. // resumed.
  302. rpc ResumeModelDeploymentMonitoringJob(ResumeModelDeploymentMonitoringJobRequest) returns (google.protobuf.Empty) {
  303. option (google.api.http) = {
  304. post: "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:resume"
  305. body: "*"
  306. };
  307. option (google.api.method_signature) = "name";
  308. }
  309. }
  310. // Request message for [JobService.CreateCustomJob][google.cloud.aiplatform.v1beta1.JobService.CreateCustomJob].
  311. message CreateCustomJobRequest {
  312. // Required. The resource name of the Location to create the CustomJob in.
  313. // Format: `projects/{project}/locations/{location}`
  314. string parent = 1 [
  315. (google.api.field_behavior) = REQUIRED,
  316. (google.api.resource_reference) = {
  317. type: "locations.googleapis.com/Location"
  318. }
  319. ];
  320. // Required. The CustomJob to create.
  321. CustomJob custom_job = 2 [(google.api.field_behavior) = REQUIRED];
  322. }
  323. // Request message for [JobService.GetCustomJob][google.cloud.aiplatform.v1beta1.JobService.GetCustomJob].
  324. message GetCustomJobRequest {
  325. // Required. The name of the CustomJob resource.
  326. // Format:
  327. // `projects/{project}/locations/{location}/customJobs/{custom_job}`
  328. string name = 1 [
  329. (google.api.field_behavior) = REQUIRED,
  330. (google.api.resource_reference) = {
  331. type: "aiplatform.googleapis.com/CustomJob"
  332. }
  333. ];
  334. }
  335. // Request message for [JobService.ListCustomJobs][google.cloud.aiplatform.v1beta1.JobService.ListCustomJobs].
  336. message ListCustomJobsRequest {
  337. // Required. The resource name of the Location to list the CustomJobs from.
  338. // Format: `projects/{project}/locations/{location}`
  339. string parent = 1 [
  340. (google.api.field_behavior) = REQUIRED,
  341. (google.api.resource_reference) = {
  342. type: "locations.googleapis.com/Location"
  343. }
  344. ];
  345. // The standard list filter.
  346. //
  347. // Supported fields:
  348. //
  349. // * `display_name` supports = and !=.
  350. //
  351. // * `state` supports = and !=.
  352. //
  353. // Some examples of using the filter are:
  354. //
  355. // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"`
  356. //
  357. // * `state="JOB_STATE_RUNNING" OR display_name="my_job"`
  358. //
  359. // * `NOT display_name="my_job"`
  360. //
  361. // * `state="JOB_STATE_FAILED"`
  362. string filter = 2;
  363. // The standard list page size.
  364. int32 page_size = 3;
  365. // The standard list page token.
  366. // Typically obtained via
  367. // [ListCustomJobsResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListCustomJobsResponse.next_page_token] of the previous
  368. // [JobService.ListCustomJobs][google.cloud.aiplatform.v1beta1.JobService.ListCustomJobs] call.
  369. string page_token = 4;
  370. // Mask specifying which fields to read.
  371. google.protobuf.FieldMask read_mask = 5;
  372. }
  373. // Response message for [JobService.ListCustomJobs][google.cloud.aiplatform.v1beta1.JobService.ListCustomJobs]
  374. message ListCustomJobsResponse {
  375. // List of CustomJobs in the requested page.
  376. repeated CustomJob custom_jobs = 1;
  377. // A token to retrieve the next page of results.
  378. // Pass to [ListCustomJobsRequest.page_token][google.cloud.aiplatform.v1beta1.ListCustomJobsRequest.page_token] to obtain that page.
  379. string next_page_token = 2;
  380. }
  381. // Request message for [JobService.DeleteCustomJob][google.cloud.aiplatform.v1beta1.JobService.DeleteCustomJob].
  382. message DeleteCustomJobRequest {
  383. // Required. The name of the CustomJob resource to be deleted.
  384. // Format:
  385. // `projects/{project}/locations/{location}/customJobs/{custom_job}`
  386. string name = 1 [
  387. (google.api.field_behavior) = REQUIRED,
  388. (google.api.resource_reference) = {
  389. type: "aiplatform.googleapis.com/CustomJob"
  390. }
  391. ];
  392. }
  393. // Request message for [JobService.CancelCustomJob][google.cloud.aiplatform.v1beta1.JobService.CancelCustomJob].
  394. message CancelCustomJobRequest {
  395. // Required. The name of the CustomJob to cancel.
  396. // Format:
  397. // `projects/{project}/locations/{location}/customJobs/{custom_job}`
  398. string name = 1 [
  399. (google.api.field_behavior) = REQUIRED,
  400. (google.api.resource_reference) = {
  401. type: "aiplatform.googleapis.com/CustomJob"
  402. }
  403. ];
  404. }
  405. // Request message for [JobService.CreateDataLabelingJob][google.cloud.aiplatform.v1beta1.JobService.CreateDataLabelingJob].
  406. message CreateDataLabelingJobRequest {
  407. // Required. The parent of the DataLabelingJob.
  408. // Format: `projects/{project}/locations/{location}`
  409. string parent = 1 [
  410. (google.api.field_behavior) = REQUIRED,
  411. (google.api.resource_reference) = {
  412. type: "locations.googleapis.com/Location"
  413. }
  414. ];
  415. // Required. The DataLabelingJob to create.
  416. DataLabelingJob data_labeling_job = 2 [(google.api.field_behavior) = REQUIRED];
  417. }
  418. // Request message for [JobService.GetDataLabelingJob][google.cloud.aiplatform.v1beta1.JobService.GetDataLabelingJob].
  419. message GetDataLabelingJobRequest {
  420. // Required. The name of the DataLabelingJob.
  421. // Format:
  422. // `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}`
  423. string name = 1 [
  424. (google.api.field_behavior) = REQUIRED,
  425. (google.api.resource_reference) = {
  426. type: "aiplatform.googleapis.com/DataLabelingJob"
  427. }
  428. ];
  429. }
  430. // Request message for [JobService.ListDataLabelingJobs][google.cloud.aiplatform.v1beta1.JobService.ListDataLabelingJobs].
  431. message ListDataLabelingJobsRequest {
  432. // Required. The parent of the DataLabelingJob.
  433. // Format: `projects/{project}/locations/{location}`
  434. string parent = 1 [
  435. (google.api.field_behavior) = REQUIRED,
  436. (google.api.resource_reference) = {
  437. type: "locations.googleapis.com/Location"
  438. }
  439. ];
  440. // The standard list filter.
  441. //
  442. // Supported fields:
  443. //
  444. // * `display_name` supports = and !=.
  445. //
  446. // * `state` supports = and !=.
  447. //
  448. // Some examples of using the filter are:
  449. //
  450. // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"`
  451. //
  452. // * `state="JOB_STATE_RUNNING" OR display_name="my_job"`
  453. //
  454. // * `NOT display_name="my_job"`
  455. //
  456. // * `state="JOB_STATE_FAILED"`
  457. string filter = 2;
  458. // The standard list page size.
  459. int32 page_size = 3;
  460. // The standard list page token.
  461. string page_token = 4;
  462. // Mask specifying which fields to read. FieldMask represents a set of
  463. // symbolic field paths. For example, the mask can be `paths: "name"`. The
  464. // "name" here is a field in DataLabelingJob.
  465. // If this field is not set, all fields of the DataLabelingJob are returned.
  466. google.protobuf.FieldMask read_mask = 5;
  467. // A comma-separated list of fields to order by, sorted in ascending order by
  468. // default.
  469. // Use `desc` after a field name for descending.
  470. string order_by = 6;
  471. }
  472. // Response message for [JobService.ListDataLabelingJobs][google.cloud.aiplatform.v1beta1.JobService.ListDataLabelingJobs].
  473. message ListDataLabelingJobsResponse {
  474. // A list of DataLabelingJobs that matches the specified filter in the
  475. // request.
  476. repeated DataLabelingJob data_labeling_jobs = 1;
  477. // The standard List next-page token.
  478. string next_page_token = 2;
  479. }
  480. // Request message for [JobService.DeleteDataLabelingJob][google.cloud.aiplatform.v1beta1.JobService.DeleteDataLabelingJob].
  481. message DeleteDataLabelingJobRequest {
  482. // Required. The name of the DataLabelingJob to be deleted.
  483. // Format:
  484. // `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}`
  485. string name = 1 [
  486. (google.api.field_behavior) = REQUIRED,
  487. (google.api.resource_reference) = {
  488. type: "aiplatform.googleapis.com/DataLabelingJob"
  489. }
  490. ];
  491. }
  492. // Request message for [JobService.CancelDataLabelingJob][google.cloud.aiplatform.v1beta1.JobService.CancelDataLabelingJob].
  493. message CancelDataLabelingJobRequest {
  494. // Required. The name of the DataLabelingJob.
  495. // Format:
  496. // `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}`
  497. string name = 1 [
  498. (google.api.field_behavior) = REQUIRED,
  499. (google.api.resource_reference) = {
  500. type: "aiplatform.googleapis.com/DataLabelingJob"
  501. }
  502. ];
  503. }
  504. // Request message for [JobService.CreateHyperparameterTuningJob][google.cloud.aiplatform.v1beta1.JobService.CreateHyperparameterTuningJob].
  505. message CreateHyperparameterTuningJobRequest {
  506. // Required. The resource name of the Location to create the HyperparameterTuningJob in.
  507. // Format: `projects/{project}/locations/{location}`
  508. string parent = 1 [
  509. (google.api.field_behavior) = REQUIRED,
  510. (google.api.resource_reference) = {
  511. type: "locations.googleapis.com/Location"
  512. }
  513. ];
  514. // Required. The HyperparameterTuningJob to create.
  515. HyperparameterTuningJob hyperparameter_tuning_job = 2 [(google.api.field_behavior) = REQUIRED];
  516. }
  517. // Request message for [JobService.GetHyperparameterTuningJob][google.cloud.aiplatform.v1beta1.JobService.GetHyperparameterTuningJob].
  518. message GetHyperparameterTuningJobRequest {
  519. // Required. The name of the HyperparameterTuningJob resource.
  520. // Format:
  521. // `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}`
  522. string name = 1 [
  523. (google.api.field_behavior) = REQUIRED,
  524. (google.api.resource_reference) = {
  525. type: "aiplatform.googleapis.com/HyperparameterTuningJob"
  526. }
  527. ];
  528. }
  529. // Request message for [JobService.ListHyperparameterTuningJobs][google.cloud.aiplatform.v1beta1.JobService.ListHyperparameterTuningJobs].
  530. message ListHyperparameterTuningJobsRequest {
  531. // Required. The resource name of the Location to list the HyperparameterTuningJobs
  532. // from. Format: `projects/{project}/locations/{location}`
  533. string parent = 1 [
  534. (google.api.field_behavior) = REQUIRED,
  535. (google.api.resource_reference) = {
  536. type: "locations.googleapis.com/Location"
  537. }
  538. ];
  539. // The standard list filter.
  540. //
  541. // Supported fields:
  542. //
  543. // * `display_name` supports = and !=.
  544. //
  545. // * `state` supports = and !=.
  546. //
  547. // Some examples of using the filter are:
  548. //
  549. // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"`
  550. //
  551. // * `state="JOB_STATE_RUNNING" OR display_name="my_job"`
  552. //
  553. // * `NOT display_name="my_job"`
  554. //
  555. // * `state="JOB_STATE_FAILED"`
  556. string filter = 2;
  557. // The standard list page size.
  558. int32 page_size = 3;
  559. // The standard list page token.
  560. // Typically obtained via
  561. // [ListHyperparameterTuningJobsResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListHyperparameterTuningJobsResponse.next_page_token] of the previous
  562. // [JobService.ListHyperparameterTuningJobs][google.cloud.aiplatform.v1beta1.JobService.ListHyperparameterTuningJobs] call.
  563. string page_token = 4;
  564. // Mask specifying which fields to read.
  565. google.protobuf.FieldMask read_mask = 5;
  566. }
  567. // Response message for [JobService.ListHyperparameterTuningJobs][google.cloud.aiplatform.v1beta1.JobService.ListHyperparameterTuningJobs]
  568. message ListHyperparameterTuningJobsResponse {
  569. // List of HyperparameterTuningJobs in the requested page.
  570. // [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob.trials] of the jobs will be not be returned.
  571. repeated HyperparameterTuningJob hyperparameter_tuning_jobs = 1;
  572. // A token to retrieve the next page of results.
  573. // Pass to [ListHyperparameterTuningJobsRequest.page_token][google.cloud.aiplatform.v1beta1.ListHyperparameterTuningJobsRequest.page_token] to obtain that
  574. // page.
  575. string next_page_token = 2;
  576. }
  577. // Request message for [JobService.DeleteHyperparameterTuningJob][google.cloud.aiplatform.v1beta1.JobService.DeleteHyperparameterTuningJob].
  578. message DeleteHyperparameterTuningJobRequest {
  579. // Required. The name of the HyperparameterTuningJob resource to be deleted.
  580. // Format:
  581. // `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}`
  582. string name = 1 [
  583. (google.api.field_behavior) = REQUIRED,
  584. (google.api.resource_reference) = {
  585. type: "aiplatform.googleapis.com/HyperparameterTuningJob"
  586. }
  587. ];
  588. }
  589. // Request message for [JobService.CancelHyperparameterTuningJob][google.cloud.aiplatform.v1beta1.JobService.CancelHyperparameterTuningJob].
  590. message CancelHyperparameterTuningJobRequest {
  591. // Required. The name of the HyperparameterTuningJob to cancel.
  592. // Format:
  593. // `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}`
  594. string name = 1 [
  595. (google.api.field_behavior) = REQUIRED,
  596. (google.api.resource_reference) = {
  597. type: "aiplatform.googleapis.com/HyperparameterTuningJob"
  598. }
  599. ];
  600. }
  601. // Request message for [JobService.CreateBatchPredictionJob][google.cloud.aiplatform.v1beta1.JobService.CreateBatchPredictionJob].
  602. message CreateBatchPredictionJobRequest {
  603. // Required. The resource name of the Location to create the BatchPredictionJob in.
  604. // Format: `projects/{project}/locations/{location}`
  605. string parent = 1 [
  606. (google.api.field_behavior) = REQUIRED,
  607. (google.api.resource_reference) = {
  608. type: "locations.googleapis.com/Location"
  609. }
  610. ];
  611. // Required. The BatchPredictionJob to create.
  612. BatchPredictionJob batch_prediction_job = 2 [(google.api.field_behavior) = REQUIRED];
  613. }
  614. // Request message for [JobService.GetBatchPredictionJob][google.cloud.aiplatform.v1beta1.JobService.GetBatchPredictionJob].
  615. message GetBatchPredictionJobRequest {
  616. // Required. The name of the BatchPredictionJob resource.
  617. // Format:
  618. // `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}`
  619. string name = 1 [
  620. (google.api.field_behavior) = REQUIRED,
  621. (google.api.resource_reference) = {
  622. type: "aiplatform.googleapis.com/BatchPredictionJob"
  623. }
  624. ];
  625. }
  626. // Request message for [JobService.ListBatchPredictionJobs][google.cloud.aiplatform.v1beta1.JobService.ListBatchPredictionJobs].
  627. message ListBatchPredictionJobsRequest {
  628. // Required. The resource name of the Location to list the BatchPredictionJobs
  629. // from. Format: `projects/{project}/locations/{location}`
  630. string parent = 1 [
  631. (google.api.field_behavior) = REQUIRED,
  632. (google.api.resource_reference) = {
  633. type: "locations.googleapis.com/Location"
  634. }
  635. ];
  636. // The standard list filter.
  637. //
  638. // Supported fields:
  639. //
  640. // * `display_name` supports = and !=.
  641. //
  642. // * `state` supports = and !=.
  643. //
  644. // * `model_display_name` supports = and !=
  645. //
  646. // Some examples of using the filter are:
  647. //
  648. // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"`
  649. //
  650. // * `state="JOB_STATE_RUNNING" OR display_name="my_job"`
  651. //
  652. // * `NOT display_name="my_job"`
  653. //
  654. // * `state="JOB_STATE_FAILED"`
  655. string filter = 2;
  656. // The standard list page size.
  657. int32 page_size = 3;
  658. // The standard list page token.
  659. // Typically obtained via
  660. // [ListBatchPredictionJobsResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListBatchPredictionJobsResponse.next_page_token] of the previous
  661. // [JobService.ListBatchPredictionJobs][google.cloud.aiplatform.v1beta1.JobService.ListBatchPredictionJobs] call.
  662. string page_token = 4;
  663. // Mask specifying which fields to read.
  664. google.protobuf.FieldMask read_mask = 5;
  665. }
  666. // Response message for [JobService.ListBatchPredictionJobs][google.cloud.aiplatform.v1beta1.JobService.ListBatchPredictionJobs]
  667. message ListBatchPredictionJobsResponse {
  668. // List of BatchPredictionJobs in the requested page.
  669. repeated BatchPredictionJob batch_prediction_jobs = 1;
  670. // A token to retrieve the next page of results.
  671. // Pass to [ListBatchPredictionJobsRequest.page_token][google.cloud.aiplatform.v1beta1.ListBatchPredictionJobsRequest.page_token] to obtain that
  672. // page.
  673. string next_page_token = 2;
  674. }
  675. // Request message for [JobService.DeleteBatchPredictionJob][google.cloud.aiplatform.v1beta1.JobService.DeleteBatchPredictionJob].
  676. message DeleteBatchPredictionJobRequest {
  677. // Required. The name of the BatchPredictionJob resource to be deleted.
  678. // Format:
  679. // `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}`
  680. string name = 1 [
  681. (google.api.field_behavior) = REQUIRED,
  682. (google.api.resource_reference) = {
  683. type: "aiplatform.googleapis.com/BatchPredictionJob"
  684. }
  685. ];
  686. }
  687. // Request message for [JobService.CancelBatchPredictionJob][google.cloud.aiplatform.v1beta1.JobService.CancelBatchPredictionJob].
  688. message CancelBatchPredictionJobRequest {
  689. // Required. The name of the BatchPredictionJob to cancel.
  690. // Format:
  691. // `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}`
  692. string name = 1 [
  693. (google.api.field_behavior) = REQUIRED,
  694. (google.api.resource_reference) = {
  695. type: "aiplatform.googleapis.com/BatchPredictionJob"
  696. }
  697. ];
  698. }
  699. // Request message for
  700. // [JobService.CreateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.CreateModelDeploymentMonitoringJob].
  701. message CreateModelDeploymentMonitoringJobRequest {
  702. // Required. The parent of the ModelDeploymentMonitoringJob.
  703. // Format: `projects/{project}/locations/{location}`
  704. string parent = 1 [
  705. (google.api.field_behavior) = REQUIRED,
  706. (google.api.resource_reference) = {
  707. type: "locations.googleapis.com/Location"
  708. }
  709. ];
  710. // Required. The ModelDeploymentMonitoringJob to create
  711. ModelDeploymentMonitoringJob model_deployment_monitoring_job = 2 [(google.api.field_behavior) = REQUIRED];
  712. }
  713. // Request message for
  714. // [JobService.SearchModelDeploymentMonitoringStatsAnomalies][google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies].
  715. message SearchModelDeploymentMonitoringStatsAnomaliesRequest {
  716. // Stats requested for specific objective.
  717. message StatsAnomaliesObjective {
  718. ModelDeploymentMonitoringObjectiveType type = 1;
  719. // If set, all attribution scores between
  720. // [SearchModelDeploymentMonitoringStatsAnomaliesRequest.start_time][google.cloud.aiplatform.v1beta1.SearchModelDeploymentMonitoringStatsAnomaliesRequest.start_time] and
  721. // [SearchModelDeploymentMonitoringStatsAnomaliesRequest.end_time][google.cloud.aiplatform.v1beta1.SearchModelDeploymentMonitoringStatsAnomaliesRequest.end_time] are
  722. // fetched, and page token doesn't take affect in this case.
  723. // Only used to retrieve attribution score for the top Features which has
  724. // the highest attribution score in the latest monitoring run.
  725. int32 top_feature_count = 4;
  726. }
  727. // Required. ModelDeploymentMonitoring Job resource name.
  728. // Format:
  729. // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}
  730. string model_deployment_monitoring_job = 1 [
  731. (google.api.field_behavior) = REQUIRED,
  732. (google.api.resource_reference) = {
  733. type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
  734. }
  735. ];
  736. // Required. The DeployedModel ID of the
  737. // [google.cloud.aiplatform.master.ModelDeploymentMonitoringObjectiveConfig.deployed_model_id].
  738. string deployed_model_id = 2 [(google.api.field_behavior) = REQUIRED];
  739. // The feature display name. If specified, only return the stats belonging to
  740. // this feature. Format:
  741. // [ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name][google.cloud.aiplatform.v1beta1.ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name],
  742. // example: "user_destination".
  743. string feature_display_name = 3;
  744. // Required. Objectives of the stats to retrieve.
  745. repeated StatsAnomaliesObjective objectives = 4 [(google.api.field_behavior) = REQUIRED];
  746. // The standard list page size.
  747. int32 page_size = 5;
  748. // A page token received from a previous
  749. // [JobService.SearchModelDeploymentMonitoringStatsAnomalies][google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies]
  750. // call.
  751. string page_token = 6;
  752. // The earliest timestamp of stats being generated.
  753. // If not set, indicates fetching stats till the earliest possible one.
  754. google.protobuf.Timestamp start_time = 7;
  755. // The latest timestamp of stats being generated.
  756. // If not set, indicates feching stats till the latest possible one.
  757. google.protobuf.Timestamp end_time = 8;
  758. }
  759. // Response message for
  760. // [JobService.SearchModelDeploymentMonitoringStatsAnomalies][google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies].
  761. message SearchModelDeploymentMonitoringStatsAnomaliesResponse {
  762. // Stats retrieved for requested objectives.
  763. // There are at most 1000
  764. // [ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.prediction_stats][google.cloud.aiplatform.v1beta1.ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.prediction_stats]
  765. // in the response.
  766. repeated ModelMonitoringStatsAnomalies monitoring_stats = 1;
  767. // The page token that can be used by the next
  768. // [JobService.SearchModelDeploymentMonitoringStatsAnomalies][google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies]
  769. // call.
  770. string next_page_token = 2;
  771. }
  772. // Request message for
  773. // [JobService.GetModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.GetModelDeploymentMonitoringJob].
  774. message GetModelDeploymentMonitoringJobRequest {
  775. // Required. The resource name of the ModelDeploymentMonitoringJob.
  776. // Format:
  777. // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`
  778. string name = 1 [
  779. (google.api.field_behavior) = REQUIRED,
  780. (google.api.resource_reference) = {
  781. type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
  782. }
  783. ];
  784. }
  785. // Request message for
  786. // [JobService.ListModelDeploymentMonitoringJobs][google.cloud.aiplatform.v1beta1.JobService.ListModelDeploymentMonitoringJobs].
  787. message ListModelDeploymentMonitoringJobsRequest {
  788. // Required. The parent of the ModelDeploymentMonitoringJob.
  789. // Format: `projects/{project}/locations/{location}`
  790. string parent = 1 [
  791. (google.api.field_behavior) = REQUIRED,
  792. (google.api.resource_reference) = {
  793. type: "locations.googleapis.com/Location"
  794. }
  795. ];
  796. // The standard list filter.
  797. string filter = 2;
  798. // The standard list page size.
  799. int32 page_size = 3;
  800. // The standard list page token.
  801. string page_token = 4;
  802. // Mask specifying which fields to read
  803. google.protobuf.FieldMask read_mask = 5;
  804. }
  805. // Response message for
  806. // [JobService.ListModelDeploymentMonitoringJobs][google.cloud.aiplatform.v1beta1.JobService.ListModelDeploymentMonitoringJobs].
  807. message ListModelDeploymentMonitoringJobsResponse {
  808. // A list of ModelDeploymentMonitoringJobs that matches the specified filter
  809. // in the request.
  810. repeated ModelDeploymentMonitoringJob model_deployment_monitoring_jobs = 1;
  811. // The standard List next-page token.
  812. string next_page_token = 2;
  813. }
  814. // Request message for
  815. // [JobService.UpdateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.UpdateModelDeploymentMonitoringJob].
  816. message UpdateModelDeploymentMonitoringJobRequest {
  817. // Required. The model monitoring configuration which replaces the resource on the
  818. // server.
  819. ModelDeploymentMonitoringJob model_deployment_monitoring_job = 1 [(google.api.field_behavior) = REQUIRED];
  820. // Required. The update mask applies to the resource.
  821. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  822. }
  823. // Request message for
  824. // [JobService.DeleteModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.DeleteModelDeploymentMonitoringJob].
  825. message DeleteModelDeploymentMonitoringJobRequest {
  826. // Required. The resource name of the model monitoring job to delete.
  827. // Format:
  828. // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`
  829. string name = 1 [
  830. (google.api.field_behavior) = REQUIRED,
  831. (google.api.resource_reference) = {
  832. type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
  833. }
  834. ];
  835. }
  836. // Request message for
  837. // [JobService.PauseModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.PauseModelDeploymentMonitoringJob].
  838. message PauseModelDeploymentMonitoringJobRequest {
  839. // Required. The resource name of the ModelDeploymentMonitoringJob to pause.
  840. // Format:
  841. // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`
  842. string name = 1 [
  843. (google.api.field_behavior) = REQUIRED,
  844. (google.api.resource_reference) = {
  845. type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
  846. }
  847. ];
  848. }
  849. // Request message for
  850. // [JobService.ResumeModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.ResumeModelDeploymentMonitoringJob].
  851. message ResumeModelDeploymentMonitoringJobRequest {
  852. // Required. The resource name of the ModelDeploymentMonitoringJob to resume.
  853. // Format:
  854. // `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`
  855. string name = 1 [
  856. (google.api.field_behavior) = REQUIRED,
  857. (google.api.resource_reference) = {
  858. type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
  859. }
  860. ];
  861. }
  862. // Runtime operation information for
  863. // [JobService.UpdateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.UpdateModelDeploymentMonitoringJob].
  864. message UpdateModelDeploymentMonitoringJobOperationMetadata {
  865. // The operation generic information.
  866. GenericOperationMetadata generic_metadata = 1;
  867. }