eio_okta_api/v1/users/
list_users.rs

1use 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}