class StytchB2B::Client

def initialize(project_id:, secret:, env: nil, fraud_env: nil, &block)

def initialize(project_id:, secret:, env: nil, fraud_env: nil, &block)
  @api_host = api_host(env, project_id)
  @fraud_api_host = fraud_api_host(fraud_env)
  @project_id = project_id
  @secret = secret
  @is_b2b_client = true
  create_connection(&block)
  rbac = StytchB2B::RBAC.new(@connection)
  @policy_cache = StytchB2B::PolicyCache.new(rbac_client: rbac)
  @discovery = StytchB2B::Discovery.new(@connection)
  @fraud = Stytch::Fraud.new(@fraud_connection)
  @m2m = Stytch::M2M.new(@connection, @project_id, @is_b2b_client)
  @magic_links = StytchB2B::MagicLinks.new(@connection)
  @oauth = StytchB2B::OAuth.new(@connection)
  @otps = StytchB2B::OTPs.new(@connection)
  @organizations = StytchB2B::Organizations.new(@connection)
  @passwords = StytchB2B::Passwords.new(@connection)
  @project = Stytch::Project.new(@connection)
  @rbac = StytchB2B::RBAC.new(@connection)
  @recovery_codes = StytchB2B::RecoveryCodes.new(@connection)
  @scim = StytchB2B::SCIM.new(@connection)
  @sso = StytchB2B::SSO.new(@connection)
  @sessions = StytchB2B::Sessions.new(@connection, @project_id, @policy_cache)
  @totps = StytchB2B::TOTPs.new(@connection)
end