#![forbid(unsafe_code)]
pub const CORE_USER_SCHEMA: &str = "urn:ietf:params:scim:schemas:core:2.0:User";
pub const CORE_GROUP_SCHEMA: &str = "urn:ietf:params:scim:schemas:core:2.0:Group";
pub const ENTERPRISE_USER_SCHEMA: &str =
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User";
#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
#[cfg_attr(feature = "serde", serde(rename_all = "lowercase"))]
pub enum ResourceKind {
User,
Group,
}
impl ResourceKind {
#[must_use]
pub const fn schema_urn(self) -> &'static str {
match self {
Self::User => CORE_USER_SCHEMA,
Self::Group => CORE_GROUP_SCHEMA,
}
}
#[must_use]
pub const fn endpoint(self) -> &'static str {
match self {
Self::User => "/Users",
Self::Group => "/Groups",
}
}
}