gproxy_channel_api/
control.rs1use serde_json::Value;
8
9use crate::usage::{RateLimitResetCreditConsumeResponse, UsageSnapshot};
10
11#[derive(Debug, Clone, PartialEq, Eq)]
12pub enum CredentialControlOperation {
13 Usage,
14 ListRateLimitResetCredits,
15 ConsumeRateLimitResetCredit { idempotency_key: String },
16 Account,
17 Profile,
18 Settings,
19 ListTasks { query: Option<String> },
20 GetTask { task_id: String },
21 ListSiblingTurns { task_id: String, turn_id: String },
22 CreateTask { body: Value },
23}
24
25impl CredentialControlOperation {
26 pub const fn name(&self) -> &'static str {
27 match self {
28 Self::Usage => "usage",
29 Self::ListRateLimitResetCredits => "rate_limit_reset_credits",
30 Self::ConsumeRateLimitResetCredit { .. } => "rate_limit_reset_credit_consume",
31 Self::Account => "account",
32 Self::Profile => "profile",
33 Self::Settings => "settings",
34 Self::ListTasks { .. } => "tasks_list",
35 Self::GetTask { .. } => "task_get",
36 Self::ListSiblingTurns { .. } => "task_sibling_turns",
37 Self::CreateTask { .. } => "task_create",
38 }
39 }
40}
41
42#[derive(Debug, Clone)]
43pub enum CredentialControlResponse {
44 Usage(UsageSnapshot),
45 RateLimitResetCreditConsume(RateLimitResetCreditConsumeResponse),
46 Json(Value),
47}