isilon 5.0.1

Isilon rest api bindings
Documentation
/*
 * Isilon SDK
 *
 * Isilon SDK - Language bindings for the OneFS API
 *
 * OpenAPI spec version: 5
 * Contact: sdk@isilon.com
 * Generated by: https://github.com/swagger-api/swagger-codegen.git
 */

use std::borrow::Borrow;
use std::rc::Rc;

use futures;
use futures::Future;
use hyper;

use super::{configuration, query, Error};

pub struct AuthRolesApiClient<C: hyper::client::connect::Connect> {
    configuration: Rc<configuration::Configuration<C>>,
}

impl<C: hyper::client::connect::Connect> AuthRolesApiClient<C> {
    pub fn new(configuration: Rc<configuration::Configuration<C>>) -> AuthRolesApiClient<C> {
        AuthRolesApiClient {
            configuration: configuration,
        }
    }
}

pub trait AuthRolesApi {
    fn create_role_member(
        &self,
        role_member: crate::models::AuthAccessAccessItemFileGroup,
        role: &str,
    ) -> Box<dyn Future<Item = crate::models::CreateResponse, Error = Error>>;
    fn create_role_privilege(
        &self,
        role_privilege: crate::models::AuthIdNtokenPrivilegeItem,
        role: &str,
    ) -> Box<dyn Future<Item = crate::models::CreateResponse, Error = Error>>;
    fn delete_role_member(
        &self,
        role_member_id: &str,
        role: &str,
    ) -> Box<dyn Future<Item = (), Error = Error>>;
    fn delete_role_privilege(
        &self,
        role_privilege_id: &str,
        role: &str,
    ) -> Box<dyn Future<Item = (), Error = Error>>;
    fn list_role_members(
        &self,
        role: &str,
        resolve_names: bool,
    ) -> Box<dyn Future<Item = crate::models::GroupMembers, Error = Error>>;
    fn list_role_privileges(
        &self,
        role: &str,
    ) -> Box<dyn Future<Item = crate::models::RolePrivileges, Error = Error>>;
}

impl<C: hyper::client::connect::Connect + 'static> AuthRolesApi for AuthRolesApiClient<C> {
    fn create_role_member(
        &self,
        role_member: crate::models::AuthAccessAccessItemFileGroup,
        role: &str,
    ) -> Box<dyn Future<Item = crate::models::CreateResponse, Error = Error>> {
        let uri_str = format!(
            "{}/platform/1/auth/roles/{Role}/members",
            self.configuration.base_path,
            Role = role
        );

        query(
            self.configuration.borrow(),
            &uri_str,
            &role_member,
            hyper::Method::POST,
        )
    }

    fn create_role_privilege(
        &self,
        role_privilege: crate::models::AuthIdNtokenPrivilegeItem,
        role: &str,
    ) -> Box<dyn Future<Item = crate::models::CreateResponse, Error = Error>> {
        let uri_str = format!(
            "{}/platform/1/auth/roles/{Role}/privileges",
            self.configuration.base_path,
            Role = role
        );

        query(
            self.configuration.borrow(),
            &uri_str,
            &role_privilege,
            hyper::Method::POST,
        )
    }

    fn delete_role_member(
        &self,
        role_member_id: &str,
        role: &str,
    ) -> Box<dyn Future<Item = (), Error = Error>> {
        let uri_str = format!(
            "{}/platform/1/auth/roles/{Role}/members/{RoleMemberId}",
            self.configuration.base_path,
            RoleMemberId = role_member_id,
            Role = role
        );
        query(
            self.configuration.borrow(),
            &uri_str,
            &"",
            hyper::Method::DELETE,
        )
    }

    fn delete_role_privilege(
        &self,
        role_privilege_id: &str,
        role: &str,
    ) -> Box<dyn Future<Item = (), Error = Error>> {
        let uri_str = format!(
            "{}/platform/1/auth/roles/{Role}/privileges/{RolePrivilegeId}",
            self.configuration.base_path,
            RolePrivilegeId = role_privilege_id,
            Role = role
        );
        query(
            self.configuration.borrow(),
            &uri_str,
            &"",
            hyper::Method::DELETE,
        )
    }

    fn list_role_members(
        &self,
        role: &str,
        resolve_names: bool,
    ) -> Box<dyn Future<Item = crate::models::GroupMembers, Error = Error>> {
        let q = ::url::form_urlencoded::Serializer::new(String::new())
            .append_pair("resolve_names", &resolve_names.to_string())
            .finish();
        let uri_str = format!(
            "{}/platform/1/auth/roles/{Role}/members?{}",
            self.configuration.base_path,
            q,
            Role = role
        );

        //let parsed: Result<crate::models::GroupMembers, _> = serde_json::from_slice(&body);
        query(
            self.configuration.borrow(),
            &uri_str,
            &"",
            hyper::Method::GET,
        )
    }

    fn list_role_privileges(
        &self,
        role: &str,
    ) -> Box<dyn Future<Item = crate::models::RolePrivileges, Error = Error>> {
        let uri_str = format!(
            "{}/platform/1/auth/roles/{Role}/privileges",
            self.configuration.base_path,
            Role = role
        );

        query(
            self.configuration.borrow(),
            &uri_str,
            &"",
            hyper::Method::GET,
        )
    }
}