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