Skip to main content

rivetkit_client/protocol/
query.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value as JsonValue;
3
4use crate::common::ActorKey;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct CreateRequest {
8	pub name: String,
9	pub key: ActorKey,
10	#[serde(skip_serializing_if = "Option::is_none")]
11	pub input: Option<JsonValue>,
12	#[serde(skip_serializing_if = "Option::is_none")]
13	pub region: Option<String>,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct GetForKeyRequest {
18	pub name: String,
19	pub key: ActorKey,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct GetForIdRequest {
24	pub name: String,
25	#[serde(rename = "actorId")]
26	pub actor_id: String,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct GetOrCreateRequest {
31	pub name: String,
32	pub key: ActorKey,
33	#[serde(skip_serializing_if = "Option::is_none")]
34	pub input: Option<JsonValue>,
35	#[serde(skip_serializing_if = "Option::is_none")]
36	pub region: Option<String>,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(untagged)]
41pub enum ActorQuery {
42	GetForId {
43		#[serde(rename = "getForId")]
44		get_for_id: GetForIdRequest,
45	},
46	GetForKey {
47		#[serde(rename = "getForKey")]
48		get_for_key: GetForKeyRequest,
49	},
50	GetOrCreateForKey {
51		#[serde(rename = "getOrCreateForKey")]
52		get_or_create_for_key: GetOrCreateRequest,
53	},
54	Create {
55		create: CreateRequest,
56	},
57}