Skip to main content

ora_server/proto/generated/
ora.admin.v1.rs

1// This file is @generated by prost-build.
2/// An executor connected to the Ora server.
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct Executor {
5    /// The ID of the executor.
6    #[prost(string, tag = "1")]
7    pub id: ::prost::alloc::string::String,
8    /// The name of the executor.
9    #[prost(string, optional, tag = "2")]
10    pub name: ::core::option::Option<::prost::alloc::string::String>,
11    /// The time the executor was last seen.
12    #[prost(message, optional, tag = "3")]
13    pub last_seen_at: ::core::option::Option<::prost_types::Timestamp>,
14    /// Job queues of the executor.
15    #[prost(message, repeated, tag = "4")]
16    pub queues: ::prost::alloc::vec::Vec<ExecutorJobQueue>,
17}
18impl ::prost::Name for Executor {
19    const NAME: &'static str = "Executor";
20    const PACKAGE: &'static str = "ora.admin.v1";
21    fn full_name() -> ::prost::alloc::string::String {
22        "ora.admin.v1.Executor".into()
23    }
24    fn type_url() -> ::prost::alloc::string::String {
25        "/ora.admin.v1.Executor".into()
26    }
27}
28/// The job queue of an executor for a specific job type.
29#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
30pub struct ExecutorJobQueue {
31    /// The job type the queue is for.
32    #[prost(message, optional, tag = "1")]
33    pub job_type: ::core::option::Option<super::super::jobs::v1::JobType>,
34    /// The maximum amount of concurrent executions allowed for this job type.
35    #[prost(uint64, tag = "2")]
36    pub max_concurrent_executions: u64,
37    /// The amount of active executions in the queue.
38    #[prost(uint64, tag = "3")]
39    pub active_executions: u64,
40}
41impl ::prost::Name for ExecutorJobQueue {
42    const NAME: &'static str = "ExecutorJobQueue";
43    const PACKAGE: &'static str = "ora.admin.v1";
44    fn full_name() -> ::prost::alloc::string::String {
45        "ora.admin.v1.ExecutorJobQueue".into()
46    }
47    fn type_url() -> ::prost::alloc::string::String {
48        "/ora.admin.v1.ExecutorJobQueue".into()
49    }
50}
51/// A job execution.
52#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
53pub struct Execution {
54    /// The unique ID of the execution.
55    #[prost(string, tag = "1")]
56    pub id: ::prost::alloc::string::String,
57    /// The ID of the executor handling the execution.
58    #[prost(string, optional, tag = "2")]
59    pub executor_id: ::core::option::Option<::prost::alloc::string::String>,
60    /// The status of the execution.
61    #[prost(enumeration = "ExecutionStatus", tag = "3")]
62    pub status: i32,
63    /// The timestamp when the execution was created.
64    #[prost(message, optional, tag = "4")]
65    pub created_at: ::core::option::Option<::prost_types::Timestamp>,
66    /// The timestamp when the execution started.
67    #[prost(message, optional, tag = "5")]
68    pub started_at: ::core::option::Option<::prost_types::Timestamp>,
69    /// The timestamp when the execution successfully completed.
70    #[prost(message, optional, tag = "6")]
71    pub succeeded_at: ::core::option::Option<::prost_types::Timestamp>,
72    /// The timestamp when the execution failed.
73    #[prost(message, optional, tag = "7")]
74    pub failed_at: ::core::option::Option<::prost_types::Timestamp>,
75    /// The timestamp when the execution was cancelled.
76    #[prost(message, optional, tag = "8")]
77    pub cancelled_at: ::core::option::Option<::prost_types::Timestamp>,
78    /// The output or result of the execution.
79    #[prost(string, optional, tag = "9")]
80    pub output_json: ::core::option::Option<::prost::alloc::string::String>,
81    /// The error message if the execution failed or was cancelled.
82    #[prost(string, optional, tag = "10")]
83    pub failure_reason: ::core::option::Option<::prost::alloc::string::String>,
84}
85impl ::prost::Name for Execution {
86    const NAME: &'static str = "Execution";
87    const PACKAGE: &'static str = "ora.admin.v1";
88    fn full_name() -> ::prost::alloc::string::String {
89        "ora.admin.v1.Execution".into()
90    }
91    fn type_url() -> ::prost::alloc::string::String {
92        "/ora.admin.v1.Execution".into()
93    }
94}
95/// Status of a job execution.
96#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
97#[repr(i32)]
98pub enum ExecutionStatus {
99    /// Unknown status.
100    Unspecified = 0,
101    /// The execution is pending.
102    Pending = 1,
103    /// The execution is in progress.
104    InProgress = 2,
105    /// The execution has completed successfully.
106    Succeeded = 3,
107    /// The execution has failed.
108    Failed = 4,
109    /// The execution was cancelled.
110    Cancelled = 5,
111}
112impl ExecutionStatus {
113    /// String value of the enum field names used in the ProtoBuf definition.
114    ///
115    /// The values are not transformed in any way and thus are considered stable
116    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
117    pub fn as_str_name(&self) -> &'static str {
118        match self {
119            Self::Unspecified => "EXECUTION_STATUS_UNSPECIFIED",
120            Self::Pending => "EXECUTION_STATUS_PENDING",
121            Self::InProgress => "EXECUTION_STATUS_IN_PROGRESS",
122            Self::Succeeded => "EXECUTION_STATUS_SUCCEEDED",
123            Self::Failed => "EXECUTION_STATUS_FAILED",
124            Self::Cancelled => "EXECUTION_STATUS_CANCELLED",
125        }
126    }
127    /// Creates an enum from field names used in the ProtoBuf definition.
128    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
129        match value {
130            "EXECUTION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
131            "EXECUTION_STATUS_PENDING" => Some(Self::Pending),
132            "EXECUTION_STATUS_IN_PROGRESS" => Some(Self::InProgress),
133            "EXECUTION_STATUS_SUCCEEDED" => Some(Self::Succeeded),
134            "EXECUTION_STATUS_FAILED" => Some(Self::Failed),
135            "EXECUTION_STATUS_CANCELLED" => Some(Self::Cancelled),
136            _ => None,
137        }
138    }
139}
140/// Details of a job.
141#[derive(Clone, PartialEq, ::prost::Message)]
142pub struct Job {
143    /// The unique ID of the job.
144    #[prost(string, tag = "1")]
145    pub id: ::prost::alloc::string::String,
146    /// The job definition.
147    #[prost(message, optional, tag = "2")]
148    pub job: ::core::option::Option<super::super::jobs::v1::Job>,
149    /// A schedule associated with the job (if any).
150    #[prost(string, optional, tag = "3")]
151    pub schedule_id: ::core::option::Option<::prost::alloc::string::String>,
152    /// The timestamp when the job was created.
153    #[prost(message, optional, tag = "4")]
154    pub created_at: ::core::option::Option<::prost_types::Timestamp>,
155    /// The executions of the job.
156    #[prost(message, repeated, tag = "5")]
157    pub executions: ::prost::alloc::vec::Vec<Execution>,
158}
159impl ::prost::Name for Job {
160    const NAME: &'static str = "Job";
161    const PACKAGE: &'static str = "ora.admin.v1";
162    fn full_name() -> ::prost::alloc::string::String {
163        "ora.admin.v1.Job".into()
164    }
165    fn type_url() -> ::prost::alloc::string::String {
166        "/ora.admin.v1.Job".into()
167    }
168}
169/// Filters for listing jobs.
170#[derive(Clone, PartialEq, ::prost::Message)]
171pub struct JobFilters {
172    /// Filter by job IDs.
173    #[prost(string, repeated, tag = "1")]
174    pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
175    /// Filter by job type IDs.
176    #[prost(string, repeated, tag = "2")]
177    pub job_type_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
178    /// Filter by schedule IDs.
179    #[prost(string, repeated, tag = "3")]
180    pub schedule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
181    /// Filter by executor IDs.
182    #[prost(string, repeated, tag = "4")]
183    pub executor_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
184    /// Filter by execution IDs.
185    #[prost(string, repeated, tag = "5")]
186    pub execution_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
187    /// Filter by the status of the last execution.
188    #[prost(enumeration = "ExecutionStatus", repeated, tag = "6")]
189    pub execution_statuses: ::prost::alloc::vec::Vec<i32>,
190    /// Filter by target execution times.
191    ///
192    /// The range can be open-ended in either direction.
193    #[prost(message, optional, tag = "7")]
194    pub target_execution_time: ::core::option::Option<super::super::common::v1::TimeRange>,
195    /// Filter by creation time.
196    ///
197    /// The range can be open-ended in either direction.
198    #[prost(message, optional, tag = "8")]
199    pub created_at: ::core::option::Option<super::super::common::v1::TimeRange>,
200    /// Filter by labels.
201    #[prost(message, repeated, tag = "9")]
202    pub labels: ::prost::alloc::vec::Vec<super::super::common::v1::LabelFilter>,
203}
204impl ::prost::Name for JobFilters {
205    const NAME: &'static str = "JobFilters";
206    const PACKAGE: &'static str = "ora.admin.v1";
207    fn full_name() -> ::prost::alloc::string::String {
208        "ora.admin.v1.JobFilters".into()
209    }
210    fn type_url() -> ::prost::alloc::string::String {
211        "/ora.admin.v1.JobFilters".into()
212    }
213}
214/// Ordering options for listing jobs.
215#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
216#[repr(i32)]
217pub enum JobOrderBy {
218    /// Default ordering (by creation time descending).
219    Unspecified = 0,
220    /// Order by creation time ascending.
221    CreatedAtAsc = 1,
222    /// Order by creation time descending.
223    CreatedAtDesc = 2,
224    /// Order by target execution time ascending.
225    TargetExecutionTimeAsc = 3,
226    /// Order by target execution time descending.
227    TargetExecutionTimeDesc = 4,
228}
229impl JobOrderBy {
230    /// String value of the enum field names used in the ProtoBuf definition.
231    ///
232    /// The values are not transformed in any way and thus are considered stable
233    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
234    pub fn as_str_name(&self) -> &'static str {
235        match self {
236            Self::Unspecified => "JOB_ORDER_BY_UNSPECIFIED",
237            Self::CreatedAtAsc => "JOB_ORDER_BY_CREATED_AT_ASC",
238            Self::CreatedAtDesc => "JOB_ORDER_BY_CREATED_AT_DESC",
239            Self::TargetExecutionTimeAsc => "JOB_ORDER_BY_TARGET_EXECUTION_TIME_ASC",
240            Self::TargetExecutionTimeDesc => "JOB_ORDER_BY_TARGET_EXECUTION_TIME_DESC",
241        }
242    }
243    /// Creates an enum from field names used in the ProtoBuf definition.
244    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
245        match value {
246            "JOB_ORDER_BY_UNSPECIFIED" => Some(Self::Unspecified),
247            "JOB_ORDER_BY_CREATED_AT_ASC" => Some(Self::CreatedAtAsc),
248            "JOB_ORDER_BY_CREATED_AT_DESC" => Some(Self::CreatedAtDesc),
249            "JOB_ORDER_BY_TARGET_EXECUTION_TIME_ASC" => Some(Self::TargetExecutionTimeAsc),
250            "JOB_ORDER_BY_TARGET_EXECUTION_TIME_DESC" => Some(Self::TargetExecutionTimeDesc),
251            _ => None,
252        }
253    }
254}
255/// Pagination options for listing requests.
256#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
257pub struct PaginationOptions {
258    /// The maximum number of items to return.
259    #[prost(uint32, tag = "1")]
260    pub page_size: u32,
261    /// The token for the next page of results
262    /// from a previous request (if any).
263    ///
264    /// Any filters and ordering applied
265    /// in the previous request must be identical
266    /// to those in the current request.
267    /// In case of mismatch the behavior is unspecified.
268    #[prost(string, optional, tag = "2")]
269    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
270}
271impl ::prost::Name for PaginationOptions {
272    const NAME: &'static str = "PaginationOptions";
273    const PACKAGE: &'static str = "ora.admin.v1";
274    fn full_name() -> ::prost::alloc::string::String {
275        "ora.admin.v1.PaginationOptions".into()
276    }
277    fn type_url() -> ::prost::alloc::string::String {
278        "/ora.admin.v1.PaginationOptions".into()
279    }
280}
281/// Schedule details.
282#[derive(Clone, PartialEq, ::prost::Message)]
283pub struct Schedule {
284    /// The unique ID of the schedule.
285    #[prost(string, tag = "1")]
286    pub id: ::prost::alloc::string::String,
287    /// The schedule definition.
288    #[prost(message, optional, tag = "2")]
289    pub schedule: ::core::option::Option<super::super::schedules::v1::Schedule>,
290    /// The timestamp when the schedule was created.
291    #[prost(message, optional, tag = "3")]
292    pub created_at: ::core::option::Option<::prost_types::Timestamp>,
293    /// The status of the schedule.
294    #[prost(enumeration = "ScheduleStatus", tag = "4")]
295    pub status: i32,
296    /// The timestamp when the schedule was stopped (if any).
297    #[prost(message, optional, tag = "5")]
298    pub stopped_at: ::core::option::Option<::prost_types::Timestamp>,
299}
300impl ::prost::Name for Schedule {
301    const NAME: &'static str = "Schedule";
302    const PACKAGE: &'static str = "ora.admin.v1";
303    fn full_name() -> ::prost::alloc::string::String {
304        "ora.admin.v1.Schedule".into()
305    }
306    fn type_url() -> ::prost::alloc::string::String {
307        "/ora.admin.v1.Schedule".into()
308    }
309}
310/// Filters for listing schedules.
311#[derive(Clone, PartialEq, ::prost::Message)]
312pub struct ScheduleFilters {
313    /// Filter by schedule IDs.
314    #[prost(string, repeated, tag = "1")]
315    pub schedule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
316    /// Filter by job type IDs.
317    #[prost(string, repeated, tag = "2")]
318    pub job_type_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
319    /// Filter by status.
320    #[prost(enumeration = "ScheduleStatus", repeated, tag = "3")]
321    pub statuses: ::prost::alloc::vec::Vec<i32>,
322    /// Filter by creation time.
323    ///
324    /// The range can be open-ended in either direction.
325    #[prost(message, optional, tag = "4")]
326    pub created_at: ::core::option::Option<super::super::common::v1::TimeRange>,
327    /// Filter by labels.
328    #[prost(message, repeated, tag = "5")]
329    pub labels: ::prost::alloc::vec::Vec<super::super::common::v1::LabelFilter>,
330}
331impl ::prost::Name for ScheduleFilters {
332    const NAME: &'static str = "ScheduleFilters";
333    const PACKAGE: &'static str = "ora.admin.v1";
334    fn full_name() -> ::prost::alloc::string::String {
335        "ora.admin.v1.ScheduleFilters".into()
336    }
337    fn type_url() -> ::prost::alloc::string::String {
338        "/ora.admin.v1.ScheduleFilters".into()
339    }
340}
341/// The status of a schedule.
342#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
343#[repr(i32)]
344pub enum ScheduleStatus {
345    /// Unknown status.
346    Unspecified = 0,
347    /// The schedule is active.
348    Active = 1,
349    /// The schedule was stopped.
350    ///
351    /// Once a schedule is stopped, it cannot be re-activated.
352    Stopped = 2,
353}
354impl ScheduleStatus {
355    /// String value of the enum field names used in the ProtoBuf definition.
356    ///
357    /// The values are not transformed in any way and thus are considered stable
358    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
359    pub fn as_str_name(&self) -> &'static str {
360        match self {
361            Self::Unspecified => "SCHEDULE_STATUS_UNSPECIFIED",
362            Self::Active => "SCHEDULE_STATUS_ACTIVE",
363            Self::Stopped => "SCHEDULE_STATUS_STOPPED",
364        }
365    }
366    /// Creates an enum from field names used in the ProtoBuf definition.
367    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
368        match value {
369            "SCHEDULE_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
370            "SCHEDULE_STATUS_ACTIVE" => Some(Self::Active),
371            "SCHEDULE_STATUS_STOPPED" => Some(Self::Stopped),
372            _ => None,
373        }
374    }
375}
376/// Ordering options for listing schedules.
377#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
378#[repr(i32)]
379pub enum ScheduleOrderBy {
380    /// Unspecified ordering.
381    Unspecified = 0,
382    /// Order by creation time.
383    CreatedAtAsc = 1,
384    /// Order by creation time, descending.
385    CreatedAtDesc = 2,
386}
387impl ScheduleOrderBy {
388    /// String value of the enum field names used in the ProtoBuf definition.
389    ///
390    /// The values are not transformed in any way and thus are considered stable
391    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
392    pub fn as_str_name(&self) -> &'static str {
393        match self {
394            Self::Unspecified => "SCHEDULE_ORDER_BY_UNSPECIFIED",
395            Self::CreatedAtAsc => "SCHEDULE_ORDER_BY_CREATED_AT_ASC",
396            Self::CreatedAtDesc => "SCHEDULE_ORDER_BY_CREATED_AT_DESC",
397        }
398    }
399    /// Creates an enum from field names used in the ProtoBuf definition.
400    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
401        match value {
402            "SCHEDULE_ORDER_BY_UNSPECIFIED" => Some(Self::Unspecified),
403            "SCHEDULE_ORDER_BY_CREATED_AT_ASC" => Some(Self::CreatedAtAsc),
404            "SCHEDULE_ORDER_BY_CREATED_AT_DESC" => Some(Self::CreatedAtDesc),
405            _ => None,
406        }
407    }
408}
409/// Request for `ListJobTypes`.
410#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
411pub struct ListJobTypesRequest {}
412impl ::prost::Name for ListJobTypesRequest {
413    const NAME: &'static str = "ListJobTypesRequest";
414    const PACKAGE: &'static str = "ora.admin.v1";
415    fn full_name() -> ::prost::alloc::string::String {
416        "ora.admin.v1.ListJobTypesRequest".into()
417    }
418    fn type_url() -> ::prost::alloc::string::String {
419        "/ora.admin.v1.ListJobTypesRequest".into()
420    }
421}
422/// Response for `ListJobTypes`.
423#[derive(Clone, PartialEq, ::prost::Message)]
424pub struct ListJobTypesResponse {
425    /// The list of job types.
426    #[prost(message, repeated, tag = "1")]
427    pub job_types: ::prost::alloc::vec::Vec<super::super::jobs::v1::JobType>,
428}
429impl ::prost::Name for ListJobTypesResponse {
430    const NAME: &'static str = "ListJobTypesResponse";
431    const PACKAGE: &'static str = "ora.admin.v1";
432    fn full_name() -> ::prost::alloc::string::String {
433        "ora.admin.v1.ListJobTypesResponse".into()
434    }
435    fn type_url() -> ::prost::alloc::string::String {
436        "/ora.admin.v1.ListJobTypesResponse".into()
437    }
438}
439/// Request for `AddJobs`.
440#[derive(Clone, PartialEq, ::prost::Message)]
441pub struct AddJobsRequest {
442    /// The jobs to be added.
443    #[prost(message, repeated, tag = "1")]
444    pub jobs: ::prost::alloc::vec::Vec<super::super::jobs::v1::Job>,
445    /// Optional filters to prevent adding jobs.
446    ///
447    /// If any jobs exist that match the filters, no new jobs will be added.
448    #[prost(message, optional, tag = "2")]
449    pub if_not_exists: ::core::option::Option<JobFilters>,
450}
451impl ::prost::Name for AddJobsRequest {
452    const NAME: &'static str = "AddJobsRequest";
453    const PACKAGE: &'static str = "ora.admin.v1";
454    fn full_name() -> ::prost::alloc::string::String {
455        "ora.admin.v1.AddJobsRequest".into()
456    }
457    fn type_url() -> ::prost::alloc::string::String {
458        "/ora.admin.v1.AddJobsRequest".into()
459    }
460}
461/// Response for `AddJobs`.
462#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
463pub struct AddJobsResponse {
464    /// The IDs of the added jobs.
465    #[prost(string, repeated, tag = "1")]
466    pub job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
467    /// The IDs of existing jobs that
468    /// matched the `if_not_exists` filters (if any).
469    #[prost(string, repeated, tag = "2")]
470    pub existing_job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
471}
472impl ::prost::Name for AddJobsResponse {
473    const NAME: &'static str = "AddJobsResponse";
474    const PACKAGE: &'static str = "ora.admin.v1";
475    fn full_name() -> ::prost::alloc::string::String {
476        "ora.admin.v1.AddJobsResponse".into()
477    }
478    fn type_url() -> ::prost::alloc::string::String {
479        "/ora.admin.v1.AddJobsResponse".into()
480    }
481}
482/// Request for `ListJobs`.
483#[derive(Clone, PartialEq, ::prost::Message)]
484pub struct ListJobsRequest {
485    /// The filters to apply when listing jobs.
486    #[prost(message, optional, tag = "1")]
487    pub filters: ::core::option::Option<JobFilters>,
488    /// The ordering options.
489    #[prost(enumeration = "JobOrderBy", tag = "2")]
490    pub order_by: i32,
491    /// Pagination options.
492    #[prost(message, optional, tag = "3")]
493    pub pagination: ::core::option::Option<PaginationOptions>,
494}
495impl ::prost::Name for ListJobsRequest {
496    const NAME: &'static str = "ListJobsRequest";
497    const PACKAGE: &'static str = "ora.admin.v1";
498    fn full_name() -> ::prost::alloc::string::String {
499        "ora.admin.v1.ListJobsRequest".into()
500    }
501    fn type_url() -> ::prost::alloc::string::String {
502        "/ora.admin.v1.ListJobsRequest".into()
503    }
504}
505/// Response for `ListJobs`.
506#[derive(Clone, PartialEq, ::prost::Message)]
507pub struct ListJobsResponse {
508    /// The list of jobs.
509    #[prost(message, repeated, tag = "1")]
510    pub jobs: ::prost::alloc::vec::Vec<Job>,
511    /// The token for the next page of results (if any).
512    #[prost(string, optional, tag = "2")]
513    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
514}
515impl ::prost::Name for ListJobsResponse {
516    const NAME: &'static str = "ListJobsResponse";
517    const PACKAGE: &'static str = "ora.admin.v1";
518    fn full_name() -> ::prost::alloc::string::String {
519        "ora.admin.v1.ListJobsResponse".into()
520    }
521    fn type_url() -> ::prost::alloc::string::String {
522        "/ora.admin.v1.ListJobsResponse".into()
523    }
524}
525/// Request for `CountJobs`.
526#[derive(Clone, PartialEq, ::prost::Message)]
527pub struct CountJobsRequest {
528    /// The filters to apply when counting jobs.
529    #[prost(message, optional, tag = "1")]
530    pub filters: ::core::option::Option<JobFilters>,
531}
532impl ::prost::Name for CountJobsRequest {
533    const NAME: &'static str = "CountJobsRequest";
534    const PACKAGE: &'static str = "ora.admin.v1";
535    fn full_name() -> ::prost::alloc::string::String {
536        "ora.admin.v1.CountJobsRequest".into()
537    }
538    fn type_url() -> ::prost::alloc::string::String {
539        "/ora.admin.v1.CountJobsRequest".into()
540    }
541}
542/// Response for `CountJobs`.
543#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
544pub struct CountJobsResponse {
545    /// The number of jobs.
546    #[prost(uint64, tag = "1")]
547    pub count: u64,
548}
549impl ::prost::Name for CountJobsResponse {
550    const NAME: &'static str = "CountJobsResponse";
551    const PACKAGE: &'static str = "ora.admin.v1";
552    fn full_name() -> ::prost::alloc::string::String {
553        "ora.admin.v1.CountJobsResponse".into()
554    }
555    fn type_url() -> ::prost::alloc::string::String {
556        "/ora.admin.v1.CountJobsResponse".into()
557    }
558}
559/// Request for `CancelJobs`.
560#[derive(Clone, PartialEq, ::prost::Message)]
561pub struct CancelJobsRequest {
562    /// The filters to apply when cancelling jobs.
563    #[prost(message, optional, tag = "1")]
564    pub filters: ::core::option::Option<JobFilters>,
565}
566impl ::prost::Name for CancelJobsRequest {
567    const NAME: &'static str = "CancelJobsRequest";
568    const PACKAGE: &'static str = "ora.admin.v1";
569    fn full_name() -> ::prost::alloc::string::String {
570        "ora.admin.v1.CancelJobsRequest".into()
571    }
572    fn type_url() -> ::prost::alloc::string::String {
573        "/ora.admin.v1.CancelJobsRequest".into()
574    }
575}
576/// Response for `CancelJobs`.
577#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
578pub struct CancelJobsResponse {
579    /// The list of cancelled job IDs.
580    #[prost(string, repeated, tag = "1")]
581    pub cancelled_job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
582}
583impl ::prost::Name for CancelJobsResponse {
584    const NAME: &'static str = "CancelJobsResponse";
585    const PACKAGE: &'static str = "ora.admin.v1";
586    fn full_name() -> ::prost::alloc::string::String {
587        "ora.admin.v1.CancelJobsResponse".into()
588    }
589    fn type_url() -> ::prost::alloc::string::String {
590        "/ora.admin.v1.CancelJobsResponse".into()
591    }
592}
593/// Request for `AddSchedules`.
594#[derive(Clone, PartialEq, ::prost::Message)]
595pub struct AddSchedulesRequest {
596    /// The schedules to be added.
597    #[prost(message, repeated, tag = "1")]
598    pub schedules: ::prost::alloc::vec::Vec<super::super::schedules::v1::Schedule>,
599    /// Optional filters to prevent adding schedules.
600    ///
601    /// If any schedules exist that match the filters, no new schedules will be added.
602    #[prost(message, optional, tag = "2")]
603    pub if_not_exists: ::core::option::Option<ScheduleFilters>,
604    /// Whether to inherit labels from the schedules when creating jobs.
605    ///
606    /// By default, labels are inherited.
607    #[prost(bool, optional, tag = "3")]
608    pub inherit_labels: ::core::option::Option<bool>,
609}
610impl ::prost::Name for AddSchedulesRequest {
611    const NAME: &'static str = "AddSchedulesRequest";
612    const PACKAGE: &'static str = "ora.admin.v1";
613    fn full_name() -> ::prost::alloc::string::String {
614        "ora.admin.v1.AddSchedulesRequest".into()
615    }
616    fn type_url() -> ::prost::alloc::string::String {
617        "/ora.admin.v1.AddSchedulesRequest".into()
618    }
619}
620/// Response for `AddSchedules`.
621#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
622pub struct AddSchedulesResponse {
623    /// The IDs of the added schedules.
624    #[prost(string, repeated, tag = "1")]
625    pub schedule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
626    /// The IDs of existing schedules that
627    /// matched the `if_not_exists` filters (if any).
628    #[prost(string, repeated, tag = "2")]
629    pub existing_schedule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
630}
631impl ::prost::Name for AddSchedulesResponse {
632    const NAME: &'static str = "AddSchedulesResponse";
633    const PACKAGE: &'static str = "ora.admin.v1";
634    fn full_name() -> ::prost::alloc::string::String {
635        "ora.admin.v1.AddSchedulesResponse".into()
636    }
637    fn type_url() -> ::prost::alloc::string::String {
638        "/ora.admin.v1.AddSchedulesResponse".into()
639    }
640}
641/// Request for `ListSchedules`.
642#[derive(Clone, PartialEq, ::prost::Message)]
643pub struct ListSchedulesRequest {
644    /// The filters to apply when listing schedules.
645    #[prost(message, optional, tag = "1")]
646    pub filters: ::core::option::Option<ScheduleFilters>,
647    /// The ordering options.
648    #[prost(enumeration = "ScheduleOrderBy", tag = "2")]
649    pub order_by: i32,
650    /// Pagination options.
651    #[prost(message, optional, tag = "3")]
652    pub pagination: ::core::option::Option<PaginationOptions>,
653}
654impl ::prost::Name for ListSchedulesRequest {
655    const NAME: &'static str = "ListSchedulesRequest";
656    const PACKAGE: &'static str = "ora.admin.v1";
657    fn full_name() -> ::prost::alloc::string::String {
658        "ora.admin.v1.ListSchedulesRequest".into()
659    }
660    fn type_url() -> ::prost::alloc::string::String {
661        "/ora.admin.v1.ListSchedulesRequest".into()
662    }
663}
664/// Response for `ListSchedules`.
665#[derive(Clone, PartialEq, ::prost::Message)]
666pub struct ListSchedulesResponse {
667    /// The list of schedules.
668    #[prost(message, repeated, tag = "1")]
669    pub schedules: ::prost::alloc::vec::Vec<Schedule>,
670    /// The token for the next page of results (if any).
671    #[prost(string, optional, tag = "2")]
672    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
673}
674impl ::prost::Name for ListSchedulesResponse {
675    const NAME: &'static str = "ListSchedulesResponse";
676    const PACKAGE: &'static str = "ora.admin.v1";
677    fn full_name() -> ::prost::alloc::string::String {
678        "ora.admin.v1.ListSchedulesResponse".into()
679    }
680    fn type_url() -> ::prost::alloc::string::String {
681        "/ora.admin.v1.ListSchedulesResponse".into()
682    }
683}
684/// Request for `CountSchedules`.
685#[derive(Clone, PartialEq, ::prost::Message)]
686pub struct CountSchedulesRequest {
687    /// The filters to apply when counting schedules.
688    #[prost(message, optional, tag = "1")]
689    pub filters: ::core::option::Option<ScheduleFilters>,
690}
691impl ::prost::Name for CountSchedulesRequest {
692    const NAME: &'static str = "CountSchedulesRequest";
693    const PACKAGE: &'static str = "ora.admin.v1";
694    fn full_name() -> ::prost::alloc::string::String {
695        "ora.admin.v1.CountSchedulesRequest".into()
696    }
697    fn type_url() -> ::prost::alloc::string::String {
698        "/ora.admin.v1.CountSchedulesRequest".into()
699    }
700}
701/// Response for `CountSchedules`.
702#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
703pub struct CountSchedulesResponse {
704    /// The number of schedules.
705    #[prost(uint64, tag = "1")]
706    pub count: u64,
707}
708impl ::prost::Name for CountSchedulesResponse {
709    const NAME: &'static str = "CountSchedulesResponse";
710    const PACKAGE: &'static str = "ora.admin.v1";
711    fn full_name() -> ::prost::alloc::string::String {
712        "ora.admin.v1.CountSchedulesResponse".into()
713    }
714    fn type_url() -> ::prost::alloc::string::String {
715        "/ora.admin.v1.CountSchedulesResponse".into()
716    }
717}
718/// Request for `StopSchedules`.
719#[derive(Clone, PartialEq, ::prost::Message)]
720pub struct StopSchedulesRequest {
721    /// The filters to find schedules to stop.
722    #[prost(message, optional, tag = "1")]
723    pub filters: ::core::option::Option<ScheduleFilters>,
724    /// Whether to also cancel active jobs of the stopped schedules.
725    #[prost(bool, tag = "2")]
726    pub cancel_active_jobs: bool,
727}
728impl ::prost::Name for StopSchedulesRequest {
729    const NAME: &'static str = "StopSchedulesRequest";
730    const PACKAGE: &'static str = "ora.admin.v1";
731    fn full_name() -> ::prost::alloc::string::String {
732        "ora.admin.v1.StopSchedulesRequest".into()
733    }
734    fn type_url() -> ::prost::alloc::string::String {
735        "/ora.admin.v1.StopSchedulesRequest".into()
736    }
737}
738/// Response for `StopSchedules`.
739#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
740pub struct StopSchedulesResponse {
741    /// The list of cancelled schedule IDs.
742    #[prost(string, repeated, tag = "1")]
743    pub cancelled_schedule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
744}
745impl ::prost::Name for StopSchedulesResponse {
746    const NAME: &'static str = "StopSchedulesResponse";
747    const PACKAGE: &'static str = "ora.admin.v1";
748    fn full_name() -> ::prost::alloc::string::String {
749        "ora.admin.v1.StopSchedulesResponse".into()
750    }
751    fn type_url() -> ::prost::alloc::string::String {
752        "/ora.admin.v1.StopSchedulesResponse".into()
753    }
754}
755/// Request for `ListExecutors`.
756#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
757pub struct ListExecutorsRequest {}
758impl ::prost::Name for ListExecutorsRequest {
759    const NAME: &'static str = "ListExecutorsRequest";
760    const PACKAGE: &'static str = "ora.admin.v1";
761    fn full_name() -> ::prost::alloc::string::String {
762        "ora.admin.v1.ListExecutorsRequest".into()
763    }
764    fn type_url() -> ::prost::alloc::string::String {
765        "/ora.admin.v1.ListExecutorsRequest".into()
766    }
767}
768/// Response for `ListExecutors`.
769#[derive(Clone, PartialEq, ::prost::Message)]
770pub struct ListExecutorsResponse {
771    /// The list of executors.
772    #[prost(message, repeated, tag = "1")]
773    pub executors: ::prost::alloc::vec::Vec<Executor>,
774}
775impl ::prost::Name for ListExecutorsResponse {
776    const NAME: &'static str = "ListExecutorsResponse";
777    const PACKAGE: &'static str = "ora.admin.v1";
778    fn full_name() -> ::prost::alloc::string::String {
779        "ora.admin.v1.ListExecutorsResponse".into()
780    }
781    fn type_url() -> ::prost::alloc::string::String {
782        "/ora.admin.v1.ListExecutorsResponse".into()
783    }
784}
785/// Request for `DeleteHistoricalData`.
786#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
787pub struct DeleteHistoricalDataRequest {
788    /// The cutoff time. Data older than this time will be deleted.
789    #[prost(message, optional, tag = "1")]
790    pub before: ::core::option::Option<::prost_types::Timestamp>,
791}
792impl ::prost::Name for DeleteHistoricalDataRequest {
793    const NAME: &'static str = "DeleteHistoricalDataRequest";
794    const PACKAGE: &'static str = "ora.admin.v1";
795    fn full_name() -> ::prost::alloc::string::String {
796        "ora.admin.v1.DeleteHistoricalDataRequest".into()
797    }
798    fn type_url() -> ::prost::alloc::string::String {
799        "/ora.admin.v1.DeleteHistoricalDataRequest".into()
800    }
801}
802/// Response for `DeleteHistoricalData`.
803#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
804pub struct DeleteHistoricalDataResponse {}
805impl ::prost::Name for DeleteHistoricalDataResponse {
806    const NAME: &'static str = "DeleteHistoricalDataResponse";
807    const PACKAGE: &'static str = "ora.admin.v1";
808    fn full_name() -> ::prost::alloc::string::String {
809        "ora.admin.v1.DeleteHistoricalDataResponse".into()
810    }
811    fn type_url() -> ::prost::alloc::string::String {
812        "/ora.admin.v1.DeleteHistoricalDataResponse".into()
813    }
814}
815/// Generated server implementations.
816pub mod admin_service_server {
817    #![allow(
818        unused_variables,
819        dead_code,
820        missing_docs,
821        clippy::wildcard_imports,
822        clippy::let_unit_value
823    )]
824    use tonic::codegen::*;
825    /// Generated trait containing gRPC methods that should be implemented for use with AdminServiceServer.
826    #[async_trait]
827    pub trait AdminService: std::marker::Send + std::marker::Sync + 'static {
828        /// List all supported job types.
829        async fn list_job_types(
830            &self,
831            request: tonic::Request<super::ListJobTypesRequest>,
832        ) -> std::result::Result<tonic::Response<super::ListJobTypesResponse>, tonic::Status>
833        {
834            Err(tonic::Status::unimplemented("Not yet implemented"))
835        }
836        /// Add jobs to be executed.
837        async fn add_jobs(
838            &self,
839            request: tonic::Request<super::AddJobsRequest>,
840        ) -> std::result::Result<tonic::Response<super::AddJobsResponse>, tonic::Status> {
841            Err(tonic::Status::unimplemented("Not yet implemented"))
842        }
843        /// List jobs.
844        async fn list_jobs(
845            &self,
846            request: tonic::Request<super::ListJobsRequest>,
847        ) -> std::result::Result<tonic::Response<super::ListJobsResponse>, tonic::Status> {
848            Err(tonic::Status::unimplemented("Not yet implemented"))
849        }
850        /// Count jobs.
851        async fn count_jobs(
852            &self,
853            request: tonic::Request<super::CountJobsRequest>,
854        ) -> std::result::Result<tonic::Response<super::CountJobsResponse>, tonic::Status> {
855            Err(tonic::Status::unimplemented("Not yet implemented"))
856        }
857        /// Cancel jobs.
858        async fn cancel_jobs(
859            &self,
860            request: tonic::Request<super::CancelJobsRequest>,
861        ) -> std::result::Result<tonic::Response<super::CancelJobsResponse>, tonic::Status>
862        {
863            Err(tonic::Status::unimplemented("Not yet implemented"))
864        }
865        /// Add schedules.
866        async fn add_schedules(
867            &self,
868            request: tonic::Request<super::AddSchedulesRequest>,
869        ) -> std::result::Result<tonic::Response<super::AddSchedulesResponse>, tonic::Status>
870        {
871            Err(tonic::Status::unimplemented("Not yet implemented"))
872        }
873        /// List schedules.
874        async fn list_schedules(
875            &self,
876            request: tonic::Request<super::ListSchedulesRequest>,
877        ) -> std::result::Result<tonic::Response<super::ListSchedulesResponse>, tonic::Status>
878        {
879            Err(tonic::Status::unimplemented("Not yet implemented"))
880        }
881        /// Count schedules.
882        async fn count_schedules(
883            &self,
884            request: tonic::Request<super::CountSchedulesRequest>,
885        ) -> std::result::Result<tonic::Response<super::CountSchedulesResponse>, tonic::Status>
886        {
887            Err(tonic::Status::unimplemented("Not yet implemented"))
888        }
889        /// Stop schedules.
890        async fn stop_schedules(
891            &self,
892            request: tonic::Request<super::StopSchedulesRequest>,
893        ) -> std::result::Result<tonic::Response<super::StopSchedulesResponse>, tonic::Status>
894        {
895            Err(tonic::Status::unimplemented("Not yet implemented"))
896        }
897        /// List executors.
898        async fn list_executors(
899            &self,
900            request: tonic::Request<super::ListExecutorsRequest>,
901        ) -> std::result::Result<tonic::Response<super::ListExecutorsResponse>, tonic::Status>
902        {
903            Err(tonic::Status::unimplemented("Not yet implemented"))
904        }
905        /// Delete historical data.
906        ///
907        /// * Inactive jobs.
908        /// * Inactive schedules.
909        /// * Job types that are no longer used.
910        async fn delete_historical_data(
911            &self,
912            request: tonic::Request<super::DeleteHistoricalDataRequest>,
913        ) -> std::result::Result<tonic::Response<super::DeleteHistoricalDataResponse>, tonic::Status>
914        {
915            Err(tonic::Status::unimplemented("Not yet implemented"))
916        }
917    }
918    /// Administrative service for managing the Ora server.
919    #[derive(Debug)]
920    pub struct AdminServiceServer<T> {
921        inner: Arc<T>,
922        accept_compression_encodings: EnabledCompressionEncodings,
923        send_compression_encodings: EnabledCompressionEncodings,
924        max_decoding_message_size: Option<usize>,
925        max_encoding_message_size: Option<usize>,
926    }
927    impl<T> AdminServiceServer<T> {
928        pub fn new(inner: T) -> Self {
929            Self::from_arc(Arc::new(inner))
930        }
931        pub fn from_arc(inner: Arc<T>) -> Self {
932            Self {
933                inner,
934                accept_compression_encodings: Default::default(),
935                send_compression_encodings: Default::default(),
936                max_decoding_message_size: None,
937                max_encoding_message_size: None,
938            }
939        }
940        pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
941        where
942            F: tonic::service::Interceptor,
943        {
944            InterceptedService::new(Self::new(inner), interceptor)
945        }
946        /// Enable decompressing requests with the given encoding.
947        #[must_use]
948        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
949            self.accept_compression_encodings.enable(encoding);
950            self
951        }
952        /// Compress responses with the given encoding, if the client supports it.
953        #[must_use]
954        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
955            self.send_compression_encodings.enable(encoding);
956            self
957        }
958        /// Limits the maximum size of a decoded message.
959        ///
960        /// Default: `4MB`
961        #[must_use]
962        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
963            self.max_decoding_message_size = Some(limit);
964            self
965        }
966        /// Limits the maximum size of an encoded message.
967        ///
968        /// Default: `usize::MAX`
969        #[must_use]
970        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
971            self.max_encoding_message_size = Some(limit);
972            self
973        }
974    }
975    impl<T, B> tonic::codegen::Service<http::Request<B>> for AdminServiceServer<T>
976    where
977        T: AdminService,
978        B: Body + std::marker::Send + 'static,
979        B::Error: Into<StdError> + std::marker::Send + 'static,
980    {
981        type Response = http::Response<tonic::body::Body>;
982        type Error = std::convert::Infallible;
983        type Future = BoxFuture<Self::Response, Self::Error>;
984        fn poll_ready(
985            &mut self,
986            _cx: &mut Context<'_>,
987        ) -> Poll<std::result::Result<(), Self::Error>> {
988            Poll::Ready(Ok(()))
989        }
990        fn call(&mut self, req: http::Request<B>) -> Self::Future {
991            match req.uri().path() {
992                "/ora.admin.v1.AdminService/ListJobTypes" => {
993                    #[allow(non_camel_case_types)]
994                    struct ListJobTypesSvc<T: AdminService>(pub Arc<T>);
995                    impl<T: AdminService> tonic::server::UnaryService<super::ListJobTypesRequest>
996                        for ListJobTypesSvc<T>
997                    {
998                        type Response = super::ListJobTypesResponse;
999                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1000                        fn call(
1001                            &mut self,
1002                            request: tonic::Request<super::ListJobTypesRequest>,
1003                        ) -> Self::Future {
1004                            let inner = Arc::clone(&self.0);
1005                            let fut = async move {
1006                                <T as AdminService>::list_job_types(&inner, request).await
1007                            };
1008                            Box::pin(fut)
1009                        }
1010                    }
1011                    let accept_compression_encodings = self.accept_compression_encodings;
1012                    let send_compression_encodings = self.send_compression_encodings;
1013                    let max_decoding_message_size = self.max_decoding_message_size;
1014                    let max_encoding_message_size = self.max_encoding_message_size;
1015                    let inner = self.inner.clone();
1016                    let fut = async move {
1017                        let method = ListJobTypesSvc(inner);
1018                        let codec = tonic_prost::ProstCodec::default();
1019                        let mut grpc = tonic::server::Grpc::new(codec)
1020                            .apply_compression_config(
1021                                accept_compression_encodings,
1022                                send_compression_encodings,
1023                            )
1024                            .apply_max_message_size_config(
1025                                max_decoding_message_size,
1026                                max_encoding_message_size,
1027                            );
1028                        let res = grpc.unary(method, req).await;
1029                        Ok(res)
1030                    };
1031                    Box::pin(fut)
1032                }
1033                "/ora.admin.v1.AdminService/AddJobs" => {
1034                    #[allow(non_camel_case_types)]
1035                    struct AddJobsSvc<T: AdminService>(pub Arc<T>);
1036                    impl<T: AdminService> tonic::server::UnaryService<super::AddJobsRequest> for AddJobsSvc<T> {
1037                        type Response = super::AddJobsResponse;
1038                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1039                        fn call(
1040                            &mut self,
1041                            request: tonic::Request<super::AddJobsRequest>,
1042                        ) -> Self::Future {
1043                            let inner = Arc::clone(&self.0);
1044                            let fut =
1045                                async move { <T as AdminService>::add_jobs(&inner, request).await };
1046                            Box::pin(fut)
1047                        }
1048                    }
1049                    let accept_compression_encodings = self.accept_compression_encodings;
1050                    let send_compression_encodings = self.send_compression_encodings;
1051                    let max_decoding_message_size = self.max_decoding_message_size;
1052                    let max_encoding_message_size = self.max_encoding_message_size;
1053                    let inner = self.inner.clone();
1054                    let fut = async move {
1055                        let method = AddJobsSvc(inner);
1056                        let codec = tonic_prost::ProstCodec::default();
1057                        let mut grpc = tonic::server::Grpc::new(codec)
1058                            .apply_compression_config(
1059                                accept_compression_encodings,
1060                                send_compression_encodings,
1061                            )
1062                            .apply_max_message_size_config(
1063                                max_decoding_message_size,
1064                                max_encoding_message_size,
1065                            );
1066                        let res = grpc.unary(method, req).await;
1067                        Ok(res)
1068                    };
1069                    Box::pin(fut)
1070                }
1071                "/ora.admin.v1.AdminService/ListJobs" => {
1072                    #[allow(non_camel_case_types)]
1073                    struct ListJobsSvc<T: AdminService>(pub Arc<T>);
1074                    impl<T: AdminService> tonic::server::UnaryService<super::ListJobsRequest> for ListJobsSvc<T> {
1075                        type Response = super::ListJobsResponse;
1076                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1077                        fn call(
1078                            &mut self,
1079                            request: tonic::Request<super::ListJobsRequest>,
1080                        ) -> Self::Future {
1081                            let inner = Arc::clone(&self.0);
1082                            let fut = async move {
1083                                <T as AdminService>::list_jobs(&inner, request).await
1084                            };
1085                            Box::pin(fut)
1086                        }
1087                    }
1088                    let accept_compression_encodings = self.accept_compression_encodings;
1089                    let send_compression_encodings = self.send_compression_encodings;
1090                    let max_decoding_message_size = self.max_decoding_message_size;
1091                    let max_encoding_message_size = self.max_encoding_message_size;
1092                    let inner = self.inner.clone();
1093                    let fut = async move {
1094                        let method = ListJobsSvc(inner);
1095                        let codec = tonic_prost::ProstCodec::default();
1096                        let mut grpc = tonic::server::Grpc::new(codec)
1097                            .apply_compression_config(
1098                                accept_compression_encodings,
1099                                send_compression_encodings,
1100                            )
1101                            .apply_max_message_size_config(
1102                                max_decoding_message_size,
1103                                max_encoding_message_size,
1104                            );
1105                        let res = grpc.unary(method, req).await;
1106                        Ok(res)
1107                    };
1108                    Box::pin(fut)
1109                }
1110                "/ora.admin.v1.AdminService/CountJobs" => {
1111                    #[allow(non_camel_case_types)]
1112                    struct CountJobsSvc<T: AdminService>(pub Arc<T>);
1113                    impl<T: AdminService> tonic::server::UnaryService<super::CountJobsRequest> for CountJobsSvc<T> {
1114                        type Response = super::CountJobsResponse;
1115                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1116                        fn call(
1117                            &mut self,
1118                            request: tonic::Request<super::CountJobsRequest>,
1119                        ) -> Self::Future {
1120                            let inner = Arc::clone(&self.0);
1121                            let fut = async move {
1122                                <T as AdminService>::count_jobs(&inner, request).await
1123                            };
1124                            Box::pin(fut)
1125                        }
1126                    }
1127                    let accept_compression_encodings = self.accept_compression_encodings;
1128                    let send_compression_encodings = self.send_compression_encodings;
1129                    let max_decoding_message_size = self.max_decoding_message_size;
1130                    let max_encoding_message_size = self.max_encoding_message_size;
1131                    let inner = self.inner.clone();
1132                    let fut = async move {
1133                        let method = CountJobsSvc(inner);
1134                        let codec = tonic_prost::ProstCodec::default();
1135                        let mut grpc = tonic::server::Grpc::new(codec)
1136                            .apply_compression_config(
1137                                accept_compression_encodings,
1138                                send_compression_encodings,
1139                            )
1140                            .apply_max_message_size_config(
1141                                max_decoding_message_size,
1142                                max_encoding_message_size,
1143                            );
1144                        let res = grpc.unary(method, req).await;
1145                        Ok(res)
1146                    };
1147                    Box::pin(fut)
1148                }
1149                "/ora.admin.v1.AdminService/CancelJobs" => {
1150                    #[allow(non_camel_case_types)]
1151                    struct CancelJobsSvc<T: AdminService>(pub Arc<T>);
1152                    impl<T: AdminService> tonic::server::UnaryService<super::CancelJobsRequest> for CancelJobsSvc<T> {
1153                        type Response = super::CancelJobsResponse;
1154                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1155                        fn call(
1156                            &mut self,
1157                            request: tonic::Request<super::CancelJobsRequest>,
1158                        ) -> Self::Future {
1159                            let inner = Arc::clone(&self.0);
1160                            let fut = async move {
1161                                <T as AdminService>::cancel_jobs(&inner, request).await
1162                            };
1163                            Box::pin(fut)
1164                        }
1165                    }
1166                    let accept_compression_encodings = self.accept_compression_encodings;
1167                    let send_compression_encodings = self.send_compression_encodings;
1168                    let max_decoding_message_size = self.max_decoding_message_size;
1169                    let max_encoding_message_size = self.max_encoding_message_size;
1170                    let inner = self.inner.clone();
1171                    let fut = async move {
1172                        let method = CancelJobsSvc(inner);
1173                        let codec = tonic_prost::ProstCodec::default();
1174                        let mut grpc = tonic::server::Grpc::new(codec)
1175                            .apply_compression_config(
1176                                accept_compression_encodings,
1177                                send_compression_encodings,
1178                            )
1179                            .apply_max_message_size_config(
1180                                max_decoding_message_size,
1181                                max_encoding_message_size,
1182                            );
1183                        let res = grpc.unary(method, req).await;
1184                        Ok(res)
1185                    };
1186                    Box::pin(fut)
1187                }
1188                "/ora.admin.v1.AdminService/AddSchedules" => {
1189                    #[allow(non_camel_case_types)]
1190                    struct AddSchedulesSvc<T: AdminService>(pub Arc<T>);
1191                    impl<T: AdminService> tonic::server::UnaryService<super::AddSchedulesRequest>
1192                        for AddSchedulesSvc<T>
1193                    {
1194                        type Response = super::AddSchedulesResponse;
1195                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1196                        fn call(
1197                            &mut self,
1198                            request: tonic::Request<super::AddSchedulesRequest>,
1199                        ) -> Self::Future {
1200                            let inner = Arc::clone(&self.0);
1201                            let fut = async move {
1202                                <T as AdminService>::add_schedules(&inner, request).await
1203                            };
1204                            Box::pin(fut)
1205                        }
1206                    }
1207                    let accept_compression_encodings = self.accept_compression_encodings;
1208                    let send_compression_encodings = self.send_compression_encodings;
1209                    let max_decoding_message_size = self.max_decoding_message_size;
1210                    let max_encoding_message_size = self.max_encoding_message_size;
1211                    let inner = self.inner.clone();
1212                    let fut = async move {
1213                        let method = AddSchedulesSvc(inner);
1214                        let codec = tonic_prost::ProstCodec::default();
1215                        let mut grpc = tonic::server::Grpc::new(codec)
1216                            .apply_compression_config(
1217                                accept_compression_encodings,
1218                                send_compression_encodings,
1219                            )
1220                            .apply_max_message_size_config(
1221                                max_decoding_message_size,
1222                                max_encoding_message_size,
1223                            );
1224                        let res = grpc.unary(method, req).await;
1225                        Ok(res)
1226                    };
1227                    Box::pin(fut)
1228                }
1229                "/ora.admin.v1.AdminService/ListSchedules" => {
1230                    #[allow(non_camel_case_types)]
1231                    struct ListSchedulesSvc<T: AdminService>(pub Arc<T>);
1232                    impl<T: AdminService> tonic::server::UnaryService<super::ListSchedulesRequest>
1233                        for ListSchedulesSvc<T>
1234                    {
1235                        type Response = super::ListSchedulesResponse;
1236                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1237                        fn call(
1238                            &mut self,
1239                            request: tonic::Request<super::ListSchedulesRequest>,
1240                        ) -> Self::Future {
1241                            let inner = Arc::clone(&self.0);
1242                            let fut = async move {
1243                                <T as AdminService>::list_schedules(&inner, request).await
1244                            };
1245                            Box::pin(fut)
1246                        }
1247                    }
1248                    let accept_compression_encodings = self.accept_compression_encodings;
1249                    let send_compression_encodings = self.send_compression_encodings;
1250                    let max_decoding_message_size = self.max_decoding_message_size;
1251                    let max_encoding_message_size = self.max_encoding_message_size;
1252                    let inner = self.inner.clone();
1253                    let fut = async move {
1254                        let method = ListSchedulesSvc(inner);
1255                        let codec = tonic_prost::ProstCodec::default();
1256                        let mut grpc = tonic::server::Grpc::new(codec)
1257                            .apply_compression_config(
1258                                accept_compression_encodings,
1259                                send_compression_encodings,
1260                            )
1261                            .apply_max_message_size_config(
1262                                max_decoding_message_size,
1263                                max_encoding_message_size,
1264                            );
1265                        let res = grpc.unary(method, req).await;
1266                        Ok(res)
1267                    };
1268                    Box::pin(fut)
1269                }
1270                "/ora.admin.v1.AdminService/CountSchedules" => {
1271                    #[allow(non_camel_case_types)]
1272                    struct CountSchedulesSvc<T: AdminService>(pub Arc<T>);
1273                    impl<T: AdminService> tonic::server::UnaryService<super::CountSchedulesRequest>
1274                        for CountSchedulesSvc<T>
1275                    {
1276                        type Response = super::CountSchedulesResponse;
1277                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1278                        fn call(
1279                            &mut self,
1280                            request: tonic::Request<super::CountSchedulesRequest>,
1281                        ) -> Self::Future {
1282                            let inner = Arc::clone(&self.0);
1283                            let fut = async move {
1284                                <T as AdminService>::count_schedules(&inner, request).await
1285                            };
1286                            Box::pin(fut)
1287                        }
1288                    }
1289                    let accept_compression_encodings = self.accept_compression_encodings;
1290                    let send_compression_encodings = self.send_compression_encodings;
1291                    let max_decoding_message_size = self.max_decoding_message_size;
1292                    let max_encoding_message_size = self.max_encoding_message_size;
1293                    let inner = self.inner.clone();
1294                    let fut = async move {
1295                        let method = CountSchedulesSvc(inner);
1296                        let codec = tonic_prost::ProstCodec::default();
1297                        let mut grpc = tonic::server::Grpc::new(codec)
1298                            .apply_compression_config(
1299                                accept_compression_encodings,
1300                                send_compression_encodings,
1301                            )
1302                            .apply_max_message_size_config(
1303                                max_decoding_message_size,
1304                                max_encoding_message_size,
1305                            );
1306                        let res = grpc.unary(method, req).await;
1307                        Ok(res)
1308                    };
1309                    Box::pin(fut)
1310                }
1311                "/ora.admin.v1.AdminService/StopSchedules" => {
1312                    #[allow(non_camel_case_types)]
1313                    struct StopSchedulesSvc<T: AdminService>(pub Arc<T>);
1314                    impl<T: AdminService> tonic::server::UnaryService<super::StopSchedulesRequest>
1315                        for StopSchedulesSvc<T>
1316                    {
1317                        type Response = super::StopSchedulesResponse;
1318                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1319                        fn call(
1320                            &mut self,
1321                            request: tonic::Request<super::StopSchedulesRequest>,
1322                        ) -> Self::Future {
1323                            let inner = Arc::clone(&self.0);
1324                            let fut = async move {
1325                                <T as AdminService>::stop_schedules(&inner, request).await
1326                            };
1327                            Box::pin(fut)
1328                        }
1329                    }
1330                    let accept_compression_encodings = self.accept_compression_encodings;
1331                    let send_compression_encodings = self.send_compression_encodings;
1332                    let max_decoding_message_size = self.max_decoding_message_size;
1333                    let max_encoding_message_size = self.max_encoding_message_size;
1334                    let inner = self.inner.clone();
1335                    let fut = async move {
1336                        let method = StopSchedulesSvc(inner);
1337                        let codec = tonic_prost::ProstCodec::default();
1338                        let mut grpc = tonic::server::Grpc::new(codec)
1339                            .apply_compression_config(
1340                                accept_compression_encodings,
1341                                send_compression_encodings,
1342                            )
1343                            .apply_max_message_size_config(
1344                                max_decoding_message_size,
1345                                max_encoding_message_size,
1346                            );
1347                        let res = grpc.unary(method, req).await;
1348                        Ok(res)
1349                    };
1350                    Box::pin(fut)
1351                }
1352                "/ora.admin.v1.AdminService/ListExecutors" => {
1353                    #[allow(non_camel_case_types)]
1354                    struct ListExecutorsSvc<T: AdminService>(pub Arc<T>);
1355                    impl<T: AdminService> tonic::server::UnaryService<super::ListExecutorsRequest>
1356                        for ListExecutorsSvc<T>
1357                    {
1358                        type Response = super::ListExecutorsResponse;
1359                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1360                        fn call(
1361                            &mut self,
1362                            request: tonic::Request<super::ListExecutorsRequest>,
1363                        ) -> Self::Future {
1364                            let inner = Arc::clone(&self.0);
1365                            let fut = async move {
1366                                <T as AdminService>::list_executors(&inner, request).await
1367                            };
1368                            Box::pin(fut)
1369                        }
1370                    }
1371                    let accept_compression_encodings = self.accept_compression_encodings;
1372                    let send_compression_encodings = self.send_compression_encodings;
1373                    let max_decoding_message_size = self.max_decoding_message_size;
1374                    let max_encoding_message_size = self.max_encoding_message_size;
1375                    let inner = self.inner.clone();
1376                    let fut = async move {
1377                        let method = ListExecutorsSvc(inner);
1378                        let codec = tonic_prost::ProstCodec::default();
1379                        let mut grpc = tonic::server::Grpc::new(codec)
1380                            .apply_compression_config(
1381                                accept_compression_encodings,
1382                                send_compression_encodings,
1383                            )
1384                            .apply_max_message_size_config(
1385                                max_decoding_message_size,
1386                                max_encoding_message_size,
1387                            );
1388                        let res = grpc.unary(method, req).await;
1389                        Ok(res)
1390                    };
1391                    Box::pin(fut)
1392                }
1393                "/ora.admin.v1.AdminService/DeleteHistoricalData" => {
1394                    #[allow(non_camel_case_types)]
1395                    struct DeleteHistoricalDataSvc<T: AdminService>(pub Arc<T>);
1396                    impl<T: AdminService>
1397                        tonic::server::UnaryService<super::DeleteHistoricalDataRequest>
1398                        for DeleteHistoricalDataSvc<T>
1399                    {
1400                        type Response = super::DeleteHistoricalDataResponse;
1401                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1402                        fn call(
1403                            &mut self,
1404                            request: tonic::Request<super::DeleteHistoricalDataRequest>,
1405                        ) -> Self::Future {
1406                            let inner = Arc::clone(&self.0);
1407                            let fut = async move {
1408                                <T as AdminService>::delete_historical_data(&inner, request).await
1409                            };
1410                            Box::pin(fut)
1411                        }
1412                    }
1413                    let accept_compression_encodings = self.accept_compression_encodings;
1414                    let send_compression_encodings = self.send_compression_encodings;
1415                    let max_decoding_message_size = self.max_decoding_message_size;
1416                    let max_encoding_message_size = self.max_encoding_message_size;
1417                    let inner = self.inner.clone();
1418                    let fut = async move {
1419                        let method = DeleteHistoricalDataSvc(inner);
1420                        let codec = tonic_prost::ProstCodec::default();
1421                        let mut grpc = tonic::server::Grpc::new(codec)
1422                            .apply_compression_config(
1423                                accept_compression_encodings,
1424                                send_compression_encodings,
1425                            )
1426                            .apply_max_message_size_config(
1427                                max_decoding_message_size,
1428                                max_encoding_message_size,
1429                            );
1430                        let res = grpc.unary(method, req).await;
1431                        Ok(res)
1432                    };
1433                    Box::pin(fut)
1434                }
1435                _ => Box::pin(async move {
1436                    let mut response = http::Response::new(tonic::body::Body::default());
1437                    let headers = response.headers_mut();
1438                    headers.insert(
1439                        tonic::Status::GRPC_STATUS,
1440                        (tonic::Code::Unimplemented as i32).into(),
1441                    );
1442                    headers.insert(
1443                        http::header::CONTENT_TYPE,
1444                        tonic::metadata::GRPC_CONTENT_TYPE,
1445                    );
1446                    Ok(response)
1447                }),
1448            }
1449        }
1450    }
1451    impl<T> Clone for AdminServiceServer<T> {
1452        fn clone(&self) -> Self {
1453            let inner = self.inner.clone();
1454            Self {
1455                inner,
1456                accept_compression_encodings: self.accept_compression_encodings,
1457                send_compression_encodings: self.send_compression_encodings,
1458                max_decoding_message_size: self.max_decoding_message_size,
1459                max_encoding_message_size: self.max_encoding_message_size,
1460            }
1461        }
1462    }
1463    /// Generated gRPC service name
1464    pub const SERVICE_NAME: &str = "ora.admin.v1.AdminService";
1465    impl<T> tonic::server::NamedService for AdminServiceServer<T> {
1466        const NAME: &'static str = SERVICE_NAME;
1467    }
1468}