Skip to main content

nominal_api_proto/proto/
nominal.plan.v1.rs

1// This file is @generated by prost-build.
2#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct Plan {
4    #[prost(string, tag = "1")]
5    pub rid: ::prost::alloc::string::String,
6    #[prost(message, optional, tag = "2")]
7    pub metadata: ::core::option::Option<PlanMetadata>,
8    #[prost(message, optional, tag = "3")]
9    pub commit: ::core::option::Option<super::super::versioning::v1::Commit>,
10    #[prost(message, optional, tag = "4")]
11    pub content: ::core::option::Option<PlanContent>,
12}
13#[derive(Clone, PartialEq, ::prost::Message)]
14pub struct PlanSummary {
15    #[prost(string, tag = "1")]
16    pub rid: ::prost::alloc::string::String,
17    #[prost(message, optional, tag = "2")]
18    pub metadata: ::core::option::Option<PlanMetadata>,
19    #[prost(message, optional, tag = "3")]
20    pub start: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
21    #[prost(message, optional, tag = "4")]
22    pub end: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
23    #[prost(message, optional, tag = "5")]
24    pub earliest_scheduled_start: ::core::option::Option<
25        super::super::super::google::protobuf::Timestamp,
26    >,
27    #[prost(message, optional, tag = "6")]
28    pub latest_scheduled_end: ::core::option::Option<
29        super::super::super::google::protobuf::Timestamp,
30    >,
31}
32#[derive(Clone, PartialEq, ::prost::Message)]
33pub struct PlanMetadata {
34    #[prost(string, tag = "1")]
35    pub title: ::prost::alloc::string::String,
36    #[prost(string, tag = "2")]
37    pub description: ::prost::alloc::string::String,
38    #[prost(string, repeated, tag = "3")]
39    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
40    #[prost(map = "string, string", tag = "4")]
41    pub properties: ::std::collections::HashMap<
42        ::prost::alloc::string::String,
43        ::prost::alloc::string::String,
44    >,
45    #[prost(bool, tag = "5")]
46    pub is_archived: bool,
47    #[prost(bool, optional, tag = "6")]
48    pub is_published: ::core::option::Option<bool>,
49    #[prost(string, tag = "7")]
50    pub created_by: ::prost::alloc::string::String,
51    #[prost(message, optional, tag = "8")]
52    pub created_at: ::core::option::Option<
53        super::super::super::google::protobuf::Timestamp,
54    >,
55    #[prost(message, optional, tag = "9")]
56    pub updated_at: ::core::option::Option<
57        super::super::super::google::protobuf::Timestamp,
58    >,
59    #[prost(message, optional, tag = "10")]
60    pub edited_at: ::core::option::Option<
61        super::super::super::google::protobuf::Timestamp,
62    >,
63    #[prost(string, tag = "11")]
64    pub workspace_rid: ::prost::alloc::string::String,
65    #[prost(string, tag = "12")]
66    pub updated_by: ::prost::alloc::string::String,
67}
68#[derive(Clone, PartialEq, ::prost::Message)]
69pub struct PlanContent {
70    #[prost(oneof = "plan_content::PlanContent", tags = "1")]
71    pub plan_content: ::core::option::Option<plan_content::PlanContent>,
72}
73/// Nested message and enum types in `PlanContent`.
74pub mod plan_content {
75    #[derive(Clone, PartialEq, ::prost::Oneof)]
76    pub enum PlanContent {
77        #[prost(message, tag = "1")]
78        V1(super::PlanContentV1),
79    }
80}
81#[derive(Clone, PartialEq, ::prost::Message)]
82pub struct PlanContentV1 {
83    #[prost(message, optional, tag = "1")]
84    pub start: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
85    #[prost(message, optional, tag = "2")]
86    pub end: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
87    #[prost(message, repeated, tag = "3")]
88    pub objectives: ::prost::alloc::vec::Vec<Objective>,
89    #[prost(message, repeated, tag = "4")]
90    pub activities: ::prost::alloc::vec::Vec<Activity>,
91    #[prost(message, repeated, tag = "5")]
92    pub segments: ::prost::alloc::vec::Vec<Segment>,
93    #[prost(message, repeated, tag = "6")]
94    pub asset_groups: ::prost::alloc::vec::Vec<AssetGroup>,
95    #[prost(message, repeated, tag = "7")]
96    pub milestones: ::prost::alloc::vec::Vec<Milestone>,
97    #[prost(message, repeated, tag = "8")]
98    pub constraints: ::prost::alloc::vec::Vec<Constraint>,
99    #[prost(string, optional, tag = "9")]
100    pub timezone: ::core::option::Option<::prost::alloc::string::String>,
101}
102#[derive(Clone, PartialEq, ::prost::Message)]
103pub struct Milestone {
104    #[prost(string, tag = "1")]
105    pub id: ::prost::alloc::string::String,
106    #[prost(string, tag = "2")]
107    pub name: ::prost::alloc::string::String,
108    #[prost(string, optional, tag = "3")]
109    pub description: ::core::option::Option<::prost::alloc::string::String>,
110}
111#[derive(Clone, PartialEq, ::prost::Message)]
112pub struct Activity {
113    #[prost(string, tag = "1")]
114    pub id: ::prost::alloc::string::String,
115    #[prost(string, tag = "2")]
116    pub name: ::prost::alloc::string::String,
117    #[prost(string, optional, tag = "3")]
118    pub description: ::core::option::Option<::prost::alloc::string::String>,
119    #[prost(message, optional, tag = "4")]
120    pub details: ::core::option::Option<ActivityDetails>,
121    #[prost(message, optional, tag = "5")]
122    pub planned_duration: ::core::option::Option<MinuteDuration>,
123    #[prost(string, repeated, tag = "6")]
124    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
125    #[prost(map = "string, string", tag = "7")]
126    pub properties: ::std::collections::HashMap<
127        ::prost::alloc::string::String,
128        ::prost::alloc::string::String,
129    >,
130    #[prost(string, repeated, tag = "8")]
131    pub attachment_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
132    #[prost(message, repeated, tag = "9")]
133    pub links: ::prost::alloc::vec::Vec<Link>,
134}
135#[derive(Clone, PartialEq, ::prost::Message)]
136pub struct ActivityDetails {
137    #[prost(oneof = "activity_details::ActivityDetails", tags = "1")]
138    pub activity_details: ::core::option::Option<activity_details::ActivityDetails>,
139}
140/// Nested message and enum types in `ActivityDetails`.
141pub mod activity_details {
142    #[derive(Clone, PartialEq, ::prost::Oneof)]
143    pub enum ActivityDetails {
144        #[prost(message, tag = "1")]
145        Single(super::SingleActivity),
146    }
147}
148#[derive(Clone, PartialEq, ::prost::Message)]
149pub struct SingleActivity {
150    #[prost(message, optional, tag = "1")]
151    pub start: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
152    #[prost(message, optional, tag = "2")]
153    pub end: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
154    #[prost(string, optional, tag = "3")]
155    pub segment_id: ::core::option::Option<::prost::alloc::string::String>,
156    #[prost(string, repeated, tag = "4")]
157    pub objective_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
158    #[prost(message, optional, tag = "5")]
159    pub status: ::core::option::Option<ActivityStatus>,
160}
161#[derive(Clone, PartialEq, ::prost::Message)]
162pub struct ActivityStatus {
163    #[prost(oneof = "activity_status::ActivityStatus", tags = "1, 2, 3, 4, 5")]
164    pub activity_status: ::core::option::Option<activity_status::ActivityStatus>,
165}
166/// Nested message and enum types in `ActivityStatus`.
167pub mod activity_status {
168    #[derive(Clone, PartialEq, ::prost::Oneof)]
169    pub enum ActivityStatus {
170        #[prost(message, tag = "1")]
171        Created(super::CreatedActivity),
172        #[prost(message, tag = "2")]
173        Finalized(super::FinalizedActivity),
174        #[prost(message, tag = "3")]
175        InProgress(super::InProgressActivity),
176        #[prost(message, tag = "4")]
177        Completed(super::CompletedActivity),
178        #[prost(message, tag = "5")]
179        Cancelled(super::CancelledActivity),
180    }
181}
182#[derive(Clone, Copy, PartialEq, ::prost::Message)]
183pub struct CreatedActivity {}
184#[derive(Clone, Copy, PartialEq, ::prost::Message)]
185pub struct FinalizedActivity {}
186#[derive(Clone, Copy, PartialEq, ::prost::Message)]
187pub struct InProgressActivity {}
188#[derive(Clone, PartialEq, ::prost::Message)]
189pub struct CompletedActivity {
190    #[prost(string, optional, tag = "1")]
191    pub notes: ::core::option::Option<::prost::alloc::string::String>,
192}
193#[derive(Clone, PartialEq, ::prost::Message)]
194pub struct CancelledActivity {
195    #[prost(string, tag = "1")]
196    pub reason: ::prost::alloc::string::String,
197    #[prost(string, optional, tag = "2")]
198    pub notes: ::core::option::Option<::prost::alloc::string::String>,
199}
200#[derive(Clone, PartialEq, ::prost::Message)]
201pub struct Objective {
202    #[prost(string, tag = "1")]
203    pub id: ::prost::alloc::string::String,
204    #[prost(string, tag = "2")]
205    pub name: ::prost::alloc::string::String,
206    #[prost(string, tag = "3")]
207    pub creator: ::prost::alloc::string::String,
208    #[prost(message, optional, tag = "4")]
209    pub created_at: ::core::option::Option<
210        super::super::super::google::protobuf::Timestamp,
211    >,
212    #[prost(enumeration = "super::super::types::Priority", tag = "5")]
213    pub priority: i32,
214    #[prost(string, repeated, tag = "6")]
215    pub milestone_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
216    #[prost(string, optional, tag = "7")]
217    pub description: ::core::option::Option<::prost::alloc::string::String>,
218    #[prost(message, optional, tag = "8")]
219    pub details: ::core::option::Option<ObjectiveDetails>,
220    #[prost(message, optional, tag = "9")]
221    pub status: ::core::option::Option<ObjectiveStatus>,
222    #[prost(message, optional, tag = "10")]
223    pub planned_duration: ::core::option::Option<MinuteDuration>,
224    #[prost(string, repeated, tag = "11")]
225    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
226    #[prost(map = "string, string", tag = "12")]
227    pub properties: ::std::collections::HashMap<
228        ::prost::alloc::string::String,
229        ::prost::alloc::string::String,
230    >,
231    #[prost(string, repeated, tag = "13")]
232    pub attachment_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
233    #[prost(message, repeated, tag = "14")]
234    pub links: ::prost::alloc::vec::Vec<Link>,
235}
236#[derive(Clone, PartialEq, ::prost::Message)]
237pub struct ObjectiveStatus {
238    #[prost(oneof = "objective_status::ObjectiveStatus", tags = "1, 2, 3, 4, 5")]
239    pub objective_status: ::core::option::Option<objective_status::ObjectiveStatus>,
240}
241/// Nested message and enum types in `ObjectiveStatus`.
242pub mod objective_status {
243    #[derive(Clone, PartialEq, ::prost::Oneof)]
244    pub enum ObjectiveStatus {
245        #[prost(message, tag = "1")]
246        Draft(super::DraftObjective),
247        #[prost(message, tag = "2")]
248        Proposed(super::ProposedObjective),
249        #[prost(message, tag = "3")]
250        Finalized(super::FinalizedObjective),
251        #[prost(message, tag = "4")]
252        Completed(super::CompletedObjective),
253        #[prost(message, tag = "5")]
254        Rejected(super::RejectedObjective),
255    }
256}
257#[derive(Clone, Copy, PartialEq, ::prost::Message)]
258pub struct DraftObjective {}
259#[derive(Clone, Copy, PartialEq, ::prost::Message)]
260pub struct ProposedObjective {}
261#[derive(Clone, Copy, PartialEq, ::prost::Message)]
262pub struct FinalizedObjective {}
263#[derive(Clone, PartialEq, ::prost::Message)]
264pub struct CompletedObjective {
265    #[prost(message, optional, tag = "1")]
266    pub disposition: ::core::option::Option<ObjectiveDisposition>,
267}
268#[derive(Clone, PartialEq, ::prost::Message)]
269pub struct RejectedObjective {
270    #[prost(string, tag = "1")]
271    pub reason: ::prost::alloc::string::String,
272}
273#[derive(Clone, PartialEq, ::prost::Message)]
274pub struct ObjectiveDisposition {
275    #[prost(oneof = "objective_disposition::ObjectiveDisposition", tags = "1, 2")]
276    pub objective_disposition: ::core::option::Option<
277        objective_disposition::ObjectiveDisposition,
278    >,
279}
280/// Nested message and enum types in `ObjectiveDisposition`.
281pub mod objective_disposition {
282    #[derive(Clone, PartialEq, ::prost::Oneof)]
283    pub enum ObjectiveDisposition {
284        #[prost(message, tag = "1")]
285        Successful(super::SuccessfulObjective),
286        #[prost(message, tag = "2")]
287        Failed(super::FailedObjective),
288    }
289}
290#[derive(Clone, PartialEq, ::prost::Message)]
291pub struct SuccessfulObjective {
292    #[prost(string, optional, tag = "1")]
293    pub notes: ::core::option::Option<::prost::alloc::string::String>,
294}
295#[derive(Clone, PartialEq, ::prost::Message)]
296pub struct FailedObjective {
297    #[prost(string, tag = "1")]
298    pub reason: ::prost::alloc::string::String,
299    #[prost(string, optional, tag = "2")]
300    pub notes: ::core::option::Option<::prost::alloc::string::String>,
301}
302#[derive(Clone, PartialEq, ::prost::Message)]
303pub struct ObjectiveDetails {
304    #[prost(oneof = "objective_details::ObjectiveDetails", tags = "1")]
305    pub objective_details: ::core::option::Option<objective_details::ObjectiveDetails>,
306}
307/// Nested message and enum types in `ObjectiveDetails`.
308pub mod objective_details {
309    #[derive(Clone, PartialEq, ::prost::Oneof)]
310    pub enum ObjectiveDetails {
311        #[prost(message, tag = "1")]
312        Simple(super::SimpleObjective),
313    }
314}
315#[derive(Clone, PartialEq, ::prost::Message)]
316pub struct SimpleObjective {
317    #[prost(message, repeated, tag = "1")]
318    pub resources: ::prost::alloc::vec::Vec<Resource>,
319    #[prost(string, repeated, tag = "2")]
320    pub checklist_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
321    #[prost(string, repeated, tag = "3")]
322    pub procedure_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
323}
324#[derive(Clone, PartialEq, ::prost::Message)]
325pub struct Resource {
326    #[prost(string, tag = "1")]
327    pub name: ::prost::alloc::string::String,
328    #[prost(string, optional, tag = "2")]
329    pub description: ::core::option::Option<::prost::alloc::string::String>,
330    #[prost(int32, optional, tag = "3")]
331    pub count: ::core::option::Option<i32>,
332    #[prost(message, optional, tag = "4")]
333    pub candidate_assets: ::core::option::Option<CandidateAssetGroup>,
334    #[prost(string, repeated, tag = "5")]
335    pub finalized_asset_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
336    #[prost(string, tag = "6")]
337    pub id: ::prost::alloc::string::String,
338    #[prost(string, repeated, tag = "7")]
339    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
340    #[prost(map = "string, string", tag = "8")]
341    pub properties: ::std::collections::HashMap<
342        ::prost::alloc::string::String,
343        ::prost::alloc::string::String,
344    >,
345}
346#[derive(Clone, PartialEq, ::prost::Message)]
347pub struct CandidateAssetGroup {
348    #[prost(oneof = "candidate_asset_group::CandidateAssetGroup", tags = "1, 2")]
349    pub candidate_asset_group: ::core::option::Option<
350        candidate_asset_group::CandidateAssetGroup,
351    >,
352}
353/// Nested message and enum types in `CandidateAssetGroup`.
354pub mod candidate_asset_group {
355    #[derive(Clone, PartialEq, ::prost::Oneof)]
356    pub enum CandidateAssetGroup {
357        #[prost(message, tag = "1")]
358        Sources(super::AssetSourceList),
359        #[prost(string, tag = "2")]
360        AssetGroupId(::prost::alloc::string::String),
361    }
362}
363#[derive(Clone, PartialEq, ::prost::Message)]
364pub struct AssetSourceList {
365    #[prost(message, repeated, tag = "1")]
366    pub sources: ::prost::alloc::vec::Vec<AssetSource>,
367}
368#[derive(Clone, PartialEq, ::prost::Message)]
369pub struct AssetGroup {
370    #[prost(string, tag = "1")]
371    pub id: ::prost::alloc::string::String,
372    #[prost(string, tag = "2")]
373    pub name: ::prost::alloc::string::String,
374    #[prost(string, optional, tag = "3")]
375    pub description: ::core::option::Option<::prost::alloc::string::String>,
376    #[prost(message, repeated, tag = "4")]
377    pub sources: ::prost::alloc::vec::Vec<AssetSource>,
378}
379#[derive(Clone, PartialEq, ::prost::Message)]
380pub struct AssetSource {
381    #[prost(oneof = "asset_source::AssetSource", tags = "1, 2")]
382    pub asset_source: ::core::option::Option<asset_source::AssetSource>,
383}
384/// Nested message and enum types in `AssetSource`.
385pub mod asset_source {
386    #[derive(Clone, PartialEq, ::prost::Oneof)]
387    pub enum AssetSource {
388        #[prost(message, tag = "1")]
389        AssetSearch(super::super::super::asset::v2::SearchAssetsQuery),
390        #[prost(string, tag = "2")]
391        AssetRid(::prost::alloc::string::String),
392    }
393}
394#[derive(Clone, PartialEq, ::prost::Message)]
395pub struct Segment {
396    #[prost(string, tag = "1")]
397    pub id: ::prost::alloc::string::String,
398    #[prost(string, tag = "2")]
399    pub name: ::prost::alloc::string::String,
400    #[prost(message, optional, tag = "3")]
401    pub start: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
402    #[prost(message, optional, tag = "4")]
403    pub end: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
404    #[prost(message, optional, tag = "5")]
405    pub status: ::core::option::Option<SegmentStatus>,
406    #[prost(string, repeated, tag = "6")]
407    pub labels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
408    #[prost(map = "string, string", tag = "7")]
409    pub properties: ::std::collections::HashMap<
410        ::prost::alloc::string::String,
411        ::prost::alloc::string::String,
412    >,
413}
414#[derive(Clone, Copy, PartialEq, ::prost::Message)]
415pub struct SegmentStatus {
416    #[prost(oneof = "segment_status::SegmentStatus", tags = "1, 2")]
417    pub segment_status: ::core::option::Option<segment_status::SegmentStatus>,
418}
419/// Nested message and enum types in `SegmentStatus`.
420pub mod segment_status {
421    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
422    pub enum SegmentStatus {
423        #[prost(message, tag = "1")]
424        Draft(super::DraftSegment),
425        #[prost(message, tag = "2")]
426        Finalized(super::FinalizedSegment),
427    }
428}
429#[derive(Clone, Copy, PartialEq, ::prost::Message)]
430pub struct DraftSegment {}
431#[derive(Clone, Copy, PartialEq, ::prost::Message)]
432pub struct FinalizedSegment {}
433#[derive(Clone, PartialEq, ::prost::Message)]
434pub struct Link {
435    #[prost(string, optional, tag = "1")]
436    pub title: ::core::option::Option<::prost::alloc::string::String>,
437    #[prost(string, tag = "2")]
438    pub url: ::prost::alloc::string::String,
439}
440#[derive(Clone, Copy, PartialEq, ::prost::Message)]
441pub struct MinuteDuration {
442    #[prost(message, optional, tag = "1")]
443    pub value: ::core::option::Option<super::super::types::Duration>,
444}
445#[derive(Clone, PartialEq, ::prost::Message)]
446pub struct Constraint {
447    #[prost(string, tag = "1")]
448    pub id: ::prost::alloc::string::String,
449    #[prost(string, tag = "2")]
450    pub name: ::prost::alloc::string::String,
451    #[prost(message, repeated, tag = "3")]
452    pub subjects: ::prost::alloc::vec::Vec<ConstraintSubject>,
453    #[prost(message, optional, tag = "4")]
454    pub kind: ::core::option::Option<ConstraintKind>,
455}
456#[derive(Clone, PartialEq, ::prost::Message)]
457pub struct ConstraintSubject {
458    #[prost(oneof = "constraint_subject::Subject", tags = "1, 2, 3, 4, 5, 6, 7")]
459    pub subject: ::core::option::Option<constraint_subject::Subject>,
460}
461/// Nested message and enum types in `ConstraintSubject`.
462pub mod constraint_subject {
463    #[derive(Clone, PartialEq, ::prost::Oneof)]
464    pub enum Subject {
465        #[prost(string, tag = "1")]
466        ActivityId(::prost::alloc::string::String),
467        #[prost(string, tag = "2")]
468        ObjectiveId(::prost::alloc::string::String),
469        #[prost(string, tag = "3")]
470        ResourceId(::prost::alloc::string::String),
471        #[prost(string, tag = "4")]
472        AssetGroupId(::prost::alloc::string::String),
473        #[prost(string, tag = "5")]
474        AssetRid(::prost::alloc::string::String),
475        #[prost(message, tag = "6")]
476        PlanWide(super::PlanWide),
477        #[prost(string, tag = "7")]
478        SegmentId(::prost::alloc::string::String),
479    }
480}
481#[derive(Clone, Copy, PartialEq, ::prost::Message)]
482pub struct PlanWide {}
483#[derive(Clone, PartialEq, ::prost::Message)]
484pub struct ConstraintKind {
485    #[prost(oneof = "constraint_kind::Kind", tags = "1, 2, 3, 4, 5, 6")]
486    pub kind: ::core::option::Option<constraint_kind::Kind>,
487}
488/// Nested message and enum types in `ConstraintKind`.
489pub mod constraint_kind {
490    #[derive(Clone, PartialEq, ::prost::Oneof)]
491    pub enum Kind {
492        #[prost(message, tag = "1")]
493        AllowedWindows(super::AllowedWindowsConstraint),
494        #[prost(message, tag = "2")]
495        Capacity(super::CapacityConstraint),
496        #[prost(message, tag = "3")]
497        Buffer(super::BufferConstraint),
498        #[prost(message, tag = "4")]
499        UsageCeiling(super::UsageCeilingConstraint),
500        #[prost(message, tag = "5")]
501        Precedence(super::PrecedenceConstraint),
502        #[prost(message, tag = "6")]
503        MutualExclusion(super::MutualExclusionConstraint),
504    }
505}
506#[derive(Clone, PartialEq, ::prost::Message)]
507pub struct AllowedWindowsConstraint {
508    #[prost(oneof = "allowed_windows_constraint::AllowedWindowsConstraint", tags = "1")]
509    pub allowed_windows_constraint: ::core::option::Option<
510        allowed_windows_constraint::AllowedWindowsConstraint,
511    >,
512}
513/// Nested message and enum types in `AllowedWindowsConstraint`.
514pub mod allowed_windows_constraint {
515    #[derive(Clone, PartialEq, ::prost::Oneof)]
516    pub enum AllowedWindowsConstraint {
517        #[prost(message, tag = "1")]
518        Explicit(super::ExplicitWindows),
519    }
520}
521#[derive(Clone, PartialEq, ::prost::Message)]
522pub struct ExplicitWindows {
523    #[prost(string, repeated, tag = "1")]
524    pub segment_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
525    #[prost(message, repeated, tag = "2")]
526    pub ranges: ::prost::alloc::vec::Vec<TimeRange>,
527}
528#[derive(Clone, Copy, PartialEq, ::prost::Message)]
529pub struct TimeRange {
530    #[prost(message, optional, tag = "1")]
531    pub start: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
532    #[prost(message, optional, tag = "2")]
533    pub end: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
534}
535#[derive(Clone, Copy, PartialEq, ::prost::Message)]
536pub struct CapacityConstraint {
537    #[prost(oneof = "capacity_constraint::CapacityConstraint", tags = "1")]
538    pub capacity_constraint: ::core::option::Option<
539        capacity_constraint::CapacityConstraint,
540    >,
541}
542/// Nested message and enum types in `CapacityConstraint`.
543pub mod capacity_constraint {
544    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
545    pub enum CapacityConstraint {
546        #[prost(message, tag = "1")]
547        Uniform(super::UniformCapacity),
548    }
549}
550#[derive(Clone, Copy, PartialEq, ::prost::Message)]
551pub struct UniformCapacity {
552    #[prost(int32, tag = "1")]
553    pub capacity: i32,
554}
555#[derive(Clone, Copy, PartialEq, ::prost::Message)]
556pub struct BufferConstraint {
557    #[prost(oneof = "buffer_constraint::BufferConstraint", tags = "1")]
558    pub buffer_constraint: ::core::option::Option<buffer_constraint::BufferConstraint>,
559}
560/// Nested message and enum types in `BufferConstraint`.
561pub mod buffer_constraint {
562    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
563    pub enum BufferConstraint {
564        #[prost(message, tag = "1")]
565        Fixed(super::FixedBuffer),
566    }
567}
568#[derive(Clone, Copy, PartialEq, ::prost::Message)]
569pub struct FixedBuffer {
570    #[prost(message, optional, tag = "1")]
571    pub min_gap: ::core::option::Option<MinuteDuration>,
572}
573#[derive(Clone, Copy, PartialEq, ::prost::Message)]
574pub struct UsageCeilingConstraint {
575    #[prost(oneof = "usage_ceiling_constraint::UsageCeilingConstraint", tags = "1")]
576    pub usage_ceiling_constraint: ::core::option::Option<
577        usage_ceiling_constraint::UsageCeilingConstraint,
578    >,
579}
580/// Nested message and enum types in `UsageCeilingConstraint`.
581pub mod usage_ceiling_constraint {
582    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
583    pub enum UsageCeilingConstraint {
584        #[prost(message, tag = "1")]
585        PerCalendarDay(super::DailyUsageCeiling),
586    }
587}
588#[derive(Clone, Copy, PartialEq, ::prost::Message)]
589pub struct DailyUsageCeiling {
590    #[prost(message, optional, tag = "1")]
591    pub max_duration: ::core::option::Option<MinuteDuration>,
592    #[prost(int32, optional, tag = "2")]
593    pub max_count: ::core::option::Option<i32>,
594}
595#[derive(Clone, PartialEq, ::prost::Message)]
596pub struct PrecedenceConstraint {
597    #[prost(oneof = "precedence_constraint::PrecedenceConstraint", tags = "1")]
598    pub precedence_constraint: ::core::option::Option<
599        precedence_constraint::PrecedenceConstraint,
600    >,
601}
602/// Nested message and enum types in `PrecedenceConstraint`.
603pub mod precedence_constraint {
604    #[derive(Clone, PartialEq, ::prost::Oneof)]
605    pub enum PrecedenceConstraint {
606        #[prost(message, tag = "1")]
607        After(super::ConstraintSubject),
608    }
609}
610#[derive(Clone, Copy, PartialEq, ::prost::Message)]
611pub struct MutualExclusionConstraint {
612    #[prost(
613        oneof = "mutual_exclusion_constraint::MutualExclusionConstraint",
614        tags = "1"
615    )]
616    pub mutual_exclusion_constraint: ::core::option::Option<
617        mutual_exclusion_constraint::MutualExclusionConstraint,
618    >,
619}
620/// Nested message and enum types in `MutualExclusionConstraint`.
621pub mod mutual_exclusion_constraint {
622    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
623    pub enum MutualExclusionConstraint {
624        #[prost(message, tag = "1")]
625        NoOverlap(super::NoOverlap),
626    }
627}
628#[derive(Clone, Copy, PartialEq, ::prost::Message)]
629pub struct NoOverlap {}
630#[derive(Clone, PartialEq, ::prost::Message)]
631pub struct CreatePlanRequest {
632    #[prost(message, optional, tag = "1")]
633    pub plan: ::core::option::Option<Plan>,
634    #[prost(string, tag = "2")]
635    pub message: ::prost::alloc::string::String,
636}
637#[derive(Clone, PartialEq, ::prost::Message)]
638pub struct CreatePlanResponse {
639    #[prost(message, optional, tag = "1")]
640    pub plan: ::core::option::Option<Plan>,
641}
642#[derive(Clone, PartialEq, ::prost::Message)]
643pub struct GetPlanRequest {
644    #[prost(string, tag = "1")]
645    pub plan_rid: ::prost::alloc::string::String,
646    #[prost(message, optional, tag = "2")]
647    pub at: ::core::option::Option<super::super::versioning::v1::BranchOrCommit>,
648}
649#[derive(Clone, PartialEq, ::prost::Message)]
650pub struct GetPlanResponse {
651    #[prost(message, optional, tag = "1")]
652    pub plan: ::core::option::Option<Plan>,
653}
654#[derive(Clone, PartialEq, ::prost::Message)]
655pub struct BatchGetPlansRequest {
656    #[prost(string, repeated, tag = "1")]
657    pub plan_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
658}
659#[derive(Clone, PartialEq, ::prost::Message)]
660pub struct BatchGetPlansResponse {
661    #[prost(message, repeated, tag = "1")]
662    pub plans: ::prost::alloc::vec::Vec<Plan>,
663}
664#[derive(Clone, PartialEq, ::prost::Message)]
665pub struct CreatePlanCommitRequest {
666    #[prost(string, tag = "1")]
667    pub plan_rid: ::prost::alloc::string::String,
668    #[prost(message, optional, tag = "2")]
669    pub content: ::core::option::Option<PlanContent>,
670    #[prost(string, optional, tag = "3")]
671    pub branch: ::core::option::Option<::prost::alloc::string::String>,
672    #[prost(string, tag = "4")]
673    pub message: ::prost::alloc::string::String,
674    #[prost(bool, tag = "5")]
675    pub is_working_state: bool,
676    #[prost(string, optional, tag = "6")]
677    pub expected_latest_commit: ::core::option::Option<::prost::alloc::string::String>,
678}
679#[derive(Clone, PartialEq, ::prost::Message)]
680pub struct CreatePlanCommitResponse {
681    #[prost(message, optional, tag = "1")]
682    pub plan: ::core::option::Option<Plan>,
683}
684#[derive(Clone, PartialEq, ::prost::Message)]
685pub struct UpdatePlanMetadataRequest {
686    #[prost(string, tag = "1")]
687    pub plan_rid: ::prost::alloc::string::String,
688    #[prost(string, optional, tag = "2")]
689    pub title: ::core::option::Option<::prost::alloc::string::String>,
690    #[prost(string, optional, tag = "3")]
691    pub description: ::core::option::Option<::prost::alloc::string::String>,
692    #[prost(message, optional, tag = "4")]
693    pub labels: ::core::option::Option<super::super::types::LabelUpdateWrapper>,
694    #[prost(message, optional, tag = "5")]
695    pub properties: ::core::option::Option<super::super::types::PropertyUpdateWrapper>,
696    #[prost(bool, optional, tag = "6")]
697    pub is_archived: ::core::option::Option<bool>,
698    #[prost(bool, optional, tag = "7")]
699    pub is_published: ::core::option::Option<bool>,
700}
701#[derive(Clone, PartialEq, ::prost::Message)]
702pub struct UpdatePlanMetadataResponse {
703    #[prost(message, optional, tag = "1")]
704    pub metadata: ::core::option::Option<PlanMetadata>,
705}
706#[derive(Clone, PartialEq, ::prost::Message)]
707pub struct SearchPlansQuery {
708    #[prost(
709        oneof = "search_plans_query::Query",
710        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14"
711    )]
712    pub query: ::core::option::Option<search_plans_query::Query>,
713}
714/// Nested message and enum types in `SearchPlansQuery`.
715pub mod search_plans_query {
716    #[derive(Clone, PartialEq, ::prost::Oneof)]
717    pub enum Query {
718        #[prost(message, tag = "1")]
719        And(super::SearchPlansQueryList),
720        #[prost(message, tag = "2")]
721        Or(super::SearchPlansQueryList),
722        #[prost(message, tag = "3")]
723        Not(::prost::alloc::boxed::Box<super::SearchPlansQuery>),
724        #[prost(string, tag = "4")]
725        ExactMatch(::prost::alloc::string::String),
726        #[prost(string, tag = "5")]
727        SearchText(::prost::alloc::string::String),
728        #[prost(message, tag = "6")]
729        Labels(super::super::super::types::LabelsFilter),
730        #[prost(message, tag = "7")]
731        Properties(super::super::super::types::PropertiesFilter),
732        #[prost(string, tag = "8")]
733        CreatedBy(::prost::alloc::string::String),
734        #[prost(bool, tag = "9")]
735        IsArchived(bool),
736        #[prost(bool, tag = "10")]
737        IsPublished(bool),
738        #[prost(bool, tag = "11")]
739        AuthorIsCurrentUser(bool),
740        #[prost(message, tag = "12")]
741        AuthorRids(super::UserRidList),
742        #[prost(string, tag = "13")]
743        WorkspaceRid(::prost::alloc::string::String),
744        #[prost(message, tag = "14")]
745        DateRangeOverlaps(super::PlanDateRangeFilter),
746    }
747}
748#[derive(Clone, Copy, PartialEq, ::prost::Message)]
749pub struct PlanDateRangeFilter {
750    #[prost(message, optional, tag = "1")]
751    pub start: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
752    #[prost(message, optional, tag = "2")]
753    pub end: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
754}
755#[derive(Clone, PartialEq, ::prost::Message)]
756pub struct SearchPlansQueryList {
757    #[prost(message, repeated, tag = "1")]
758    pub queries: ::prost::alloc::vec::Vec<SearchPlansQuery>,
759}
760#[derive(Clone, PartialEq, ::prost::Message)]
761pub struct UserRidList {
762    #[prost(string, repeated, tag = "1")]
763    pub user_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
764}
765#[derive(Clone, Copy, PartialEq, ::prost::Message)]
766pub struct PlanSortOptions {
767    #[prost(enumeration = "PlanSortField", tag = "1")]
768    pub field: i32,
769    #[prost(bool, tag = "2")]
770    pub is_descending: bool,
771}
772#[derive(Clone, PartialEq, ::prost::Message)]
773pub struct SearchPlansRequest {
774    #[prost(message, optional, tag = "1")]
775    pub query: ::core::option::Option<SearchPlansQuery>,
776    #[prost(message, optional, tag = "2")]
777    pub sort: ::core::option::Option<PlanSortOptions>,
778    #[prost(string, optional, tag = "3")]
779    pub page_token: ::core::option::Option<::prost::alloc::string::String>,
780    #[prost(int32, optional, tag = "4")]
781    pub page_size: ::core::option::Option<i32>,
782}
783#[derive(Clone, PartialEq, ::prost::Message)]
784pub struct SearchPlansResponse {
785    #[prost(message, repeated, tag = "1")]
786    pub results: ::prost::alloc::vec::Vec<PlanSummary>,
787    #[prost(string, optional, tag = "2")]
788    pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
789}
790#[derive(Clone, PartialEq, ::prost::Message)]
791pub struct ValidatePlanRequest {
792    #[prost(oneof = "validate_plan_request::Source", tags = "1, 2")]
793    pub source: ::core::option::Option<validate_plan_request::Source>,
794}
795/// Nested message and enum types in `ValidatePlanRequest`.
796pub mod validate_plan_request {
797    #[derive(Clone, PartialEq, ::prost::Oneof)]
798    pub enum Source {
799        #[prost(message, tag = "1")]
800        Plan(super::StoredPlanRevision),
801        #[prost(message, tag = "2")]
802        Content(super::PlanContent),
803    }
804}
805#[derive(Clone, PartialEq, ::prost::Message)]
806pub struct StoredPlanRevision {
807    #[prost(string, tag = "1")]
808    pub plan_rid: ::prost::alloc::string::String,
809    #[prost(message, optional, tag = "2")]
810    pub at: ::core::option::Option<super::super::versioning::v1::BranchOrCommit>,
811}
812#[derive(Clone, PartialEq, ::prost::Message)]
813pub struct ValidatePlanResponse {
814    #[prost(message, repeated, tag = "1")]
815    pub violations: ::prost::alloc::vec::Vec<PlanViolation>,
816    #[prost(bool, tag = "2")]
817    pub is_truncated: bool,
818    #[prost(message, optional, tag = "3")]
819    pub commit: ::core::option::Option<super::super::versioning::v1::Commit>,
820}
821#[derive(Clone, PartialEq, ::prost::Message)]
822pub struct PlanViolation {
823    #[prost(enumeration = "PlanViolationSeverity", tag = "1")]
824    pub severity: i32,
825    #[prost(string, tag = "2")]
826    pub code: ::prost::alloc::string::String,
827    #[prost(string, tag = "3")]
828    pub message: ::prost::alloc::string::String,
829    #[prost(message, repeated, tag = "4")]
830    pub subjects: ::prost::alloc::vec::Vec<PlanViolationSubject>,
831}
832#[derive(Clone, PartialEq, ::prost::Message)]
833pub struct PlanViolationSubject {
834    #[prost(enumeration = "PlanElementKind", tag = "1")]
835    pub kind: i32,
836    #[prost(string, tag = "2")]
837    pub id: ::prost::alloc::string::String,
838    #[prost(string, tag = "3")]
839    pub path: ::prost::alloc::string::String,
840}
841#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
842#[repr(i32)]
843pub enum PlanSortField {
844    Unspecified = 0,
845    Name = 1,
846    CreatedAt = 2,
847    EditedAt = 3,
848    StartDate = 4,
849    EndDate = 5,
850}
851impl PlanSortField {
852    /// String value of the enum field names used in the ProtoBuf definition.
853    ///
854    /// The values are not transformed in any way and thus are considered stable
855    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
856    pub fn as_str_name(&self) -> &'static str {
857        match self {
858            Self::Unspecified => "PLAN_SORT_FIELD_UNSPECIFIED",
859            Self::Name => "NAME",
860            Self::CreatedAt => "CREATED_AT",
861            Self::EditedAt => "EDITED_AT",
862            Self::StartDate => "START_DATE",
863            Self::EndDate => "END_DATE",
864        }
865    }
866    /// Creates an enum from field names used in the ProtoBuf definition.
867    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
868        match value {
869            "PLAN_SORT_FIELD_UNSPECIFIED" => Some(Self::Unspecified),
870            "NAME" => Some(Self::Name),
871            "CREATED_AT" => Some(Self::CreatedAt),
872            "EDITED_AT" => Some(Self::EditedAt),
873            "START_DATE" => Some(Self::StartDate),
874            "END_DATE" => Some(Self::EndDate),
875            _ => None,
876        }
877    }
878}
879#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
880#[repr(i32)]
881pub enum PlanViolationSeverity {
882    Unspecified = 0,
883    Error = 1,
884    Warning = 2,
885}
886impl PlanViolationSeverity {
887    /// String value of the enum field names used in the ProtoBuf definition.
888    ///
889    /// The values are not transformed in any way and thus are considered stable
890    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
891    pub fn as_str_name(&self) -> &'static str {
892        match self {
893            Self::Unspecified => "PLAN_VIOLATION_SEVERITY_UNSPECIFIED",
894            Self::Error => "PLAN_VIOLATION_SEVERITY_ERROR",
895            Self::Warning => "PLAN_VIOLATION_SEVERITY_WARNING",
896        }
897    }
898    /// Creates an enum from field names used in the ProtoBuf definition.
899    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
900        match value {
901            "PLAN_VIOLATION_SEVERITY_UNSPECIFIED" => Some(Self::Unspecified),
902            "PLAN_VIOLATION_SEVERITY_ERROR" => Some(Self::Error),
903            "PLAN_VIOLATION_SEVERITY_WARNING" => Some(Self::Warning),
904            _ => None,
905        }
906    }
907}
908#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
909#[repr(i32)]
910pub enum PlanElementKind {
911    Unspecified = 0,
912    Plan = 1,
913    Objective = 2,
914    Activity = 3,
915    Segment = 4,
916    Milestone = 5,
917    AssetGroup = 6,
918    Constraint = 7,
919}
920impl PlanElementKind {
921    /// String value of the enum field names used in the ProtoBuf definition.
922    ///
923    /// The values are not transformed in any way and thus are considered stable
924    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
925    pub fn as_str_name(&self) -> &'static str {
926        match self {
927            Self::Unspecified => "PLAN_ELEMENT_KIND_UNSPECIFIED",
928            Self::Plan => "PLAN_ELEMENT_KIND_PLAN",
929            Self::Objective => "PLAN_ELEMENT_KIND_OBJECTIVE",
930            Self::Activity => "PLAN_ELEMENT_KIND_ACTIVITY",
931            Self::Segment => "PLAN_ELEMENT_KIND_SEGMENT",
932            Self::Milestone => "PLAN_ELEMENT_KIND_MILESTONE",
933            Self::AssetGroup => "PLAN_ELEMENT_KIND_ASSET_GROUP",
934            Self::Constraint => "PLAN_ELEMENT_KIND_CONSTRAINT",
935        }
936    }
937    /// Creates an enum from field names used in the ProtoBuf definition.
938    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
939        match value {
940            "PLAN_ELEMENT_KIND_UNSPECIFIED" => Some(Self::Unspecified),
941            "PLAN_ELEMENT_KIND_PLAN" => Some(Self::Plan),
942            "PLAN_ELEMENT_KIND_OBJECTIVE" => Some(Self::Objective),
943            "PLAN_ELEMENT_KIND_ACTIVITY" => Some(Self::Activity),
944            "PLAN_ELEMENT_KIND_SEGMENT" => Some(Self::Segment),
945            "PLAN_ELEMENT_KIND_MILESTONE" => Some(Self::Milestone),
946            "PLAN_ELEMENT_KIND_ASSET_GROUP" => Some(Self::AssetGroup),
947            "PLAN_ELEMENT_KIND_CONSTRAINT" => Some(Self::Constraint),
948            _ => None,
949        }
950    }
951}
952#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
953#[repr(i32)]
954pub enum PlanError {
955    PlanNotFound = 0,
956    BranchOrCommitNotFound = 1,
957    CommitConflict = 2,
958    PlanArchived = 3,
959}
960impl PlanError {
961    /// String value of the enum field names used in the ProtoBuf definition.
962    ///
963    /// The values are not transformed in any way and thus are considered stable
964    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
965    pub fn as_str_name(&self) -> &'static str {
966        match self {
967            Self::PlanNotFound => "PLAN_ERROR_PLAN_NOT_FOUND",
968            Self::BranchOrCommitNotFound => "PLAN_ERROR_BRANCH_OR_COMMIT_NOT_FOUND",
969            Self::CommitConflict => "PLAN_ERROR_COMMIT_CONFLICT",
970            Self::PlanArchived => "PLAN_ERROR_PLAN_ARCHIVED",
971        }
972    }
973    /// Creates an enum from field names used in the ProtoBuf definition.
974    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
975        match value {
976            "PLAN_ERROR_PLAN_NOT_FOUND" => Some(Self::PlanNotFound),
977            "PLAN_ERROR_BRANCH_OR_COMMIT_NOT_FOUND" => Some(Self::BranchOrCommitNotFound),
978            "PLAN_ERROR_COMMIT_CONFLICT" => Some(Self::CommitConflict),
979            "PLAN_ERROR_PLAN_ARCHIVED" => Some(Self::PlanArchived),
980            _ => None,
981        }
982    }
983}
984/// Generated client implementations.
985pub mod plan_service_client {
986    #![allow(
987        unused_variables,
988        dead_code,
989        missing_docs,
990        clippy::wildcard_imports,
991        clippy::let_unit_value,
992    )]
993    use tonic::codegen::*;
994    use tonic::codegen::http::Uri;
995    #[derive(Debug, Clone)]
996    pub struct PlanServiceClient<T> {
997        inner: tonic::client::Grpc<T>,
998    }
999    impl PlanServiceClient<tonic::transport::Channel> {
1000        /// Attempt to create a new client by connecting to a given endpoint.
1001        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1002        where
1003            D: TryInto<tonic::transport::Endpoint>,
1004            D::Error: Into<StdError>,
1005        {
1006            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1007            Ok(Self::new(conn))
1008        }
1009    }
1010    impl<T> PlanServiceClient<T>
1011    where
1012        T: tonic::client::GrpcService<tonic::body::Body>,
1013        T::Error: Into<StdError>,
1014        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1015        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1016    {
1017        pub fn new(inner: T) -> Self {
1018            let inner = tonic::client::Grpc::new(inner);
1019            Self { inner }
1020        }
1021        pub fn with_origin(inner: T, origin: Uri) -> Self {
1022            let inner = tonic::client::Grpc::with_origin(inner, origin);
1023            Self { inner }
1024        }
1025        pub fn with_interceptor<F>(
1026            inner: T,
1027            interceptor: F,
1028        ) -> PlanServiceClient<InterceptedService<T, F>>
1029        where
1030            F: tonic::service::Interceptor,
1031            T::ResponseBody: Default,
1032            T: tonic::codegen::Service<
1033                http::Request<tonic::body::Body>,
1034                Response = http::Response<
1035                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1036                >,
1037            >,
1038            <T as tonic::codegen::Service<
1039                http::Request<tonic::body::Body>,
1040            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1041        {
1042            PlanServiceClient::new(InterceptedService::new(inner, interceptor))
1043        }
1044        /// Compress requests with the given encoding.
1045        ///
1046        /// This requires the server to support it otherwise it might respond with an
1047        /// error.
1048        #[must_use]
1049        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1050            self.inner = self.inner.send_compressed(encoding);
1051            self
1052        }
1053        /// Enable decompressing responses.
1054        #[must_use]
1055        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1056            self.inner = self.inner.accept_compressed(encoding);
1057            self
1058        }
1059        /// Limits the maximum size of a decoded message.
1060        ///
1061        /// Default: `4MB`
1062        #[must_use]
1063        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1064            self.inner = self.inner.max_decoding_message_size(limit);
1065            self
1066        }
1067        /// Limits the maximum size of an encoded message.
1068        ///
1069        /// Default: `usize::MAX`
1070        #[must_use]
1071        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1072            self.inner = self.inner.max_encoding_message_size(limit);
1073            self
1074        }
1075        pub async fn create_plan(
1076            &mut self,
1077            request: impl tonic::IntoRequest<super::CreatePlanRequest>,
1078        ) -> std::result::Result<
1079            tonic::Response<super::CreatePlanResponse>,
1080            tonic::Status,
1081        > {
1082            self.inner
1083                .ready()
1084                .await
1085                .map_err(|e| {
1086                    tonic::Status::unknown(
1087                        format!("Service was not ready: {}", e.into()),
1088                    )
1089                })?;
1090            let codec = tonic::codec::ProstCodec::default();
1091            let path = http::uri::PathAndQuery::from_static(
1092                "/nominal.plan.v1.PlanService/CreatePlan",
1093            );
1094            let mut req = request.into_request();
1095            req.extensions_mut()
1096                .insert(GrpcMethod::new("nominal.plan.v1.PlanService", "CreatePlan"));
1097            self.inner.unary(req, path, codec).await
1098        }
1099        pub async fn get_plan(
1100            &mut self,
1101            request: impl tonic::IntoRequest<super::GetPlanRequest>,
1102        ) -> std::result::Result<
1103            tonic::Response<super::GetPlanResponse>,
1104            tonic::Status,
1105        > {
1106            self.inner
1107                .ready()
1108                .await
1109                .map_err(|e| {
1110                    tonic::Status::unknown(
1111                        format!("Service was not ready: {}", e.into()),
1112                    )
1113                })?;
1114            let codec = tonic::codec::ProstCodec::default();
1115            let path = http::uri::PathAndQuery::from_static(
1116                "/nominal.plan.v1.PlanService/GetPlan",
1117            );
1118            let mut req = request.into_request();
1119            req.extensions_mut()
1120                .insert(GrpcMethod::new("nominal.plan.v1.PlanService", "GetPlan"));
1121            self.inner.unary(req, path, codec).await
1122        }
1123        pub async fn batch_get_plans(
1124            &mut self,
1125            request: impl tonic::IntoRequest<super::BatchGetPlansRequest>,
1126        ) -> std::result::Result<
1127            tonic::Response<super::BatchGetPlansResponse>,
1128            tonic::Status,
1129        > {
1130            self.inner
1131                .ready()
1132                .await
1133                .map_err(|e| {
1134                    tonic::Status::unknown(
1135                        format!("Service was not ready: {}", e.into()),
1136                    )
1137                })?;
1138            let codec = tonic::codec::ProstCodec::default();
1139            let path = http::uri::PathAndQuery::from_static(
1140                "/nominal.plan.v1.PlanService/BatchGetPlans",
1141            );
1142            let mut req = request.into_request();
1143            req.extensions_mut()
1144                .insert(GrpcMethod::new("nominal.plan.v1.PlanService", "BatchGetPlans"));
1145            self.inner.unary(req, path, codec).await
1146        }
1147        pub async fn create_plan_commit(
1148            &mut self,
1149            request: impl tonic::IntoRequest<super::CreatePlanCommitRequest>,
1150        ) -> std::result::Result<
1151            tonic::Response<super::CreatePlanCommitResponse>,
1152            tonic::Status,
1153        > {
1154            self.inner
1155                .ready()
1156                .await
1157                .map_err(|e| {
1158                    tonic::Status::unknown(
1159                        format!("Service was not ready: {}", e.into()),
1160                    )
1161                })?;
1162            let codec = tonic::codec::ProstCodec::default();
1163            let path = http::uri::PathAndQuery::from_static(
1164                "/nominal.plan.v1.PlanService/CreatePlanCommit",
1165            );
1166            let mut req = request.into_request();
1167            req.extensions_mut()
1168                .insert(
1169                    GrpcMethod::new("nominal.plan.v1.PlanService", "CreatePlanCommit"),
1170                );
1171            self.inner.unary(req, path, codec).await
1172        }
1173        pub async fn update_plan_metadata(
1174            &mut self,
1175            request: impl tonic::IntoRequest<super::UpdatePlanMetadataRequest>,
1176        ) -> std::result::Result<
1177            tonic::Response<super::UpdatePlanMetadataResponse>,
1178            tonic::Status,
1179        > {
1180            self.inner
1181                .ready()
1182                .await
1183                .map_err(|e| {
1184                    tonic::Status::unknown(
1185                        format!("Service was not ready: {}", e.into()),
1186                    )
1187                })?;
1188            let codec = tonic::codec::ProstCodec::default();
1189            let path = http::uri::PathAndQuery::from_static(
1190                "/nominal.plan.v1.PlanService/UpdatePlanMetadata",
1191            );
1192            let mut req = request.into_request();
1193            req.extensions_mut()
1194                .insert(
1195                    GrpcMethod::new("nominal.plan.v1.PlanService", "UpdatePlanMetadata"),
1196                );
1197            self.inner.unary(req, path, codec).await
1198        }
1199        pub async fn search_plans(
1200            &mut self,
1201            request: impl tonic::IntoRequest<super::SearchPlansRequest>,
1202        ) -> std::result::Result<
1203            tonic::Response<super::SearchPlansResponse>,
1204            tonic::Status,
1205        > {
1206            self.inner
1207                .ready()
1208                .await
1209                .map_err(|e| {
1210                    tonic::Status::unknown(
1211                        format!("Service was not ready: {}", e.into()),
1212                    )
1213                })?;
1214            let codec = tonic::codec::ProstCodec::default();
1215            let path = http::uri::PathAndQuery::from_static(
1216                "/nominal.plan.v1.PlanService/SearchPlans",
1217            );
1218            let mut req = request.into_request();
1219            req.extensions_mut()
1220                .insert(GrpcMethod::new("nominal.plan.v1.PlanService", "SearchPlans"));
1221            self.inner.unary(req, path, codec).await
1222        }
1223        pub async fn validate_plan(
1224            &mut self,
1225            request: impl tonic::IntoRequest<super::ValidatePlanRequest>,
1226        ) -> std::result::Result<
1227            tonic::Response<super::ValidatePlanResponse>,
1228            tonic::Status,
1229        > {
1230            self.inner
1231                .ready()
1232                .await
1233                .map_err(|e| {
1234                    tonic::Status::unknown(
1235                        format!("Service was not ready: {}", e.into()),
1236                    )
1237                })?;
1238            let codec = tonic::codec::ProstCodec::default();
1239            let path = http::uri::PathAndQuery::from_static(
1240                "/nominal.plan.v1.PlanService/ValidatePlan",
1241            );
1242            let mut req = request.into_request();
1243            req.extensions_mut()
1244                .insert(GrpcMethod::new("nominal.plan.v1.PlanService", "ValidatePlan"));
1245            self.inner.unary(req, path, codec).await
1246        }
1247    }
1248}