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	#[serde(rename = "poolName", skip_serializing_if = "Option::is_none")]
15	pub pool_name: Option<String>,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct GetForKeyRequest {
20	pub name: String,
21	pub key: ActorKey,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct GetForIdRequest {
26	pub name: String,
27	#[serde(rename = "actorId")]
28	pub actor_id: String,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
32pub struct GetOrCreateRequest {
33	pub name: String,
34	pub key: ActorKey,
35	#[serde(skip_serializing_if = "Option::is_none")]
36	pub input: Option<JsonValue>,
37	#[serde(skip_serializing_if = "Option::is_none")]
38	pub region: Option<String>,
39	#[serde(rename = "poolName", skip_serializing_if = "Option::is_none")]
40	pub pool_name: Option<String>,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
44#[serde(untagged)]
45pub enum ActorQuery {
46	GetForId {
47		#[serde(rename = "getForId")]
48		get_for_id: GetForIdRequest,
49	},
50	GetForKey {
51		#[serde(rename = "getForKey")]
52		get_for_key: GetForKeyRequest,
53	},
54	GetOrCreateForKey {
55		#[serde(rename = "getOrCreateForKey")]
56		get_or_create_for_key: GetOrCreateRequest,
57	},
58	Create {
59		create: CreateRequest,
60	},
61}