Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SCIM Support #16

Merged
merged 2 commits into from
Mar 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "stytch"
version = "2.0.0"
version = "2.1.0"
edition = "2021"
license = "MIT"
description = "Stytch Rust client"
Expand Down
3 changes: 3 additions & 0 deletions src/b2b/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ use crate::b2b::otp::OTPs;
use crate::b2b::passwords::Passwords;
use crate::b2b::rbac::RBAC;
use crate::b2b::recovery_codes::RecoveryCodes;
use crate::b2b::scim::SCIM;
use crate::b2b::sessions::Sessions;
use crate::b2b::sso::SSO;
use crate::b2b::totps::TOTPs;
Expand All @@ -27,6 +28,7 @@ pub struct Client {
pub passwords: Passwords,
pub rbac: RBAC,
pub recovery_codes: RecoveryCodes,
pub scim: SCIM,
pub sso: SSO,
pub sessions: Sessions,
pub totps: TOTPs,
Expand All @@ -50,6 +52,7 @@ impl Client {
passwords: Passwords::new(http_client.clone()),
rbac: RBAC::new(http_client.clone()),
recovery_codes: RecoveryCodes::new(http_client.clone()),
scim: SCIM::new(http_client.clone()),
sso: SSO::new(http_client.clone()),
sessions: Sessions::new(http_client.clone()),
totps: TOTPs::new(http_client.clone()),
Expand Down
2 changes: 2 additions & 0 deletions src/b2b/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ pub mod passwords_existing_password;
pub mod passwords_session;
pub mod rbac;
pub mod recovery_codes;
pub mod scim;
pub mod scim_connections;
pub mod sessions;
pub mod sso;
pub mod sso_oidc;
Expand Down
68 changes: 68 additions & 0 deletions src/b2b/scim.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// !!!
// WARNING: This file is autogenerated
// Only modify code within MANUAL() sections
// or your changes may be overwritten later!
// !!!

use crate::b2b::scim_connections::Connections;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct SCIMConnection {
pub organization_id: String,
pub connection_id: String,
pub status: String,
pub display_name: String,
pub identity_provider: String,
pub base_url: String,
pub bearer_token_last_four: String,
pub scim_group_implicit_role_assignments: std::vec::Vec<SCIMGroupImplicitRoleAssignments>,
pub bearer_token_expires_at: std::option::Option<chrono::DateTime<chrono::Utc>>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct SCIMConnectionWithNextToken {
pub organization_id: String,
pub connection_id: String,
pub status: String,
pub display_name: String,
pub base_url: String,
pub identity_provider: String,
pub bearer_token_last_four: String,
pub next_bearer_token: String,
pub scim_group_implicit_role_assignments: std::vec::Vec<SCIMGroupImplicitRoleAssignments>,
pub bearer_token_expires_at: std::option::Option<chrono::DateTime<chrono::Utc>>,
pub next_bearer_token_expires_at: std::option::Option<chrono::DateTime<chrono::Utc>>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct SCIMConnectionWithToken {
pub organization_id: String,
pub connection_id: String,
pub status: String,
pub display_name: String,
pub identity_provider: String,
pub base_url: String,
pub bearer_token: String,
pub scim_group_implicit_role_assignments: std::vec::Vec<SCIMGroupImplicitRoleAssignments>,
pub bearer_token_expires_at: std::option::Option<chrono::DateTime<chrono::Utc>>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct SCIMGroupImplicitRoleAssignments {
pub role_id: String,
pub group_id: String,
pub group_name: String,
}

pub struct SCIM {
pub connections: Connections,
}

impl SCIM {
pub fn new(http_client: crate::client::Client) -> Self {
Self {
connections: Connections::new(http_client.clone()),
}
}
}
Loading
Loading