use super::responses::{
ListAccessorResponse, ListTokenRolesResponse, LookupTokenResponse, ReadTokenRoleResponse,
};
use rustify_derive::Endpoint;
use serde::Serialize;
use std::{collections::HashMap, fmt::Debug};
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "/auth/token/accessors",
method = "LIST",
response = "ListAccessorResponse",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct ListAccessorRequest {}
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(path = "/auth/token/create", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct CreateTokenRequest {
pub display_name: Option<String>,
pub entity_alias: Option<String>,
pub explicit_max_ttl: Option<String>,
pub id: Option<String>,
pub lease: Option<String>,
pub meta: Option<HashMap<String, String>>,
pub no_default_policy: Option<bool>,
pub no_parent: Option<bool>,
pub num_uses: Option<u64>,
pub policies: Option<Vec<String>>,
pub period: Option<String>,
pub renewable: Option<bool>,
pub ttl: Option<String>,
#[serde(rename = "type")]
pub token_type: Option<String>,
}
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(path = "/auth/token/create-orphan", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct CreateOrphanTokenRequest {
pub display_name: Option<String>,
pub entity_alias: Option<String>,
pub explicit_max_ttl: Option<String>,
pub id: Option<String>,
pub lease: Option<String>,
pub meta: Option<HashMap<String, String>>,
pub no_default_policy: Option<bool>,
pub no_parent: Option<bool>,
pub num_uses: Option<u64>,
pub policies: Option<Vec<String>>,
pub period: Option<String>,
pub renewable: Option<bool>,
pub ttl: Option<String>,
#[serde(rename = "type")]
pub token_type: Option<String>,
}
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(
path = "/auth/token/create/{self.role_name}",
method = "POST",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct CreateRoleTokenRequest {
#[endpoint(skip)]
pub role_name: String,
pub display_name: Option<String>,
pub entity_alias: Option<String>,
pub explicit_max_ttl: Option<String>,
pub id: Option<String>,
pub lease: Option<String>,
pub meta: Option<HashMap<String, String>>,
pub no_default_policy: Option<bool>,
pub no_parent: Option<bool>,
pub num_uses: Option<u64>,
pub policies: Option<Vec<String>>,
pub period: Option<String>,
pub renewable: Option<bool>,
pub ttl: Option<String>,
#[serde(rename = "type")]
pub token_type: Option<String>,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "/auth/token/lookup",
method = "POST",
response = "LookupTokenResponse",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct LookupTokenRequest {
pub token: String,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "/auth/token/lookup-self",
response = "LookupTokenResponse",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct LookupTokenSelfRequest {}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "/auth/token/lookup-accessor",
method = "POST",
response = "LookupTokenResponse",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct LookupTokenAccessorRequest {
pub accessor: String,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(path = "/auth/token/renew", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct RenewTokenRequest {
pub token: String,
pub increment: Option<String>,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(path = " /auth/token/renew-self", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct RenewTokenSelfRequest {
pub increment: Option<String>,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(path = "/auth/token/renew-accessor", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct RenewTokenAccessorRequest {
pub accessor: String,
pub increment: Option<String>,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(path = "/auth/token/revoke", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct RevokeTokenRequest {
pub token: String,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(path = " /auth/token/revoke-self", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct RevokeTokenSelfRequest {}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "/auth/token/revoke-accessor",
method = "POST",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct RevokeTokenAccessorRequest {
pub accessor: String,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(path = "/auth/token/revoke-orphan", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct RevokeTokenOrphanRequest {
pub token: String,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "/auth/token/roles/{self.role_name}",
response = "ReadTokenRoleResponse",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct ReadTokenRoleRequest {
#[endpoint(skip)]
pub role_name: String,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "/auth/token/roles",
method = "LIST",
response = "ListTokenRolesResponse",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct ListTokenRolesRequest {}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "/auth/token/roles/{self.role_name}",
method = "POST",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct SetTokenRoleRequest {
#[endpoint(skip)]
pub role_name: String,
pub allowed_entity_aliases: Option<Vec<String>>,
pub allowed_policies: Option<Vec<String>>,
pub disallowed_policies: Option<Vec<String>>,
pub orphan: Option<bool>,
pub path_suffix: Option<String>,
pub renewable: Option<bool>,
pub token_bound_cidrs: Option<Vec<String>>,
pub token_explicit_max_ttl: Option<String>,
pub token_no_default_policy: Option<bool>,
pub token_num_uses: Option<u64>,
pub token_period: Option<String>,
pub token_type: Option<String>,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "/auth/token/roles/{self.role_name}",
method = "DELETE",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct DeleteTokenRoleRequest {
#[endpoint(skip)]
pub role_name: String,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(path = "/auth/token/tidy", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct TidyRequest {}