Line data Source code
1 : //! Types in this file are for pageserver's upward-facing API calls to the control plane,
2 : //! required for acquiring and validating tenant generation numbers.
3 : //!
4 : //! See docs/rfcs/025-generation-numbers.md
5 :
6 : use serde::{Deserialize, Serialize};
7 : use utils::id::NodeId;
8 :
9 : use crate::shard::TenantShardId;
10 :
11 1809 : #[derive(Serialize, Deserialize)]
12 : pub struct ReAttachRequest {
13 : pub node_id: NodeId,
14 : }
15 :
16 1130 : #[derive(Serialize, Deserialize)]
17 : pub struct ReAttachResponseTenant {
18 : pub id: TenantShardId,
19 : pub gen: u32,
20 : }
21 :
22 1806 : #[derive(Serialize, Deserialize)]
23 : pub struct ReAttachResponse {
24 : pub tenants: Vec<ReAttachResponseTenant>,
25 : }
26 :
27 2490 : #[derive(Serialize, Deserialize)]
28 : pub struct ValidateRequestTenant {
29 : pub id: TenantShardId,
30 : pub gen: u32,
31 : }
32 :
33 1233 : #[derive(Serialize, Deserialize)]
34 : pub struct ValidateRequest {
35 : pub tenants: Vec<ValidateRequestTenant>,
36 : }
37 :
38 1230 : #[derive(Serialize, Deserialize)]
39 : pub struct ValidateResponse {
40 : pub tenants: Vec<ValidateResponseTenant>,
41 : }
42 :
43 2485 : #[derive(Serialize, Deserialize)]
44 : pub struct ValidateResponseTenant {
45 : pub id: TenantShardId,
46 : pub valid: bool,
47 : }
|