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}
468impl ::prost::Name for AddJobsResponse {
469    const NAME: &'static str = "AddJobsResponse";
470    const PACKAGE: &'static str = "ora.admin.v1";
471    fn full_name() -> ::prost::alloc::string::String {
472        "ora.admin.v1.AddJobsResponse".into()
473    }
474    fn type_url() -> ::prost::alloc::string::String {
475        "/ora.admin.v1.AddJobsResponse".into()
476    }
477}
478/// Request for `ListJobs`.
479#[derive(Clone, PartialEq, ::prost::Message)]
480pub struct ListJobsRequest {
481    /// The filters to apply when listing jobs.
482    #[prost(message, optional, tag = "1")]
483    pub filters: ::core::option::Option<JobFilters>,
484    /// The ordering options.
485    #[prost(enumeration = "JobOrderBy", tag = "2")]
486    pub order_by: i32,
487    /// Pagination options.
488    #[prost(message, optional, tag = "3")]
489    pub pagination: ::core::option::Option<PaginationOptions>,
490}
491impl ::prost::Name for ListJobsRequest {
492    const NAME: &'static str = "ListJobsRequest";
493    const PACKAGE: &'static str = "ora.admin.v1";
494    fn full_name() -> ::prost::alloc::string::String {
495        "ora.admin.v1.ListJobsRequest".into()
496    }
497    fn type_url() -> ::prost::alloc::string::String {
498        "/ora.admin.v1.ListJobsRequest".into()
499    }
500}
501/// Response for `ListJobs`.
502#[derive(Clone, PartialEq, ::prost::Message)]
503pub struct ListJobsResponse {
504    /// The list of jobs.
505    #[prost(message, repeated, tag = "1")]
506    pub jobs: ::prost::alloc::vec::Vec<Job>,
507    /// The token for the next page of results (if any).
508    #[prost(string, optional, tag = "2")]
509    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
510}
511impl ::prost::Name for ListJobsResponse {
512    const NAME: &'static str = "ListJobsResponse";
513    const PACKAGE: &'static str = "ora.admin.v1";
514    fn full_name() -> ::prost::alloc::string::String {
515        "ora.admin.v1.ListJobsResponse".into()
516    }
517    fn type_url() -> ::prost::alloc::string::String {
518        "/ora.admin.v1.ListJobsResponse".into()
519    }
520}
521/// Request for `CountJobs`.
522#[derive(Clone, PartialEq, ::prost::Message)]
523pub struct CountJobsRequest {
524    /// The filters to apply when counting jobs.
525    #[prost(message, optional, tag = "1")]
526    pub filters: ::core::option::Option<JobFilters>,
527}
528impl ::prost::Name for CountJobsRequest {
529    const NAME: &'static str = "CountJobsRequest";
530    const PACKAGE: &'static str = "ora.admin.v1";
531    fn full_name() -> ::prost::alloc::string::String {
532        "ora.admin.v1.CountJobsRequest".into()
533    }
534    fn type_url() -> ::prost::alloc::string::String {
535        "/ora.admin.v1.CountJobsRequest".into()
536    }
537}
538/// Response for `CountJobs`.
539#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
540pub struct CountJobsResponse {
541    /// The number of jobs.
542    #[prost(uint64, tag = "1")]
543    pub count: u64,
544}
545impl ::prost::Name for CountJobsResponse {
546    const NAME: &'static str = "CountJobsResponse";
547    const PACKAGE: &'static str = "ora.admin.v1";
548    fn full_name() -> ::prost::alloc::string::String {
549        "ora.admin.v1.CountJobsResponse".into()
550    }
551    fn type_url() -> ::prost::alloc::string::String {
552        "/ora.admin.v1.CountJobsResponse".into()
553    }
554}
555/// Request for `CancelJobs`.
556#[derive(Clone, PartialEq, ::prost::Message)]
557pub struct CancelJobsRequest {
558    /// The filters to apply when cancelling jobs.
559    #[prost(message, optional, tag = "1")]
560    pub filters: ::core::option::Option<JobFilters>,
561}
562impl ::prost::Name for CancelJobsRequest {
563    const NAME: &'static str = "CancelJobsRequest";
564    const PACKAGE: &'static str = "ora.admin.v1";
565    fn full_name() -> ::prost::alloc::string::String {
566        "ora.admin.v1.CancelJobsRequest".into()
567    }
568    fn type_url() -> ::prost::alloc::string::String {
569        "/ora.admin.v1.CancelJobsRequest".into()
570    }
571}
572/// Response for `CancelJobs`.
573#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
574pub struct CancelJobsResponse {
575    /// The list of cancelled job IDs.
576    #[prost(string, repeated, tag = "1")]
577    pub cancelled_job_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
578}
579impl ::prost::Name for CancelJobsResponse {
580    const NAME: &'static str = "CancelJobsResponse";
581    const PACKAGE: &'static str = "ora.admin.v1";
582    fn full_name() -> ::prost::alloc::string::String {
583        "ora.admin.v1.CancelJobsResponse".into()
584    }
585    fn type_url() -> ::prost::alloc::string::String {
586        "/ora.admin.v1.CancelJobsResponse".into()
587    }
588}
589/// Request for `AddSchedules`.
590#[derive(Clone, PartialEq, ::prost::Message)]
591pub struct AddSchedulesRequest {
592    /// The schedules to be added.
593    #[prost(message, repeated, tag = "1")]
594    pub schedules: ::prost::alloc::vec::Vec<super::super::schedules::v1::Schedule>,
595    /// Optional filters to prevent adding schedules.
596    ///
597    /// If any schedules exist that match the filters, no new schedules will be added.
598    #[prost(message, optional, tag = "2")]
599    pub if_not_exists: ::core::option::Option<ScheduleFilters>,
600    /// Whether to inherit labels from the schedules when creating jobs.
601    ///
602    /// By default, labels are inherited.
603    #[prost(bool, optional, tag = "3")]
604    pub inherit_labels: ::core::option::Option<bool>,
605}
606impl ::prost::Name for AddSchedulesRequest {
607    const NAME: &'static str = "AddSchedulesRequest";
608    const PACKAGE: &'static str = "ora.admin.v1";
609    fn full_name() -> ::prost::alloc::string::String {
610        "ora.admin.v1.AddSchedulesRequest".into()
611    }
612    fn type_url() -> ::prost::alloc::string::String {
613        "/ora.admin.v1.AddSchedulesRequest".into()
614    }
615}
616/// Response for `AddSchedules`.
617#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
618pub struct AddSchedulesResponse {
619    /// The IDs of the added schedules.
620    #[prost(string, repeated, tag = "1")]
621    pub schedule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
622}
623impl ::prost::Name for AddSchedulesResponse {
624    const NAME: &'static str = "AddSchedulesResponse";
625    const PACKAGE: &'static str = "ora.admin.v1";
626    fn full_name() -> ::prost::alloc::string::String {
627        "ora.admin.v1.AddSchedulesResponse".into()
628    }
629    fn type_url() -> ::prost::alloc::string::String {
630        "/ora.admin.v1.AddSchedulesResponse".into()
631    }
632}
633/// Request for `ListSchedules`.
634#[derive(Clone, PartialEq, ::prost::Message)]
635pub struct ListSchedulesRequest {
636    /// The filters to apply when listing schedules.
637    #[prost(message, optional, tag = "1")]
638    pub filters: ::core::option::Option<ScheduleFilters>,
639    /// The ordering options.
640    #[prost(enumeration = "ScheduleOrderBy", tag = "2")]
641    pub order_by: i32,
642    /// Pagination options.
643    #[prost(message, optional, tag = "3")]
644    pub pagination: ::core::option::Option<PaginationOptions>,
645}
646impl ::prost::Name for ListSchedulesRequest {
647    const NAME: &'static str = "ListSchedulesRequest";
648    const PACKAGE: &'static str = "ora.admin.v1";
649    fn full_name() -> ::prost::alloc::string::String {
650        "ora.admin.v1.ListSchedulesRequest".into()
651    }
652    fn type_url() -> ::prost::alloc::string::String {
653        "/ora.admin.v1.ListSchedulesRequest".into()
654    }
655}
656/// Response for `ListSchedules`.
657#[derive(Clone, PartialEq, ::prost::Message)]
658pub struct ListSchedulesResponse {
659    /// The list of schedules.
660    #[prost(message, repeated, tag = "1")]
661    pub schedules: ::prost::alloc::vec::Vec<Schedule>,
662    /// The token for the next page of results (if any).
663    #[prost(string, optional, tag = "2")]
664    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
665}
666impl ::prost::Name for ListSchedulesResponse {
667    const NAME: &'static str = "ListSchedulesResponse";
668    const PACKAGE: &'static str = "ora.admin.v1";
669    fn full_name() -> ::prost::alloc::string::String {
670        "ora.admin.v1.ListSchedulesResponse".into()
671    }
672    fn type_url() -> ::prost::alloc::string::String {
673        "/ora.admin.v1.ListSchedulesResponse".into()
674    }
675}
676/// Request for `CountSchedules`.
677#[derive(Clone, PartialEq, ::prost::Message)]
678pub struct CountSchedulesRequest {
679    /// The filters to apply when counting schedules.
680    #[prost(message, optional, tag = "1")]
681    pub filters: ::core::option::Option<ScheduleFilters>,
682}
683impl ::prost::Name for CountSchedulesRequest {
684    const NAME: &'static str = "CountSchedulesRequest";
685    const PACKAGE: &'static str = "ora.admin.v1";
686    fn full_name() -> ::prost::alloc::string::String {
687        "ora.admin.v1.CountSchedulesRequest".into()
688    }
689    fn type_url() -> ::prost::alloc::string::String {
690        "/ora.admin.v1.CountSchedulesRequest".into()
691    }
692}
693/// Response for `CountSchedules`.
694#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
695pub struct CountSchedulesResponse {
696    /// The number of schedules.
697    #[prost(uint64, tag = "1")]
698    pub count: u64,
699}
700impl ::prost::Name for CountSchedulesResponse {
701    const NAME: &'static str = "CountSchedulesResponse";
702    const PACKAGE: &'static str = "ora.admin.v1";
703    fn full_name() -> ::prost::alloc::string::String {
704        "ora.admin.v1.CountSchedulesResponse".into()
705    }
706    fn type_url() -> ::prost::alloc::string::String {
707        "/ora.admin.v1.CountSchedulesResponse".into()
708    }
709}
710/// Request for `StopSchedules`.
711#[derive(Clone, PartialEq, ::prost::Message)]
712pub struct StopSchedulesRequest {
713    /// The filters to find schedules to stop.
714    #[prost(message, optional, tag = "1")]
715    pub filters: ::core::option::Option<ScheduleFilters>,
716    /// Whether to also cancel active jobs of the stopped schedules.
717    #[prost(bool, tag = "2")]
718    pub cancel_active_jobs: bool,
719}
720impl ::prost::Name for StopSchedulesRequest {
721    const NAME: &'static str = "StopSchedulesRequest";
722    const PACKAGE: &'static str = "ora.admin.v1";
723    fn full_name() -> ::prost::alloc::string::String {
724        "ora.admin.v1.StopSchedulesRequest".into()
725    }
726    fn type_url() -> ::prost::alloc::string::String {
727        "/ora.admin.v1.StopSchedulesRequest".into()
728    }
729}
730/// Response for `StopSchedules`.
731#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
732pub struct StopSchedulesResponse {
733    /// The list of cancelled schedule IDs.
734    #[prost(string, repeated, tag = "1")]
735    pub cancelled_schedule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
736}
737impl ::prost::Name for StopSchedulesResponse {
738    const NAME: &'static str = "StopSchedulesResponse";
739    const PACKAGE: &'static str = "ora.admin.v1";
740    fn full_name() -> ::prost::alloc::string::String {
741        "ora.admin.v1.StopSchedulesResponse".into()
742    }
743    fn type_url() -> ::prost::alloc::string::String {
744        "/ora.admin.v1.StopSchedulesResponse".into()
745    }
746}
747/// Request for `ListExecutors`.
748#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
749pub struct ListExecutorsRequest {}
750impl ::prost::Name for ListExecutorsRequest {
751    const NAME: &'static str = "ListExecutorsRequest";
752    const PACKAGE: &'static str = "ora.admin.v1";
753    fn full_name() -> ::prost::alloc::string::String {
754        "ora.admin.v1.ListExecutorsRequest".into()
755    }
756    fn type_url() -> ::prost::alloc::string::String {
757        "/ora.admin.v1.ListExecutorsRequest".into()
758    }
759}
760/// Response for `ListExecutors`.
761#[derive(Clone, PartialEq, ::prost::Message)]
762pub struct ListExecutorsResponse {
763    /// The list of executors.
764    #[prost(message, repeated, tag = "1")]
765    pub executors: ::prost::alloc::vec::Vec<Executor>,
766}
767impl ::prost::Name for ListExecutorsResponse {
768    const NAME: &'static str = "ListExecutorsResponse";
769    const PACKAGE: &'static str = "ora.admin.v1";
770    fn full_name() -> ::prost::alloc::string::String {
771        "ora.admin.v1.ListExecutorsResponse".into()
772    }
773    fn type_url() -> ::prost::alloc::string::String {
774        "/ora.admin.v1.ListExecutorsResponse".into()
775    }
776}
777/// Request for `DeleteHistoricalData`.
778#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
779pub struct DeleteHistoricalDataRequest {
780    /// The cutoff time. Data older than this time will be deleted.
781    #[prost(message, optional, tag = "1")]
782    pub before: ::core::option::Option<::prost_types::Timestamp>,
783}
784impl ::prost::Name for DeleteHistoricalDataRequest {
785    const NAME: &'static str = "DeleteHistoricalDataRequest";
786    const PACKAGE: &'static str = "ora.admin.v1";
787    fn full_name() -> ::prost::alloc::string::String {
788        "ora.admin.v1.DeleteHistoricalDataRequest".into()
789    }
790    fn type_url() -> ::prost::alloc::string::String {
791        "/ora.admin.v1.DeleteHistoricalDataRequest".into()
792    }
793}
794/// Response for `DeleteHistoricalData`.
795#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
796pub struct DeleteHistoricalDataResponse {}
797impl ::prost::Name for DeleteHistoricalDataResponse {
798    const NAME: &'static str = "DeleteHistoricalDataResponse";
799    const PACKAGE: &'static str = "ora.admin.v1";
800    fn full_name() -> ::prost::alloc::string::String {
801        "ora.admin.v1.DeleteHistoricalDataResponse".into()
802    }
803    fn type_url() -> ::prost::alloc::string::String {
804        "/ora.admin.v1.DeleteHistoricalDataResponse".into()
805    }
806}
807/// Generated server implementations.
808pub mod admin_service_server {
809    #![allow(
810        unused_variables,
811        dead_code,
812        missing_docs,
813        clippy::wildcard_imports,
814        clippy::let_unit_value
815    )]
816    use tonic::codegen::*;
817    /// Generated trait containing gRPC methods that should be implemented for use with AdminServiceServer.
818    #[async_trait]
819    pub trait AdminService: std::marker::Send + std::marker::Sync + 'static {
820        /// List all supported job types.
821        async fn list_job_types(
822            &self,
823            request: tonic::Request<super::ListJobTypesRequest>,
824        ) -> std::result::Result<tonic::Response<super::ListJobTypesResponse>, tonic::Status>
825        {
826            Err(tonic::Status::unimplemented("Not yet implemented"))
827        }
828        /// Add jobs to be executed.
829        async fn add_jobs(
830            &self,
831            request: tonic::Request<super::AddJobsRequest>,
832        ) -> std::result::Result<tonic::Response<super::AddJobsResponse>, tonic::Status> {
833            Err(tonic::Status::unimplemented("Not yet implemented"))
834        }
835        /// List jobs.
836        async fn list_jobs(
837            &self,
838            request: tonic::Request<super::ListJobsRequest>,
839        ) -> std::result::Result<tonic::Response<super::ListJobsResponse>, tonic::Status> {
840            Err(tonic::Status::unimplemented("Not yet implemented"))
841        }
842        /// Count jobs.
843        async fn count_jobs(
844            &self,
845            request: tonic::Request<super::CountJobsRequest>,
846        ) -> std::result::Result<tonic::Response<super::CountJobsResponse>, tonic::Status> {
847            Err(tonic::Status::unimplemented("Not yet implemented"))
848        }
849        /// Cancel jobs.
850        async fn cancel_jobs(
851            &self,
852            request: tonic::Request<super::CancelJobsRequest>,
853        ) -> std::result::Result<tonic::Response<super::CancelJobsResponse>, tonic::Status>
854        {
855            Err(tonic::Status::unimplemented("Not yet implemented"))
856        }
857        /// Add schedules.
858        async fn add_schedules(
859            &self,
860            request: tonic::Request<super::AddSchedulesRequest>,
861        ) -> std::result::Result<tonic::Response<super::AddSchedulesResponse>, tonic::Status>
862        {
863            Err(tonic::Status::unimplemented("Not yet implemented"))
864        }
865        /// List schedules.
866        async fn list_schedules(
867            &self,
868            request: tonic::Request<super::ListSchedulesRequest>,
869        ) -> std::result::Result<tonic::Response<super::ListSchedulesResponse>, tonic::Status>
870        {
871            Err(tonic::Status::unimplemented("Not yet implemented"))
872        }
873        /// Count schedules.
874        async fn count_schedules(
875            &self,
876            request: tonic::Request<super::CountSchedulesRequest>,
877        ) -> std::result::Result<tonic::Response<super::CountSchedulesResponse>, tonic::Status>
878        {
879            Err(tonic::Status::unimplemented("Not yet implemented"))
880        }
881        /// Stop schedules.
882        async fn stop_schedules(
883            &self,
884            request: tonic::Request<super::StopSchedulesRequest>,
885        ) -> std::result::Result<tonic::Response<super::StopSchedulesResponse>, tonic::Status>
886        {
887            Err(tonic::Status::unimplemented("Not yet implemented"))
888        }
889        /// List executors.
890        async fn list_executors(
891            &self,
892            request: tonic::Request<super::ListExecutorsRequest>,
893        ) -> std::result::Result<tonic::Response<super::ListExecutorsResponse>, tonic::Status>
894        {
895            Err(tonic::Status::unimplemented("Not yet implemented"))
896        }
897        /// Delete historical data.
898        ///
899        /// * Inactive jobs.
900        /// * Inactive schedules.
901        /// * Job types that are no longer used.
902        async fn delete_historical_data(
903            &self,
904            request: tonic::Request<super::DeleteHistoricalDataRequest>,
905        ) -> std::result::Result<tonic::Response<super::DeleteHistoricalDataResponse>, tonic::Status>
906        {
907            Err(tonic::Status::unimplemented("Not yet implemented"))
908        }
909    }
910    /// Administrative service for managing the Ora server.
911    #[derive(Debug)]
912    pub struct AdminServiceServer<T> {
913        inner: Arc<T>,
914        accept_compression_encodings: EnabledCompressionEncodings,
915        send_compression_encodings: EnabledCompressionEncodings,
916        max_decoding_message_size: Option<usize>,
917        max_encoding_message_size: Option<usize>,
918    }
919    impl<T> AdminServiceServer<T> {
920        pub fn new(inner: T) -> Self {
921            Self::from_arc(Arc::new(inner))
922        }
923        pub fn from_arc(inner: Arc<T>) -> Self {
924            Self {
925                inner,
926                accept_compression_encodings: Default::default(),
927                send_compression_encodings: Default::default(),
928                max_decoding_message_size: None,
929                max_encoding_message_size: None,
930            }
931        }
932        pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
933        where
934            F: tonic::service::Interceptor,
935        {
936            InterceptedService::new(Self::new(inner), interceptor)
937        }
938        /// Enable decompressing requests with the given encoding.
939        #[must_use]
940        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
941            self.accept_compression_encodings.enable(encoding);
942            self
943        }
944        /// Compress responses with the given encoding, if the client supports it.
945        #[must_use]
946        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
947            self.send_compression_encodings.enable(encoding);
948            self
949        }
950        /// Limits the maximum size of a decoded message.
951        ///
952        /// Default: `4MB`
953        #[must_use]
954        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
955            self.max_decoding_message_size = Some(limit);
956            self
957        }
958        /// Limits the maximum size of an encoded message.
959        ///
960        /// Default: `usize::MAX`
961        #[must_use]
962        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
963            self.max_encoding_message_size = Some(limit);
964            self
965        }
966    }
967    impl<T, B> tonic::codegen::Service<http::Request<B>> for AdminServiceServer<T>
968    where
969        T: AdminService,
970        B: Body + std::marker::Send + 'static,
971        B::Error: Into<StdError> + std::marker::Send + 'static,
972    {
973        type Response = http::Response<tonic::body::Body>;
974        type Error = std::convert::Infallible;
975        type Future = BoxFuture<Self::Response, Self::Error>;
976        fn poll_ready(
977            &mut self,
978            _cx: &mut Context<'_>,
979        ) -> Poll<std::result::Result<(), Self::Error>> {
980            Poll::Ready(Ok(()))
981        }
982        fn call(&mut self, req: http::Request<B>) -> Self::Future {
983            match req.uri().path() {
984                "/ora.admin.v1.AdminService/ListJobTypes" => {
985                    #[allow(non_camel_case_types)]
986                    struct ListJobTypesSvc<T: AdminService>(pub Arc<T>);
987                    impl<T: AdminService> tonic::server::UnaryService<super::ListJobTypesRequest>
988                        for ListJobTypesSvc<T>
989                    {
990                        type Response = super::ListJobTypesResponse;
991                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
992                        fn call(
993                            &mut self,
994                            request: tonic::Request<super::ListJobTypesRequest>,
995                        ) -> Self::Future {
996                            let inner = Arc::clone(&self.0);
997                            let fut = async move {
998                                <T as AdminService>::list_job_types(&inner, request).await
999                            };
1000                            Box::pin(fut)
1001                        }
1002                    }
1003                    let accept_compression_encodings = self.accept_compression_encodings;
1004                    let send_compression_encodings = self.send_compression_encodings;
1005                    let max_decoding_message_size = self.max_decoding_message_size;
1006                    let max_encoding_message_size = self.max_encoding_message_size;
1007                    let inner = self.inner.clone();
1008                    let fut = async move {
1009                        let method = ListJobTypesSvc(inner);
1010                        let codec = tonic_prost::ProstCodec::default();
1011                        let mut grpc = tonic::server::Grpc::new(codec)
1012                            .apply_compression_config(
1013                                accept_compression_encodings,
1014                                send_compression_encodings,
1015                            )
1016                            .apply_max_message_size_config(
1017                                max_decoding_message_size,
1018                                max_encoding_message_size,
1019                            );
1020                        let res = grpc.unary(method, req).await;
1021                        Ok(res)
1022                    };
1023                    Box::pin(fut)
1024                }
1025                "/ora.admin.v1.AdminService/AddJobs" => {
1026                    #[allow(non_camel_case_types)]
1027                    struct AddJobsSvc<T: AdminService>(pub Arc<T>);
1028                    impl<T: AdminService> tonic::server::UnaryService<super::AddJobsRequest> for AddJobsSvc<T> {
1029                        type Response = super::AddJobsResponse;
1030                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1031                        fn call(
1032                            &mut self,
1033                            request: tonic::Request<super::AddJobsRequest>,
1034                        ) -> Self::Future {
1035                            let inner = Arc::clone(&self.0);
1036                            let fut =
1037                                async move { <T as AdminService>::add_jobs(&inner, request).await };
1038                            Box::pin(fut)
1039                        }
1040                    }
1041                    let accept_compression_encodings = self.accept_compression_encodings;
1042                    let send_compression_encodings = self.send_compression_encodings;
1043                    let max_decoding_message_size = self.max_decoding_message_size;
1044                    let max_encoding_message_size = self.max_encoding_message_size;
1045                    let inner = self.inner.clone();
1046                    let fut = async move {
1047                        let method = AddJobsSvc(inner);
1048                        let codec = tonic_prost::ProstCodec::default();
1049                        let mut grpc = tonic::server::Grpc::new(codec)
1050                            .apply_compression_config(
1051                                accept_compression_encodings,
1052                                send_compression_encodings,
1053                            )
1054                            .apply_max_message_size_config(
1055                                max_decoding_message_size,
1056                                max_encoding_message_size,
1057                            );
1058                        let res = grpc.unary(method, req).await;
1059                        Ok(res)
1060                    };
1061                    Box::pin(fut)
1062                }
1063                "/ora.admin.v1.AdminService/ListJobs" => {
1064                    #[allow(non_camel_case_types)]
1065                    struct ListJobsSvc<T: AdminService>(pub Arc<T>);
1066                    impl<T: AdminService> tonic::server::UnaryService<super::ListJobsRequest> for ListJobsSvc<T> {
1067                        type Response = super::ListJobsResponse;
1068                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1069                        fn call(
1070                            &mut self,
1071                            request: tonic::Request<super::ListJobsRequest>,
1072                        ) -> Self::Future {
1073                            let inner = Arc::clone(&self.0);
1074                            let fut = async move {
1075                                <T as AdminService>::list_jobs(&inner, request).await
1076                            };
1077                            Box::pin(fut)
1078                        }
1079                    }
1080                    let accept_compression_encodings = self.accept_compression_encodings;
1081                    let send_compression_encodings = self.send_compression_encodings;
1082                    let max_decoding_message_size = self.max_decoding_message_size;
1083                    let max_encoding_message_size = self.max_encoding_message_size;
1084                    let inner = self.inner.clone();
1085                    let fut = async move {
1086                        let method = ListJobsSvc(inner);
1087                        let codec = tonic_prost::ProstCodec::default();
1088                        let mut grpc = tonic::server::Grpc::new(codec)
1089                            .apply_compression_config(
1090                                accept_compression_encodings,
1091                                send_compression_encodings,
1092                            )
1093                            .apply_max_message_size_config(
1094                                max_decoding_message_size,
1095                                max_encoding_message_size,
1096                            );
1097                        let res = grpc.unary(method, req).await;
1098                        Ok(res)
1099                    };
1100                    Box::pin(fut)
1101                }
1102                "/ora.admin.v1.AdminService/CountJobs" => {
1103                    #[allow(non_camel_case_types)]
1104                    struct CountJobsSvc<T: AdminService>(pub Arc<T>);
1105                    impl<T: AdminService> tonic::server::UnaryService<super::CountJobsRequest> for CountJobsSvc<T> {
1106                        type Response = super::CountJobsResponse;
1107                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1108                        fn call(
1109                            &mut self,
1110                            request: tonic::Request<super::CountJobsRequest>,
1111                        ) -> Self::Future {
1112                            let inner = Arc::clone(&self.0);
1113                            let fut = async move {
1114                                <T as AdminService>::count_jobs(&inner, request).await
1115                            };
1116                            Box::pin(fut)
1117                        }
1118                    }
1119                    let accept_compression_encodings = self.accept_compression_encodings;
1120                    let send_compression_encodings = self.send_compression_encodings;
1121                    let max_decoding_message_size = self.max_decoding_message_size;
1122                    let max_encoding_message_size = self.max_encoding_message_size;
1123                    let inner = self.inner.clone();
1124                    let fut = async move {
1125                        let method = CountJobsSvc(inner);
1126                        let codec = tonic_prost::ProstCodec::default();
1127                        let mut grpc = tonic::server::Grpc::new(codec)
1128                            .apply_compression_config(
1129                                accept_compression_encodings,
1130                                send_compression_encodings,
1131                            )
1132                            .apply_max_message_size_config(
1133                                max_decoding_message_size,
1134                                max_encoding_message_size,
1135                            );
1136                        let res = grpc.unary(method, req).await;
1137                        Ok(res)
1138                    };
1139                    Box::pin(fut)
1140                }
1141                "/ora.admin.v1.AdminService/CancelJobs" => {
1142                    #[allow(non_camel_case_types)]
1143                    struct CancelJobsSvc<T: AdminService>(pub Arc<T>);
1144                    impl<T: AdminService> tonic::server::UnaryService<super::CancelJobsRequest> for CancelJobsSvc<T> {
1145                        type Response = super::CancelJobsResponse;
1146                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1147                        fn call(
1148                            &mut self,
1149                            request: tonic::Request<super::CancelJobsRequest>,
1150                        ) -> Self::Future {
1151                            let inner = Arc::clone(&self.0);
1152                            let fut = async move {
1153                                <T as AdminService>::cancel_jobs(&inner, request).await
1154                            };
1155                            Box::pin(fut)
1156                        }
1157                    }
1158                    let accept_compression_encodings = self.accept_compression_encodings;
1159                    let send_compression_encodings = self.send_compression_encodings;
1160                    let max_decoding_message_size = self.max_decoding_message_size;
1161                    let max_encoding_message_size = self.max_encoding_message_size;
1162                    let inner = self.inner.clone();
1163                    let fut = async move {
1164                        let method = CancelJobsSvc(inner);
1165                        let codec = tonic_prost::ProstCodec::default();
1166                        let mut grpc = tonic::server::Grpc::new(codec)
1167                            .apply_compression_config(
1168                                accept_compression_encodings,
1169                                send_compression_encodings,
1170                            )
1171                            .apply_max_message_size_config(
1172                                max_decoding_message_size,
1173                                max_encoding_message_size,
1174                            );
1175                        let res = grpc.unary(method, req).await;
1176                        Ok(res)
1177                    };
1178                    Box::pin(fut)
1179                }
1180                "/ora.admin.v1.AdminService/AddSchedules" => {
1181                    #[allow(non_camel_case_types)]
1182                    struct AddSchedulesSvc<T: AdminService>(pub Arc<T>);
1183                    impl<T: AdminService> tonic::server::UnaryService<super::AddSchedulesRequest>
1184                        for AddSchedulesSvc<T>
1185                    {
1186                        type Response = super::AddSchedulesResponse;
1187                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1188                        fn call(
1189                            &mut self,
1190                            request: tonic::Request<super::AddSchedulesRequest>,
1191                        ) -> Self::Future {
1192                            let inner = Arc::clone(&self.0);
1193                            let fut = async move {
1194                                <T as AdminService>::add_schedules(&inner, request).await
1195                            };
1196                            Box::pin(fut)
1197                        }
1198                    }
1199                    let accept_compression_encodings = self.accept_compression_encodings;
1200                    let send_compression_encodings = self.send_compression_encodings;
1201                    let max_decoding_message_size = self.max_decoding_message_size;
1202                    let max_encoding_message_size = self.max_encoding_message_size;
1203                    let inner = self.inner.clone();
1204                    let fut = async move {
1205                        let method = AddSchedulesSvc(inner);
1206                        let codec = tonic_prost::ProstCodec::default();
1207                        let mut grpc = tonic::server::Grpc::new(codec)
1208                            .apply_compression_config(
1209                                accept_compression_encodings,
1210                                send_compression_encodings,
1211                            )
1212                            .apply_max_message_size_config(
1213                                max_decoding_message_size,
1214                                max_encoding_message_size,
1215                            );
1216                        let res = grpc.unary(method, req).await;
1217                        Ok(res)
1218                    };
1219                    Box::pin(fut)
1220                }
1221                "/ora.admin.v1.AdminService/ListSchedules" => {
1222                    #[allow(non_camel_case_types)]
1223                    struct ListSchedulesSvc<T: AdminService>(pub Arc<T>);
1224                    impl<T: AdminService> tonic::server::UnaryService<super::ListSchedulesRequest>
1225                        for ListSchedulesSvc<T>
1226                    {
1227                        type Response = super::ListSchedulesResponse;
1228                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1229                        fn call(
1230                            &mut self,
1231                            request: tonic::Request<super::ListSchedulesRequest>,
1232                        ) -> Self::Future {
1233                            let inner = Arc::clone(&self.0);
1234                            let fut = async move {
1235                                <T as AdminService>::list_schedules(&inner, request).await
1236                            };
1237                            Box::pin(fut)
1238                        }
1239                    }
1240                    let accept_compression_encodings = self.accept_compression_encodings;
1241                    let send_compression_encodings = self.send_compression_encodings;
1242                    let max_decoding_message_size = self.max_decoding_message_size;
1243                    let max_encoding_message_size = self.max_encoding_message_size;
1244                    let inner = self.inner.clone();
1245                    let fut = async move {
1246                        let method = ListSchedulesSvc(inner);
1247                        let codec = tonic_prost::ProstCodec::default();
1248                        let mut grpc = tonic::server::Grpc::new(codec)
1249                            .apply_compression_config(
1250                                accept_compression_encodings,
1251                                send_compression_encodings,
1252                            )
1253                            .apply_max_message_size_config(
1254                                max_decoding_message_size,
1255                                max_encoding_message_size,
1256                            );
1257                        let res = grpc.unary(method, req).await;
1258                        Ok(res)
1259                    };
1260                    Box::pin(fut)
1261                }
1262                "/ora.admin.v1.AdminService/CountSchedules" => {
1263                    #[allow(non_camel_case_types)]
1264                    struct CountSchedulesSvc<T: AdminService>(pub Arc<T>);
1265                    impl<T: AdminService> tonic::server::UnaryService<super::CountSchedulesRequest>
1266                        for CountSchedulesSvc<T>
1267                    {
1268                        type Response = super::CountSchedulesResponse;
1269                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1270                        fn call(
1271                            &mut self,
1272                            request: tonic::Request<super::CountSchedulesRequest>,
1273                        ) -> Self::Future {
1274                            let inner = Arc::clone(&self.0);
1275                            let fut = async move {
1276                                <T as AdminService>::count_schedules(&inner, request).await
1277                            };
1278                            Box::pin(fut)
1279                        }
1280                    }
1281                    let accept_compression_encodings = self.accept_compression_encodings;
1282                    let send_compression_encodings = self.send_compression_encodings;
1283                    let max_decoding_message_size = self.max_decoding_message_size;
1284                    let max_encoding_message_size = self.max_encoding_message_size;
1285                    let inner = self.inner.clone();
1286                    let fut = async move {
1287                        let method = CountSchedulesSvc(inner);
1288                        let codec = tonic_prost::ProstCodec::default();
1289                        let mut grpc = tonic::server::Grpc::new(codec)
1290                            .apply_compression_config(
1291                                accept_compression_encodings,
1292                                send_compression_encodings,
1293                            )
1294                            .apply_max_message_size_config(
1295                                max_decoding_message_size,
1296                                max_encoding_message_size,
1297                            );
1298                        let res = grpc.unary(method, req).await;
1299                        Ok(res)
1300                    };
1301                    Box::pin(fut)
1302                }
1303                "/ora.admin.v1.AdminService/StopSchedules" => {
1304                    #[allow(non_camel_case_types)]
1305                    struct StopSchedulesSvc<T: AdminService>(pub Arc<T>);
1306                    impl<T: AdminService> tonic::server::UnaryService<super::StopSchedulesRequest>
1307                        for StopSchedulesSvc<T>
1308                    {
1309                        type Response = super::StopSchedulesResponse;
1310                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1311                        fn call(
1312                            &mut self,
1313                            request: tonic::Request<super::StopSchedulesRequest>,
1314                        ) -> Self::Future {
1315                            let inner = Arc::clone(&self.0);
1316                            let fut = async move {
1317                                <T as AdminService>::stop_schedules(&inner, request).await
1318                            };
1319                            Box::pin(fut)
1320                        }
1321                    }
1322                    let accept_compression_encodings = self.accept_compression_encodings;
1323                    let send_compression_encodings = self.send_compression_encodings;
1324                    let max_decoding_message_size = self.max_decoding_message_size;
1325                    let max_encoding_message_size = self.max_encoding_message_size;
1326                    let inner = self.inner.clone();
1327                    let fut = async move {
1328                        let method = StopSchedulesSvc(inner);
1329                        let codec = tonic_prost::ProstCodec::default();
1330                        let mut grpc = tonic::server::Grpc::new(codec)
1331                            .apply_compression_config(
1332                                accept_compression_encodings,
1333                                send_compression_encodings,
1334                            )
1335                            .apply_max_message_size_config(
1336                                max_decoding_message_size,
1337                                max_encoding_message_size,
1338                            );
1339                        let res = grpc.unary(method, req).await;
1340                        Ok(res)
1341                    };
1342                    Box::pin(fut)
1343                }
1344                "/ora.admin.v1.AdminService/ListExecutors" => {
1345                    #[allow(non_camel_case_types)]
1346                    struct ListExecutorsSvc<T: AdminService>(pub Arc<T>);
1347                    impl<T: AdminService> tonic::server::UnaryService<super::ListExecutorsRequest>
1348                        for ListExecutorsSvc<T>
1349                    {
1350                        type Response = super::ListExecutorsResponse;
1351                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1352                        fn call(
1353                            &mut self,
1354                            request: tonic::Request<super::ListExecutorsRequest>,
1355                        ) -> Self::Future {
1356                            let inner = Arc::clone(&self.0);
1357                            let fut = async move {
1358                                <T as AdminService>::list_executors(&inner, request).await
1359                            };
1360                            Box::pin(fut)
1361                        }
1362                    }
1363                    let accept_compression_encodings = self.accept_compression_encodings;
1364                    let send_compression_encodings = self.send_compression_encodings;
1365                    let max_decoding_message_size = self.max_decoding_message_size;
1366                    let max_encoding_message_size = self.max_encoding_message_size;
1367                    let inner = self.inner.clone();
1368                    let fut = async move {
1369                        let method = ListExecutorsSvc(inner);
1370                        let codec = tonic_prost::ProstCodec::default();
1371                        let mut grpc = tonic::server::Grpc::new(codec)
1372                            .apply_compression_config(
1373                                accept_compression_encodings,
1374                                send_compression_encodings,
1375                            )
1376                            .apply_max_message_size_config(
1377                                max_decoding_message_size,
1378                                max_encoding_message_size,
1379                            );
1380                        let res = grpc.unary(method, req).await;
1381                        Ok(res)
1382                    };
1383                    Box::pin(fut)
1384                }
1385                "/ora.admin.v1.AdminService/DeleteHistoricalData" => {
1386                    #[allow(non_camel_case_types)]
1387                    struct DeleteHistoricalDataSvc<T: AdminService>(pub Arc<T>);
1388                    impl<T: AdminService>
1389                        tonic::server::UnaryService<super::DeleteHistoricalDataRequest>
1390                        for DeleteHistoricalDataSvc<T>
1391                    {
1392                        type Response = super::DeleteHistoricalDataResponse;
1393                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1394                        fn call(
1395                            &mut self,
1396                            request: tonic::Request<super::DeleteHistoricalDataRequest>,
1397                        ) -> Self::Future {
1398                            let inner = Arc::clone(&self.0);
1399                            let fut = async move {
1400                                <T as AdminService>::delete_historical_data(&inner, request).await
1401                            };
1402                            Box::pin(fut)
1403                        }
1404                    }
1405                    let accept_compression_encodings = self.accept_compression_encodings;
1406                    let send_compression_encodings = self.send_compression_encodings;
1407                    let max_decoding_message_size = self.max_decoding_message_size;
1408                    let max_encoding_message_size = self.max_encoding_message_size;
1409                    let inner = self.inner.clone();
1410                    let fut = async move {
1411                        let method = DeleteHistoricalDataSvc(inner);
1412                        let codec = tonic_prost::ProstCodec::default();
1413                        let mut grpc = tonic::server::Grpc::new(codec)
1414                            .apply_compression_config(
1415                                accept_compression_encodings,
1416                                send_compression_encodings,
1417                            )
1418                            .apply_max_message_size_config(
1419                                max_decoding_message_size,
1420                                max_encoding_message_size,
1421                            );
1422                        let res = grpc.unary(method, req).await;
1423                        Ok(res)
1424                    };
1425                    Box::pin(fut)
1426                }
1427                _ => Box::pin(async move {
1428                    let mut response = http::Response::new(tonic::body::Body::default());
1429                    let headers = response.headers_mut();
1430                    headers.insert(
1431                        tonic::Status::GRPC_STATUS,
1432                        (tonic::Code::Unimplemented as i32).into(),
1433                    );
1434                    headers.insert(
1435                        http::header::CONTENT_TYPE,
1436                        tonic::metadata::GRPC_CONTENT_TYPE,
1437                    );
1438                    Ok(response)
1439                }),
1440            }
1441        }
1442    }
1443    impl<T> Clone for AdminServiceServer<T> {
1444        fn clone(&self) -> Self {
1445            let inner = self.inner.clone();
1446            Self {
1447                inner,
1448                accept_compression_encodings: self.accept_compression_encodings,
1449                send_compression_encodings: self.send_compression_encodings,
1450                max_decoding_message_size: self.max_decoding_message_size,
1451                max_encoding_message_size: self.max_encoding_message_size,
1452            }
1453        }
1454    }
1455    /// Generated gRPC service name
1456    pub const SERVICE_NAME: &str = "ora.admin.v1.AdminService";
1457    impl<T> tonic::server::NamedService for AdminServiceServer<T> {
1458        const NAME: &'static str = SERVICE_NAME;
1459    }
1460}