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            0 : #[derive(Serialize, Deserialize)]
      12              : pub struct ReAttachRequest {
      13              :     pub node_id: NodeId,
      14              : }
      15              : 
      16            0 : #[derive(Serialize, Deserialize)]
      17              : pub struct ReAttachResponseTenant {
      18              :     pub id: TenantShardId,
      19              :     pub gen: u32,
      20              : }
      21              : 
      22            0 : #[derive(Serialize, Deserialize)]
      23              : pub struct ReAttachResponse {
      24              :     pub tenants: Vec<ReAttachResponseTenant>,
      25              : }
      26              : 
      27            0 : #[derive(Serialize, Deserialize)]
      28              : pub struct ValidateRequestTenant {
      29              :     pub id: TenantShardId,
      30              :     pub gen: u32,
      31              : }
      32              : 
      33            0 : #[derive(Serialize, Deserialize)]
      34              : pub struct ValidateRequest {
      35              :     pub tenants: Vec<ValidateRequestTenant>,
      36              : }
      37              : 
      38            0 : #[derive(Serialize, Deserialize)]
      39              : pub struct ValidateResponse {
      40              :     pub tenants: Vec<ValidateResponseTenant>,
      41              : }
      42              : 
      43            0 : #[derive(Serialize, Deserialize)]
      44              : pub struct ValidateResponseTenant {
      45              :     pub id: TenantShardId,
      46              :     pub valid: bool,
      47              : }
        
               |