eio_okta_api/v1/users/
list_users.rs1use eio_okta_data::v2024_07_0::management::components::{
2 parameters::{QueryAfter, QueryLimit},
3 schemas::User,
4};
5
6use crate::{
7 traits::{IntoRequest, Pagination},
8 Endpoint, MapInto, QueryString,
9};
10
11impl Endpoint for ListUsers {
12 const PATH: &'static str = "/api/v1/users";
13
14 fn query(&self) -> Result<QueryString, crate::traits::endpoint::Error> {
15 QueryString::simple(self).map_into()
16 }
17}
18
19impl IntoRequest for ListUsers {
20 type Body = ();
21}
22
23impl Pagination for ListUsers {
24 type Item = User;
25}
26
27#[derive(Debug, Default, serde::Serialize, serde::Deserialize, clap::Args, validator::Validate)]
28#[serde(rename_all = "camelCase")]
29#[group(skip)]
30#[remain::sorted]
31pub struct ListUsers {
32 #[command(flatten)]
33 #[serde(flatten)]
34 pub after: QueryAfter,
35 #[command(flatten)]
36 #[serde(flatten)]
37 pub filter: crate::qol::Filter,
38 #[command(flatten)]
39 #[serde(flatten)]
40 pub limit: QueryLimit,
41 #[arg(long)]
42 #[serde(skip_serializing_if = "Option::is_none")]
43 pub q: Option<String>,
44 #[arg(long)]
45 #[serde(skip_serializing_if = "Option::is_none")]
46 pub search: Option<String>,
47 #[arg(long)]
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub sort_by: Option<String>,
50 #[arg(long)]
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub sort_order: Option<String>,
53}
54
55impl AsRef<()> for ListUsers {
56 fn as_ref(&self) -> &() {
57 &()
58 }
59}