use super::{Error, configuration, parse_response};
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ActionSearchError {
Status400(models::ValidationErrorMessageResponse),
Status401(models::UnauthenticatedResponse),
Status403(models::ForbiddenResponse),
Status404(models::PathUnknownErrorMessageResponse),
Status409(models::AbortedMessageResponse),
Status422(models::UnprocessableContentMessageResponse),
Status500(models::InternalErrorMessageResponse),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum EvaluationError {
Status400(models::ValidationErrorMessageResponse),
Status401(models::UnauthenticatedResponse),
Status403(models::ForbiddenResponse),
Status404(models::PathUnknownErrorMessageResponse),
Status409(models::AbortedMessageResponse),
Status422(models::UnprocessableContentMessageResponse),
Status500(models::InternalErrorMessageResponse),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum EvaluationsError {
Status400(models::ValidationErrorMessageResponse),
Status401(models::UnauthenticatedResponse),
Status403(models::ForbiddenResponse),
Status404(models::PathUnknownErrorMessageResponse),
Status409(models::AbortedMessageResponse),
Status422(models::UnprocessableContentMessageResponse),
Status500(models::InternalErrorMessageResponse),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetConfigurationError {
Status400(models::ValidationErrorMessageResponse),
Status401(models::UnauthenticatedResponse),
Status403(models::ForbiddenResponse),
Status404(models::PathUnknownErrorMessageResponse),
Status409(models::AbortedMessageResponse),
Status422(models::UnprocessableContentMessageResponse),
Status500(models::InternalErrorMessageResponse),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ResourceSearchError {
Status400(models::ValidationErrorMessageResponse),
Status401(models::UnauthenticatedResponse),
Status403(models::ForbiddenResponse),
Status404(models::PathUnknownErrorMessageResponse),
Status409(models::AbortedMessageResponse),
Status422(models::UnprocessableContentMessageResponse),
Status500(models::InternalErrorMessageResponse),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SubjectSearchError {
Status400(models::ValidationErrorMessageResponse),
Status401(models::UnauthenticatedResponse),
Status403(models::ForbiddenResponse),
Status404(models::PathUnknownErrorMessageResponse),
Status409(models::AbortedMessageResponse),
Status422(models::UnprocessableContentMessageResponse),
Status500(models::InternalErrorMessageResponse),
}
pub async fn action_search(
configuration: &configuration::Configuration,
store_id: &str,
body: models::ActionSearchRequest,
) -> Result<models::ActionSearchResponse, Error<ActionSearchError>> {
let uri_str = format!(
"{}/stores/{store_id}/access/v1/search/action",
configuration.base_path,
store_id = crate::apis::urlencode(store_id)
);
let req_builder = configuration
.client
.request(reqwest::Method::POST, &uri_str);
let req_builder = configuration.apply_to_request(req_builder);
let req_builder = req_builder.json(&body);
let resp = req_builder.send().await?;
parse_response(resp).await
}
pub async fn evaluation(
configuration: &configuration::Configuration,
store_id: &str,
body: models::EvaluationRequest,
) -> Result<models::EvaluationResponse, Error<EvaluationError>> {
let uri_str = format!(
"{}/stores/{store_id}/access/v1/evaluation",
configuration.base_path,
store_id = crate::apis::urlencode(store_id)
);
let req_builder = configuration
.client
.request(reqwest::Method::POST, &uri_str);
let req_builder = configuration.apply_to_request(req_builder);
let req_builder = req_builder.json(&body);
let resp = req_builder.send().await?;
parse_response(resp).await
}
pub async fn evaluations(
configuration: &configuration::Configuration,
store_id: &str,
body: models::EvaluationsRequest,
) -> Result<models::EvaluationsResponse, Error<EvaluationsError>> {
let uri_str = format!(
"{}/stores/{store_id}/access/v1/evaluations",
configuration.base_path,
store_id = crate::apis::urlencode(store_id)
);
let req_builder = configuration
.client
.request(reqwest::Method::POST, &uri_str);
let req_builder = configuration.apply_to_request(req_builder);
let req_builder = req_builder.json(&body);
let resp = req_builder.send().await?;
parse_response(resp).await
}
pub async fn get_configuration(
configuration: &configuration::Configuration,
store_id: &str,
) -> Result<models::GetConfigurationResponse, Error<GetConfigurationError>> {
let uri_str = format!(
"{}/.well-known/authzen-configuration/{store_id}",
configuration.base_path,
store_id = crate::apis::urlencode(store_id)
);
let req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
let req_builder = configuration.apply_to_request(req_builder);
let resp = req_builder.send().await?;
parse_response(resp).await
}
pub async fn resource_search(
configuration: &configuration::Configuration,
store_id: &str,
body: models::ResourceSearchRequest,
) -> Result<models::ResourceSearchResponse, Error<ResourceSearchError>> {
let uri_str = format!(
"{}/stores/{store_id}/access/v1/search/resource",
configuration.base_path,
store_id = crate::apis::urlencode(store_id)
);
let req_builder = configuration
.client
.request(reqwest::Method::POST, &uri_str);
let req_builder = configuration.apply_to_request(req_builder);
let req_builder = req_builder.json(&body);
let resp = req_builder.send().await?;
parse_response(resp).await
}
pub async fn subject_search(
configuration: &configuration::Configuration,
store_id: &str,
body: models::SubjectSearchRequest,
) -> Result<models::SubjectSearchResponse, Error<SubjectSearchError>> {
let uri_str = format!(
"{}/stores/{store_id}/access/v1/search/subject",
configuration.base_path,
store_id = crate::apis::urlencode(store_id)
);
let req_builder = configuration
.client
.request(reqwest::Method::POST, &uri_str);
let req_builder = configuration.apply_to_request(req_builder);
let req_builder = req_builder.json(&body);
let resp = req_builder.send().await?;
parse_response(resp).await
}