TLA 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 serde_with::{serde_as, DisplayFromStr};
8 : use utils::id::{NodeId, TenantId};
9 :
10 CBC 30 : #[derive(Serialize, Deserialize)]
11 : pub struct ReAttachRequest {
12 : pub node_id: NodeId,
13 : }
14 :
15 : #[serde_as]
16 90 : #[derive(Serialize, Deserialize)]
17 : pub struct ReAttachResponseTenant {
18 : #[serde_as(as = "DisplayFromStr")]
19 : pub id: TenantId,
20 : pub generation: u32,
21 : }
22 :
23 90 : #[derive(Serialize, Deserialize)]
24 : pub struct ReAttachResponse {
25 : pub tenants: Vec<ReAttachResponseTenant>,
26 : }
27 :
28 : #[serde_as]
29 18 : #[derive(Serialize, Deserialize)]
30 : pub struct ValidateRequestTenant {
31 : #[serde_as(as = "DisplayFromStr")]
32 : pub id: TenantId,
33 : pub gen: u32,
34 : }
35 :
36 18 : #[derive(Serialize, Deserialize)]
37 : pub struct ValidateRequest {
38 : pub tenants: Vec<ValidateRequestTenant>,
39 : }
40 :
41 27 : #[derive(Serialize, Deserialize)]
42 : pub struct ValidateResponse {
43 : pub tenants: Vec<ValidateResponseTenant>,
44 : }
45 :
46 : #[serde_as]
47 54 : #[derive(Serialize, Deserialize)]
48 : pub struct ValidateResponseTenant {
49 : #[serde_as(as = "DisplayFromStr")]
50 : pub id: TenantId,
51 : pub valid: bool,
52 : }
|