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