1use crate::ManagementOperation;
2
3pub const PROVIDER_LIST_TARGET: &str = "/messaging/provider/list";
4pub const PROVIDER_ACCOUNT_LIST_TARGET: &str = "/messaging/provider-account/list";
5pub const PROVIDER_ACCOUNT_UPDATE_TARGET: &str = "/messaging/provider-account/update";
6pub const PROVIDER_ACCOUNT_DELETE_TARGET: &str = "/messaging/provider-account/delete";
7pub const PROVIDER_ACCOUNT_TEST_TARGET: &str = "/messaging/provider-account/test";
8pub const PROVIDER_ACCOUNT_STATUS_TARGET: &str = "/messaging/provider-account/status";
9pub const SHARED_ACCOUNT_GRANT_CREATE_TARGET: &str = "/messaging/shared-account-grant/create";
10pub const SHARED_ACCOUNT_GRANT_DELETE_TARGET: &str = "/messaging/shared-account-grant/delete";
11pub const SHARED_ACCOUNT_GRANT_LIST_TARGET: &str = "/messaging/shared-account-grant/list";
12pub const ROUTE_LIST_TARGET: &str = "/messaging/route/list";
13pub const ROUTE_UPDATE_TARGET: &str = "/messaging/route/update";
14pub const ROUTE_DELETE_TARGET: &str = "/messaging/route/delete";
15pub const SETUP_OPTIONS_TARGET: &str = "/messaging/setup/options";
16pub const SETUP_START_TARGET: &str = "/messaging/setup/start";
17pub const SETUP_STATUS_TARGET: &str = "/messaging/setup/status";
18pub const SURFACE_LIST_TARGET: &str = "/messaging/surface/list";
19pub const SURFACE_DISMISS_TARGET: &str = "/messaging/surface/dismiss";
20pub const SURFACE_BIND_CODE_CREATE_TARGET: &str = "/messaging/surface/bind-code/create";
21pub const ACTOR_LINK_CODE_CREATE_TARGET: &str = "/messaging/actor/link-code/create";
22pub const ACTOR_LINK_CLAIM_STATUS_TARGET: &str = "/messaging/actor/link-claim/status";
23pub const ACTOR_LINK_CLAIM_CONFIRM_TARGET: &str = "/messaging/actor/link-claim/confirm";
24pub const ACTOR_LINK_CLAIM_EVENT_TARGET: &str = "/messaging/actor/link-claim/event";
25pub const ACTOR_LINK_LIST_TARGET: &str = "/messaging/actor/link/list";
26pub const ACTOR_LINK_DELETE_TARGET: &str = "/messaging/actor/link/delete";
27
28pub const MANAGEMENT_TARGETS: &[&str] = &[
29 PROVIDER_LIST_TARGET,
30 PROVIDER_ACCOUNT_LIST_TARGET,
31 PROVIDER_ACCOUNT_UPDATE_TARGET,
32 PROVIDER_ACCOUNT_DELETE_TARGET,
33 PROVIDER_ACCOUNT_TEST_TARGET,
34 PROVIDER_ACCOUNT_STATUS_TARGET,
35 SHARED_ACCOUNT_GRANT_CREATE_TARGET,
36 SHARED_ACCOUNT_GRANT_DELETE_TARGET,
37 SHARED_ACCOUNT_GRANT_LIST_TARGET,
38 ROUTE_LIST_TARGET,
39 ROUTE_UPDATE_TARGET,
40 ROUTE_DELETE_TARGET,
41 SETUP_OPTIONS_TARGET,
42 SETUP_START_TARGET,
43 SETUP_STATUS_TARGET,
44 SURFACE_LIST_TARGET,
45 SURFACE_DISMISS_TARGET,
46 SURFACE_BIND_CODE_CREATE_TARGET,
47 ACTOR_LINK_CODE_CREATE_TARGET,
48 ACTOR_LINK_CLAIM_STATUS_TARGET,
49 ACTOR_LINK_CLAIM_CONFIRM_TARGET,
50 ACTOR_LINK_LIST_TARGET,
51 ACTOR_LINK_DELETE_TARGET,
52];
53
54pub const EVENT_TARGETS: &[&str] = &[ACTOR_LINK_CLAIM_EVENT_TARGET];
55
56pub fn is_management_target(target: &str) -> bool {
57 MANAGEMENT_TARGETS.contains(&target)
58}
59
60pub fn required_management_operation(target: &str) -> Option<ManagementOperation> {
63 use ManagementOperation::*;
64 Some(match target {
65 PROVIDER_ACCOUNT_LIST_TARGET => ProviderAccountList,
66 PROVIDER_ACCOUNT_UPDATE_TARGET => ProviderAccountUpdate,
67 PROVIDER_ACCOUNT_DELETE_TARGET => ProviderAccountDelete,
68 PROVIDER_ACCOUNT_TEST_TARGET => ProviderAccountTest,
69 PROVIDER_ACCOUNT_STATUS_TARGET => ProviderAccountStatus,
70 SHARED_ACCOUNT_GRANT_CREATE_TARGET => SharedAccountGrantCreate,
71 SHARED_ACCOUNT_GRANT_DELETE_TARGET => SharedAccountGrantDelete,
72 SHARED_ACCOUNT_GRANT_LIST_TARGET => SharedAccountGrantList,
73 ROUTE_LIST_TARGET => RouteList,
74 ROUTE_UPDATE_TARGET => RouteUpdate,
75 ROUTE_DELETE_TARGET => RouteDelete,
76 SETUP_OPTIONS_TARGET => SetupOptions,
77 SETUP_START_TARGET => SetupStart,
78 SETUP_STATUS_TARGET => SetupStatus,
79 SURFACE_LIST_TARGET => SurfaceList,
80 SURFACE_DISMISS_TARGET => SurfaceDismiss,
81 SURFACE_BIND_CODE_CREATE_TARGET => SurfaceBindCodeCreate,
82 ACTOR_LINK_CODE_CREATE_TARGET => ActorLinkCodeCreate,
83 ACTOR_LINK_CLAIM_STATUS_TARGET => ActorLinkClaimStatus,
84 ACTOR_LINK_CLAIM_CONFIRM_TARGET => ActorLinkClaimConfirm,
85 ACTOR_LINK_LIST_TARGET => ActorLinkList,
86 ACTOR_LINK_DELETE_TARGET => ActorLinkDelete,
87 PROVIDER_LIST_TARGET | ACTOR_LINK_CLAIM_EVENT_TARGET => return None,
88 _ => return None,
89 })
90}