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 }
57 }
58}
59
60impl From<RemoveMode> for p::RemoveMode {
61 fn from(m: RemoveMode) -> Self {
62 match m {
63 RemoveMode::Preserve => p::RemoveMode::Preserve,
64 RemoveMode::Purge => p::RemoveMode::Purge,
65 }
66 }
67}
68
69impl From<RemoveRequest> for p::RemoveRequest {
70 fn from(r: RemoveRequest) -> Self {
71 p::RemoveRequest {
72 service: r.service,
73 mode: r.mode.into(),
74 }
75 }
76}
77
78impl From<Lifecycle> for p::Lifecycle {
79 fn from(l: Lifecycle) -> Self {
80 match l {
81 Lifecycle::Start => p::Lifecycle::Start,
82 Lifecycle::Stop => p::Lifecycle::Stop,
83 }
84 }
85}
86
87impl From<LifecycleRequest> for p::LifecycleRequest {
88 fn from(r: LifecycleRequest) -> Self {
89 p::LifecycleRequest {
90 service: r.service,
91 action: r.action.into(),
92 }
93 }
94}
95
96impl From<UpgradeRequest> for p::UpgradeRequest {
97 fn from(r: UpgradeRequest) -> Self {
98 p::UpgradeRequest {
99 service: r.service,
100 force: r.force,
101 }
102 }
103}
104
105impl From<ExposureChange> for p::ExposureChange {
106 fn from(e: ExposureChange) -> Self {
107 match e {
108 ExposureChange::Url(u) => p::ExposureChange::Url(u),
109 ExposureChange::Tailscale(u) => p::ExposureChange::Tailscale(u),
110 ExposureChange::Loopback => p::ExposureChange::Loopback,
111 }
112 }
113}
114
115impl From<Overrides> for p::Overrides {
116 fn from(o: Overrides) -> Self {
117 p::Overrides {
118 exposure: o.exposure.map(Into::into),
119 smtp: o.smtp,
120 backup: o.backup,
121 auth: o.auth,
122 enable_groups: o.enable_groups,
123 disable_groups: o.disable_groups,
124 choose: o.choose,
125 env_overrides: o.env_overrides,
126 reassert_auth: o.reassert_auth,
127 }
128 }
129}
130
131impl From<ConfigureRequest> for p::ConfigureRequest {
132 fn from(r: ConfigureRequest) -> Self {
133 p::ConfigureRequest {
134 service: r.service,
135 changes: r.changes.into(),
136 }
137 }
138}