authress 0.1.66

The Authress SDK for RUST - provides authorization as a service with fully compatible REST apis. Authentication / Authorization / User Identity Roles / Permissions / Policies
Documentation
#[macro_use]
extern crate serde_derive;

extern crate serde;
extern crate serde_json;
extern crate url;
extern crate reqwest;

pub mod apis;
pub mod models;

use reqwest::RequestBuilder;

#[derive(Default, Debug, Clone)]
pub struct AuthressSettings {
    pub client: reqwest::Client,

    pub authress_api_url: String,
    pub service_client_access_key: String
}

impl AuthressSettings {
    pub fn new(authress_api_url: String, service_client_access_key: String) -> AuthressSettings {
        AuthressSettings {
            client: reqwest::Client::new(),

            authress_api_url: authress_api_url.to_owned(),
            service_client_access_key: service_client_access_key            
        }
    }

    pub fn get_request_builder(&self, method: reqwest::Method, path_uri: String) -> RequestBuilder {
        let local_var_uri_str = format!("{}{}", self.authress_api_url, path_uri);
        
        return self.client
            .request(method, local_var_uri_str)
            .header(reqwest::header::USER_AGENT, "Authress SDK; Rust; ;")
            .bearer_auth(self.service_client_access_key.to_owned());
    }
}


pub struct AuthressClient {
    pub access_records: apis::access_records_api::AccessRecordApi,
    pub accounts: apis::accounts_api::AccountsApi,
    pub applications: apis::applications_api::ApplicationsApi,
    pub connections: apis::connections_api::ConnectionsApi,
    pub extensions: apis::extensions_api::ExtensionsApi,
    pub groups: apis::groups_api::GroupsApi,
    pub resource_permissions: apis::resource_permissions_api::ResourcePermissionsApi,
    pub roles: apis::roles_api::RolesApi,
    pub service_clients: apis::service_clients_api::ServiceClientsApi,
    pub tenants: apis::tenants_api::TenantsApi,
    pub user_permissions: apis::user_permissions_api::UserPermissionsApi,
    pub users: apis::users_api::UsersApi
}

impl AuthressClient {
    pub fn new(configuration: &AuthressSettings) -> Self {
        Self {
            access_records: apis::access_records_api::AccessRecordApi { configuration: configuration.clone() },
            accounts: apis::accounts_api::AccountsApi { configuration: configuration.clone() },
            applications: apis::applications_api::ApplicationsApi { configuration: configuration.clone() },
            connections: apis::connections_api::ConnectionsApi { configuration: configuration.clone() },
            extensions: apis::extensions_api::ExtensionsApi { configuration: configuration.clone() },
            groups: apis::groups_api::GroupsApi { configuration: configuration.clone() },
            resource_permissions: apis::resource_permissions_api::ResourcePermissionsApi { configuration: configuration.clone() },
            roles: apis::roles_api::RolesApi { configuration: configuration.clone() },
            service_clients: apis::service_clients_api::ServiceClientsApi { configuration: configuration.clone() },
            tenants: apis::tenants_api::TenantsApi { configuration: configuration.clone() },
            user_permissions: apis::user_permissions_api::UserPermissionsApi { configuration: configuration.clone() },
            users: apis::users_api::UsersApi { configuration: configuration.clone() },
        }
    }
}