Skip to main content

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}