1use ryra_protocol as p;
7
8use crate::Lifecycle;
9use crate::RemoveMode;
10use crate::configure::{ExposureChange, Overrides};
11use crate::ops::{
12 AddRequest, AuthRequested, ConfigureRequest, ExposureRequest, LifecycleRequest, RemoveRequest,
13 UpgradeRequest,
14};
15use crate::registry::service_def::AuthKind;
16
17impl From<ExposureRequest> for p::ExposureRequest {
18 fn from(e: ExposureRequest) -> Self {
19 match e {
20 ExposureRequest::Loopback => p::ExposureRequest::Loopback,
21 ExposureRequest::Url(u) => p::ExposureRequest::Url(u),
22 ExposureRequest::Tailscale(u) => p::ExposureRequest::Tailscale(u),
23 }
24 }
25}
26
27impl From<AuthKind> for p::AuthKind {
28 fn from(k: AuthKind) -> Self {
29 match k {
30 AuthKind::Oidc => p::AuthKind::Oidc,
31 }
32 }
33}
34
35impl From<AuthRequested> for p::AuthRequested {
36 fn from(a: AuthRequested) -> Self {
37 match a {
38 AuthRequested::No => p::AuthRequested::No,
39 AuthRequested::Yes => p::AuthRequested::Yes,
40 AuthRequested::Kind(k) => p::AuthRequested::Kind(k.into()),
41 }
42 }
43}
44
45impl From<AddRequest> for p::AddRequest {
46 fn from(r: AddRequest) -> Self {
47 p::AddRequest {
48 service: r.service,
49 exposure: r.exposure.into(),
50 auth: r.auth.into(),
51 smtp: r.smtp,
52 backup: r.backup,
53 env: r.env,
54 enable_groups: r.enable_groups,
55 choose: r.choose,
56 allow_unset_required: r.allow_unset_required,
57 }
58 }
59}
60
61impl From<RemoveMode> for p::RemoveMode {
62 fn from(m: RemoveMode) -> Self {
63 match m {
64 RemoveMode::Preserve => p::RemoveMode::Preserve,
65 RemoveMode::Purge => p::RemoveMode::Purge,
66 }
67 }
68}
69
70impl From<RemoveRequest> for p::RemoveRequest {
71 fn from(r: RemoveRequest) -> Self {
72 p::RemoveRequest {
73 service: r.service,
74 mode: r.mode.into(),
75 }
76 }
77}
78
79impl From<Lifecycle> for p::Lifecycle {
80 fn from(l: Lifecycle) -> Self {
81 match l {
82 Lifecycle::Start => p::Lifecycle::Start,
83 Lifecycle::Stop => p::Lifecycle::Stop,
84 }
85 }
86}
87
88impl From<LifecycleRequest> for p::LifecycleRequest {
89 fn from(r: LifecycleRequest) -> Self {
90 p::LifecycleRequest {
91 service: r.service,
92 action: r.action.into(),
93 }
94 }
95}
96
97impl From<UpgradeRequest> for p::UpgradeRequest {
98 fn from(r: UpgradeRequest) -> Self {
99 p::UpgradeRequest {
100 service: r.service,
101 force: r.force,
102 }
103 }
104}
105
106impl From<ExposureChange> for p::ExposureChange {
107 fn from(e: ExposureChange) -> Self {
108 match e {
109 ExposureChange::Url(u) => p::ExposureChange::Url(u),
110 ExposureChange::Tailscale(u) => p::ExposureChange::Tailscale(u),
111 ExposureChange::Loopback => p::ExposureChange::Loopback,
112 }
113 }
114}
115
116impl From<Overrides> for p::Overrides {
117 fn from(o: Overrides) -> Self {
118 p::Overrides {
119 exposure: o.exposure.map(Into::into),
120 smtp: o.smtp,
121 backup: o.backup,
122 auth: o.auth,
123 enable_groups: o.enable_groups,
124 disable_groups: o.disable_groups,
125 choose: o.choose,
126 env_overrides: o.env_overrides,
127 reassert_auth: o.reassert_auth,
128 }
129 }
130}
131
132impl From<ConfigureRequest> for p::ConfigureRequest {
133 fn from(r: ConfigureRequest) -> Self {
134 p::ConfigureRequest {
135 service: r.service,
136 changes: r.changes.into(),
137 }
138 }
139}