use super::responses::{
CreateGroupAliasResponse, ListGroupAliasesByIdResponse, ReadGroupAliasByIdResponse,
};
use rustify_derive::Endpoint;
use serde::{Deserialize, Serialize};
use std::fmt::Debug;
#[derive(Builder, Debug, Default, Endpoint, Deserialize, Serialize)]
#[endpoint(
path = "identity/group-alias",
method = "POST",
builder = "true",
response = "CreateGroupAliasResponse"
)]
#[builder(setter(into, strip_option), default)]
pub struct CreateGroupAliasRequest {
pub name: String,
pub id: Option<String>,
pub mount_accessor: String,
pub canonical_id: Option<String>,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "identity/group-alias/id/{self.id}",
method = "POST",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct UpdateGroupAliasByIdRequest {
#[endpoint(skip)]
pub id: String,
pub name: Option<String>,
pub mount_accessor: String,
pub canonical_id: Option<String>,
}
#[derive(Builder, Debug, Endpoint)]
#[endpoint(
path = "identity/group-alias/id/{self.id}",
method = "GET",
builder = "true",
response = "ReadGroupAliasByIdResponse"
)]
#[builder(setter(into))]
pub struct ReadGroupAliasByIdRequest {
#[endpoint(skip)]
pub id: String,
}
#[derive(Builder, Debug, Default, Endpoint)]
#[endpoint(
path = "identity/group-alias/id/{self.id}",
method = "DELETE",
builder = "true"
)]
#[builder(setter(into, strip_option), default)]
pub struct DeleteGroupAliasByIdRequest {
#[endpoint(skip)]
pub id: String,
}
#[derive(Builder, Debug, Endpoint, Default)]
#[endpoint(
path = "identity/group-alias/id",
method = "LIST",
builder = "true",
response = "ListGroupAliasesByIdResponse"
)]
#[builder(setter(into, strip_option), default)]
pub struct ListGroupAliasesByIdRequest {}