rivetkit_shared_types/
serverless_metadata.rs1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub struct ServerlessMetadataEnvoy {
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub kind: Option<ServerlessMetadataEnvoyKind>,
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub version: Option<u32>,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
15pub enum ServerlessMetadataEnvoyKind {
16 #[serde(rename = "serverless")]
17 Serverless {},
18 #[serde(rename = "normal")]
19 Normal {},
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct ServerlessMetadataRunner {
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub version: Option<u32>,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(rename_all = "camelCase")]
30pub struct ServerlessMetadataPayload {
31 pub runtime: String,
32 pub version: String,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub envoy_protocol_version: Option<u16>,
35 #[serde(default)]
36 pub actor_names: HashMap<String, ActorName>,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub envoy: Option<ServerlessMetadataEnvoy>,
39 #[serde(skip_serializing_if = "Option::is_none")]
40 pub runner: Option<ServerlessMetadataRunner>,
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub client_endpoint: Option<String>,
43 #[serde(skip_serializing_if = "Option::is_none")]
44 pub client_namespace: Option<String>,
45 #[serde(skip_serializing_if = "Option::is_none")]
46 pub client_token: Option<String>,
47}
48
49#[derive(Debug, Clone, Default, Serialize, Deserialize)]
50pub struct ActorName {
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub metadata: Option<serde_json::Value>,
53}
54
55#[derive(Debug, Clone, Default, Serialize, Deserialize)]
57#[serde(rename_all = "camelCase")]
58pub struct ServerlessActorPreload {
59 #[serde(default)]
60 pub keys: Vec<Vec<u8>>,
61 #[serde(default)]
62 pub prefixes: Vec<ServerlessActorPreloadPrefix>,
63}
64
65#[derive(Debug, Clone, Serialize, Deserialize)]
66#[serde(rename_all = "camelCase")]
67pub struct ServerlessActorPreloadPrefix {
68 pub prefix: Vec<u8>,
69 pub max_bytes: u64,
70 #[serde(default)]
71 pub partial: bool,
72}