use super::responses::{
AuthResponse, GetConfigurationOfTheSecretEngineResponse, ListPoliciesResponse, MountResponse,
RandomResponse, ReadHealthResponse, ReadPolicyResponse, RemountResponse, RemountStatusResponse,
StartInitializationResponse, UnsealResponse, WrappingLookupResponse,
};
use rustify_derive::Endpoint;
use serde::Serialize;
use serde_json::Value;
use std::collections::HashMap;
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(path = "sys/mounts/{self.path}", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct EnableEngineRequest {
#[endpoint(skip)]
pub path: String,
#[serde(rename = "type")]
pub engine_type: Option<String>,
pub description: Option<String>,
pub config: Option<EnableEngineDataConfig>,
pub options: Option<HashMap<String, String>>,
}
#[derive(Clone, Builder, Debug, Default, Serialize)]
#[builder(setter(into, strip_option), default)]
pub struct EnableEngineDataConfig {
pub default_lease_ttl: Option<String>,
pub max_lease_ttl: Option<String>,
pub force_no_cache: Option<bool>,
pub audit_non_hmac_request_keys: Option<Vec<String>>,
pub audit_non_hmac_response_keys: Option<Vec<String>>,
pub listing_visibility: Option<String>,
pub passthrough_request_headers: Option<Vec<String>>,
pub allowed_response_headers: Option<Vec<String>>,
}
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(path = "sys/mounts/{self.path}", method = "DELETE", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct DisableEngineRequest {
#[endpoint(skip)]
pub path: String,
}
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(
path = "sys/mounts/{self.path}",
method = "GET",
builder = "true",
response = "GetConfigurationOfTheSecretEngineResponse"
)]
#[builder(setter(into, strip_option), default)]
pub struct GetConfigurationOfTheSecretEngineRequest {
#[endpoint(skip)]
pub path: String,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "sys/mounts",
response = "HashMap<String, MountResponse>",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct ListMountsRequest {}
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(path = "sys/auth/{self.path}", method = "POST", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct EnableAuthRequest {
#[endpoint(skip)]
pub path: String,
#[serde(rename = "type")]
pub engine_type: Option<String>,
pub description: Option<String>,
pub config: Option<EnableAuthDataConfig>,
}
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(path = "sys/auth/{self.path}", method = "DELETE", builder = "true")]
#[builder(setter(into, strip_option), default)]
pub struct DisableAuthRequest {
#[endpoint(skip)]
pub path: String,
}
#[derive(Clone, Builder, Debug, Default, Serialize)]
#[builder(setter(into, strip_option), default)]
pub struct EnableAuthDataConfig {
pub default_lease_ttl: Option<String>,
pub max_lease_ttl: Option<String>,
pub force_no_cache: Option<bool>,
pub audit_non_hmac_request_keys: Option<Vec<String>>,
pub audit_non_hmac_response_keys: Option<Vec<String>>,
pub listing_visibility: Option<String>,
pub passthrough_request_headers: Option<Vec<String>>,
pub allowed_response_headers: Option<Vec<String>>,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "sys/auth",
response = "HashMap<String, AuthResponse>",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct ListAuthsRequest {}
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(
path = "sys/remount",
response = "RemountResponse",
method = "POST",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct RemountRequest {
pub from: String,
pub to: String,
}
#[derive(Builder, Debug, Default, Endpoint, Serialize)]
#[endpoint(
path = "sys/remount/status/{self.migration_id}",
method = "GET",
builder = "true",
response = "RemountStatusResponse"
)]
#[builder(setter(into, strip_option), default)]
pub struct RemountStatusRequest {
#[endpoint(skip)]
pub migration_id: String,
}
#[derive(Builder, Endpoint)]
#[endpoint(path = "/sys/wrapping/unwrap", method = "POST", response = "Value")]
#[builder(setter(into))]
pub struct UnwrapRequest {
pub token: Option<String>,
}
#[derive(Builder, Default, Endpoint)]
#[endpoint(
path = "/sys/wrapping/lookup",
method = "POST",
response = "WrappingLookupResponse",
builder = "true"
)]
#[builder(setter(into), default)]
pub struct WrappingLookupRequest {
pub token: String,
}
#[derive(Builder, Default, Endpoint)]
#[endpoint(
path = "/sys/health",
response = "ReadHealthResponse",
builder = "true"
)]
#[builder(setter(into), default)]
pub struct ReadHealthRequest {
#[endpoint(query)]
pub standbyok: Option<bool>,
#[endpoint(query)]
pub perfstandbyok: Option<bool>,
#[endpoint(query)]
pub activecode: Option<u16>,
#[endpoint(query)]
pub standbycode: Option<u16>,
#[endpoint(query)]
pub drsecondarycode: Option<u16>,
#[endpoint(query)]
pub haunhealthycode: Option<u16>,
#[endpoint(query)]
pub performancestandbycode: Option<u16>,
#[endpoint(query)]
pub removedcode: Option<u16>,
#[endpoint(query)]
pub sealedcode: Option<u16>,
#[endpoint(query)]
pub uninitcode: Option<u16>,
}
#[derive(Builder, Default, Endpoint)]
#[endpoint(
path = "/sys/init",
method = "POST",
response = "StartInitializationResponse",
builder = "true"
)]
#[builder(setter(into), default)]
pub struct StartInitializationRequest {
pgp_keys: Option<Vec<String>>,
root_token_pgp_key: Option<String>,
secret_shares: u64,
secret_threshold: u64,
stored_shares: Option<u64>,
recovery_shares: Option<u64>,
recovery_threshold: Option<u64>,
recovery_pgp_keys: Option<Vec<String>>,
}
#[derive(Builder, Default, Endpoint)]
#[endpoint(path = "/sys/seal", method = "PUT", builder = "true")]
#[builder(setter(into), default)]
pub struct SealRequest {}
#[derive(Builder, Default, Endpoint)]
#[endpoint(
path = "/sys/unseal",
method = "PUT",
response = "UnsealResponse",
builder = "true"
)]
#[builder(setter(into), default)]
pub struct UnsealRequest {
pub key: Option<String>,
pub reset: Option<bool>,
pub migrate: Option<bool>,
}
#[derive(Builder, Default, Endpoint)]
#[endpoint(
path = "/sys/policy",
response = "ListPoliciesResponse",
builder = "true"
)]
#[builder(setter(into), default)]
pub struct ListPoliciesRequest {}
#[derive(Builder, Default, Endpoint)]
#[endpoint(
path = "/sys/policy/{self.name}",
response = "ReadPolicyResponse",
builder = "true"
)]
#[builder(setter(into), default)]
pub struct ReadPolicyRequest {
pub name: String,
}
#[derive(Builder, Default, Endpoint)]
#[endpoint(path = "/sys/policy/{self.name}", method = "PUT", builder = "true")]
#[builder(setter(into), default)]
pub struct CreatePolicyRequest {
pub name: String,
pub policy: String,
}
#[derive(Builder, Default, Endpoint)]
#[endpoint(path = "/sys/policy/{self.name}", method = "DELETE", builder = "true")]
#[builder(setter(into), default)]
pub struct DeletePolicyRequest {
pub name: String,
}
#[derive(Builder, Default, Endpoint)]
#[endpoint(
path = "/sys/tools/random",
method = "POST",
response = "RandomResponse",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct RandomRequest {
pub bytes: Option<u64>,
pub format: Option<String>,
pub source: Option<String>,
}