ic_query/ic/model/requests/replica_versions.rs
1//! Module: ic::model::requests::replica_versions
2//!
3//! Responsibility: bounded official Dashboard replica-version request contracts.
4//! Does not own: transport, returned release records, validation, or rendering.
5//! Boundary: captures one explicit page or one exact replica-version target.
6
7use super::IcDashboardRequest;
8
9use serde::Serialize;
10
11///
12/// IcReplicaVersionListQuery
13///
14/// One explicitly bounded official Dashboard replica-version page query.
15///
16
17#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
18pub struct IcReplicaVersionListQuery {
19 /// Maximum release rows requested from the API.
20 pub limit: u16,
21 /// Zero-based release-row offset.
22 pub offset: u64,
23 /// Optional API proposal-index ceiling returned by an earlier page.
24 pub max_proposal_index: Option<u64>,
25}
26
27impl IcReplicaVersionListQuery {
28 /// Construct one bounded replica-version page query.
29 #[must_use]
30 pub const fn new(limit: u16, offset: u64, max_proposal_index: Option<u64>) -> Self {
31 Self {
32 limit,
33 offset,
34 max_proposal_index,
35 }
36 }
37}
38
39///
40/// IcReplicaVersionListRequest
41///
42/// Request accepted by the bounded official Dashboard replica-version list builder.
43///
44
45#[derive(Clone, Debug, Eq, PartialEq)]
46pub struct IcReplicaVersionListRequest {
47 /// Explicit Dashboard endpoint and caller collection clock.
48 pub dashboard: IcDashboardRequest,
49 /// Explicit page bounds.
50 pub query: IcReplicaVersionListQuery,
51}
52
53impl IcReplicaVersionListRequest {
54 /// Construct one bounded live Dashboard replica-version list request.
55 #[must_use]
56 pub const fn new(dashboard: IcDashboardRequest, query: IcReplicaVersionListQuery) -> Self {
57 Self { dashboard, query }
58 }
59}
60
61///
62/// IcReplicaVersionInfoRequest
63///
64/// Request accepted by the exact official Dashboard replica-version builder.
65///
66
67#[derive(Clone, Debug, Eq, PartialEq)]
68pub struct IcReplicaVersionInfoRequest {
69 /// Explicit Dashboard endpoint and caller collection clock.
70 pub dashboard: IcDashboardRequest,
71 /// Exact lowercase hexadecimal replica-version identifier.
72 pub replica_version_id: String,
73}
74
75impl IcReplicaVersionInfoRequest {
76 /// Construct one exact live Dashboard replica-version request.
77 #[must_use]
78 pub fn new(dashboard: IcDashboardRequest, replica_version_id: impl Into<String>) -> Self {
79 Self {
80 dashboard,
81 replica_version_id: replica_version_id.into(),
82 }
83 }
84}