openstack_keystone_core/federation/
backend.rs1use async_trait::async_trait;
16
17use crate::federation::FederationProviderError;
18use crate::federation::types::*;
19use crate::keystone::ServiceState;
20
21#[cfg_attr(test, mockall::automock)]
23#[async_trait]
24pub trait FederationBackend: Send + Sync {
25 async fn cleanup(&self, state: &ServiceState) -> Result<(), FederationProviderError>;
27
28 async fn create_auth_state(
30 &self,
31 state: &ServiceState,
32 auth_state: AuthState,
33 ) -> Result<AuthState, FederationProviderError>;
34
35 async fn create_identity_provider(
37 &self,
38 state: &ServiceState,
39 idp: IdentityProviderCreate,
40 ) -> Result<IdentityProvider, FederationProviderError>;
41
42 async fn create_mapping(
44 &self,
45 state: &ServiceState,
46 idp: Mapping,
47 ) -> Result<Mapping, FederationProviderError>;
48
49 async fn delete_auth_state<'a>(
51 &self,
52 state: &ServiceState,
53 id: &'a str,
54 ) -> Result<(), FederationProviderError>;
55
56 async fn delete_identity_provider<'a>(
58 &self,
59 state: &ServiceState,
60 id: &'a str,
61 ) -> Result<(), FederationProviderError>;
62
63 async fn delete_mapping<'a>(
65 &self,
66 state: &ServiceState,
67 id: &'a str,
68 ) -> Result<(), FederationProviderError>;
69
70 async fn get_auth_state<'a>(
72 &self,
73 state: &ServiceState,
74 id: &'a str,
75 ) -> Result<Option<AuthState>, FederationProviderError>;
76
77 async fn get_identity_provider<'a>(
79 &self,
80 state: &ServiceState,
81 id: &'a str,
82 ) -> Result<Option<IdentityProvider>, FederationProviderError>;
83
84 async fn get_mapping<'a>(
86 &self,
87 state: &ServiceState,
88 id: &'a str,
89 ) -> Result<Option<Mapping>, FederationProviderError>;
90
91 async fn list_identity_providers(
93 &self,
94 state: &ServiceState,
95 params: &IdentityProviderListParameters,
96 ) -> Result<Vec<IdentityProvider>, FederationProviderError>;
97
98 async fn list_mappings(
100 &self,
101 state: &ServiceState,
102 params: &MappingListParameters,
103 ) -> Result<Vec<Mapping>, FederationProviderError>;
104
105 async fn update_identity_provider<'a>(
107 &self,
108 state: &ServiceState,
109 id: &'a str,
110 idp: IdentityProviderUpdate,
111 ) -> Result<IdentityProvider, FederationProviderError>;
112
113 async fn update_mapping<'a>(
115 &self,
116 state: &ServiceState,
117 id: &'a str,
118 idp: MappingUpdate,
119 ) -> Result<Mapping, FederationProviderError>;
120}