scim_v2

Crates.ioscim_v2
lib.rsscim_v2
version0.2.3
sourcesrc
created_at2024-03-21 09:27:29.184162
updated_at2024-03-26 09:55:41.255414
descriptionA crate that provides utilities for working with the System for Cross-domain Identity Management (SCIM) version 2.0 protocol. (rfc7642, rfc7643, rfc7644)
homepage
repositoryhttps://github.com/ShiftControl-io/scim-v2-rust
max_upload_size
id1181417
size167,619
Dan Gericke (shiftcontrol-dan)

documentation

https://docs.rs/scim_v2

README

SCIM v2

`scim_v2` is a Rust crate that provides utilities for working with the System for Cross-domain Identity Management ( SCIM) version 2.0 protocol.

Description

This crate provides functionalities for:

  • Models for various SCIM resources such as `User`, `Group`, `ResourceType`, `ServiceProviderConfig`, and ` EnterpriseUser`.
  • Functions for validating these resources.
  • Functions for serializing these resources to JSON.
  • Functions for deserializing these resources from JSON.

Installation

To use `scim_v2` in your project, add the following to your `Cargo.toml`:

[dependencies]
scim_v2 = "0.2.3"

Then run `cargo build` to download and compile the `scim_v2` crate and all its dependencies.

Usage

Here are some examples of how you can use this crate:

Validating a User

use scim_v2::models::user::User;

let user = User {
user_name: "jdoe@example.com".to_string(),
// other fields...
..Default::default()
};

match user.validate() {
Ok(_) => println!("User is valid."),
Err(e) => println!("User is invalid: {}", e),
}

Serializing a User to JSON

use scim_v2::models::user::User;

let user = User {
schemas: vec!["urn:ietf:params:scim:schemas:core:2.0:User".to_string()],
user_name: "jdoe@example.com".to_string(),
// Initialize other fields as necessary...
..Default::default ()
};

match user.serialize() {
Ok(json) => println ! ("Serialized User: {}", json),
Err(e) => println !("Serialization error: {}", e),
}

Deserializing a User from JSON

use scim_v2::models::user::User;

let user_json = r#"{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "jdoe@example.com"}"#;
match User::try_from(user_json) {
Ok(user) => println!("Successfully converted JSON to User: {:?}", user),
Err(e) => println!("Error converting from JSON to User: {}", e),
}

You can also use a built-in deserialize function if you’d prefer.

use scim_v2::models::user::User;

let user_json = r#"{"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "jdoe@example.com"}"#;
match User::deserialize(user_json) {
Ok(user) => println ! ("Deserialized User: {:?}", user),
Err(e) => println !("Deserialization error: {}", e),
}

For more examples and usage details, refer to the documentation of each function and struct.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Commit count: 37

cargo fmt