1mod audit_logs;
5mod certificates;
6mod client_identities;
7mod free_domains;
8mod geo;
9mod geo_bans;
10mod health_checks;
11mod records;
12mod redirects;
13mod sinkhole_links;
14mod sinkhole_lists;
15mod sinkhole_roles;
16mod stats;
17mod users;
18mod zone_members;
19mod zones;
20
21pub use audit_logs::{AuditLogFilter, AuditLogs};
22pub use certificates::Certificates;
23pub use client_identities::{ClientIdentities, ClientIdentityFilter};
24pub use free_domains::FreeDomains;
25pub use geo::Geo;
26pub use geo_bans::GeoBans;
27pub use health_checks::HealthChecks;
28pub use records::{RecordFilter, Records};
29pub use redirects::Redirects;
30pub use sinkhole_links::{SinkholeLinkFilter, SinkholeLinks};
31pub use sinkhole_lists::SinkholeLists;
32pub use sinkhole_roles::SinkholeRoles;
33pub use stats::{
34 ClientScope, Stats, StatsGroup, StatsMode, StatsSeriesQuery, StatsStep, StatsTopQuery,
35};
36pub use users::Users;
37pub use zone_members::ZoneMembers;
38pub use zones::Zones;
39
40use serde::{Deserialize, Serialize};
41
42use crate::auth::Secret;
43
44#[derive(Deserialize)]
46pub(crate) struct IssuedKey {
47 pub(crate) api_key: Secret,
48}
49
50#[derive(Debug, Clone, Copy, Default, Serialize)]
52pub struct PageRequest {
53 #[serde(skip_serializing_if = "Option::is_none")]
55 pub page: Option<u32>,
56 #[serde(skip_serializing_if = "Option::is_none")]
58 pub per_page: Option<u32>,
59}
60
61pub(crate) const MAX_PER_PAGE: u32 = 500;