1use serde::{Deserialize, Serialize};
5#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
17pub struct AddTrustKey200Response {
18 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
19 pub status: Option<String>,
20 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
21 pub tenant_id: Option<String>,
22 #[serde(rename = "key_id", skip_serializing_if = "Option::is_none")]
23 pub key_id: Option<String>,
24}
25
26impl AddTrustKey200Response {
27 pub fn new() -> AddTrustKey200Response {
28 AddTrustKey200Response {
29 status: None,
30 tenant_id: None,
31 key_id: None,
32 }
33 }
34}
35
36#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
48pub struct AddTrustKeyRequest {
49 #[serde(rename = "tenant_id")]
50 pub tenant_id: String,
51 #[serde(rename = "key_id")]
52 pub key_id: String,
53 #[serde(rename = "public_key")]
55 pub public_key: String,
56}
57
58impl AddTrustKeyRequest {
59 pub fn new(tenant_id: String, key_id: String, public_key: String) -> AddTrustKeyRequest {
60 AddTrustKeyRequest {
61 tenant_id,
62 key_id,
63 public_key,
64 }
65 }
66}
67
68#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
80pub struct ApprovalRequest {
81 #[serde(rename = "intent_hash")]
83 pub intent_hash: String,
84 #[serde(rename = "signature_b64")]
86 pub signature_b64: String,
87 #[serde(rename = "public_key_b64")]
89 pub public_key_b64: String,
90 #[serde(rename = "challenge_response", skip_serializing_if = "Option::is_none")]
92 pub challenge_response: Option<String>,
93}
94
95impl ApprovalRequest {
96 pub fn new(intent_hash: String, signature_b64: String, public_key_b64: String) -> ApprovalRequest {
97 ApprovalRequest {
98 intent_hash,
99 signature_b64,
100 public_key_b64,
101 challenge_response: None,
102 }
103 }
104}
105
106#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
118pub struct ChatCompletionRequest {
119 #[serde(rename = "model")]
120 pub model: String,
121 #[serde(rename = "messages")]
122 pub messages: Vec<ChatCompletionRequestMessagesInner>,
123 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
124 pub tools: Option<Vec<ChatCompletionRequestToolsInner>>,
125 #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
126 pub temperature: Option<f64>,
127 #[serde(rename = "max_tokens", skip_serializing_if = "Option::is_none")]
128 pub max_tokens: Option<i32>,
129 #[serde(rename = "stream", skip_serializing_if = "Option::is_none")]
130 pub stream: Option<bool>,
131}
132
133impl ChatCompletionRequest {
134 pub fn new(model: String, messages: Vec<ChatCompletionRequestMessagesInner>) -> ChatCompletionRequest {
135 ChatCompletionRequest {
136 model,
137 messages,
138 tools: None,
139 temperature: None,
140 max_tokens: None,
141 stream: None,
142 }
143 }
144}
145
146#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
158pub struct ChatCompletionRequestMessagesInner {
159 #[serde(rename = "role")]
160 pub role: Role,
161 #[serde(rename = "content")]
162 pub content: String,
163 #[serde(rename = "tool_call_id", skip_serializing_if = "Option::is_none")]
164 pub tool_call_id: Option<String>,
165}
166
167impl ChatCompletionRequestMessagesInner {
168 pub fn new(role: Role, content: String) -> ChatCompletionRequestMessagesInner {
169 ChatCompletionRequestMessagesInner {
170 role,
171 content,
172 tool_call_id: None,
173 }
174 }
175}
176#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
178pub enum Role {
179 #[serde(rename = "system")]
180 System,
181 #[serde(rename = "user")]
182 User,
183 #[serde(rename = "assistant")]
184 Assistant,
185 #[serde(rename = "tool")]
186 Tool,
187}
188
189impl Default for Role {
190 fn default() -> Role {
191 Self::System
192 }
193}
194
195#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
207pub struct ChatCompletionRequestToolsInner {
208 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
209 pub r#type: Option<Type>,
210 #[serde(rename = "function", skip_serializing_if = "Option::is_none")]
211 pub function: Option<Box<ChatCompletionRequestToolsInnerFunction>>,
212}
213
214impl ChatCompletionRequestToolsInner {
215 pub fn new() -> ChatCompletionRequestToolsInner {
216 ChatCompletionRequestToolsInner {
217 r#type: None,
218 function: None,
219 }
220 }
221}
222#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
224pub enum Type {
225 #[serde(rename = "function")]
226 Function,
227}
228
229impl Default for Type {
230 fn default() -> Type {
231 Self::Function
232 }
233}
234
235#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
247pub struct ChatCompletionRequestToolsInnerFunction {
248 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
249 pub name: Option<String>,
250 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
251 pub description: Option<String>,
252 #[serde(rename = "parameters", skip_serializing_if = "Option::is_none")]
253 pub parameters: Option<serde_json::Value>,
254}
255
256impl ChatCompletionRequestToolsInnerFunction {
257 pub fn new() -> ChatCompletionRequestToolsInnerFunction {
258 ChatCompletionRequestToolsInnerFunction {
259 name: None,
260 description: None,
261 parameters: None,
262 }
263 }
264}
265
266#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
278pub struct ChatCompletionResponse {
279 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
280 pub id: Option<String>,
281 #[serde(rename = "object", skip_serializing_if = "Option::is_none")]
282 pub object: Option<String>,
283 #[serde(rename = "created", skip_serializing_if = "Option::is_none")]
284 pub created: Option<i32>,
285 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
286 pub model: Option<String>,
287 #[serde(rename = "choices", skip_serializing_if = "Option::is_none")]
288 pub choices: Option<Vec<ChatCompletionResponseChoicesInner>>,
289 #[serde(rename = "usage", skip_serializing_if = "Option::is_none")]
290 pub usage: Option<Box<ChatCompletionResponseUsage>>,
291}
292
293impl ChatCompletionResponse {
294 pub fn new() -> ChatCompletionResponse {
295 ChatCompletionResponse {
296 id: None,
297 object: None,
298 created: None,
299 model: None,
300 choices: None,
301 usage: None,
302 }
303 }
304}
305
306#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
318pub struct ChatCompletionResponseChoicesInner {
319 #[serde(rename = "index", skip_serializing_if = "Option::is_none")]
320 pub index: Option<i32>,
321 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
322 pub message: Option<Box<ChatCompletionResponseChoicesInnerMessage>>,
323 #[serde(rename = "finish_reason", skip_serializing_if = "Option::is_none")]
324 pub finish_reason: Option<String>,
325}
326
327impl ChatCompletionResponseChoicesInner {
328 pub fn new() -> ChatCompletionResponseChoicesInner {
329 ChatCompletionResponseChoicesInner {
330 index: None,
331 message: None,
332 finish_reason: None,
333 }
334 }
335}
336
337#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
349pub struct ChatCompletionResponseChoicesInnerMessage {
350 #[serde(rename = "role", skip_serializing_if = "Option::is_none")]
351 pub role: Option<String>,
352 #[serde(rename = "content", default, skip_serializing_if = "Option::is_none")]
353 pub content: Option<Option<String>>,
354 #[serde(rename = "tool_calls", skip_serializing_if = "Option::is_none")]
355 pub tool_calls: Option<Vec<ChatCompletionResponseChoicesInnerMessageToolCallsInner>>,
356}
357
358impl ChatCompletionResponseChoicesInnerMessage {
359 pub fn new() -> ChatCompletionResponseChoicesInnerMessage {
360 ChatCompletionResponseChoicesInnerMessage {
361 role: None,
362 content: None,
363 tool_calls: None,
364 }
365 }
366}
367
368#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
380pub struct ChatCompletionResponseChoicesInnerMessageToolCallsInner {
381 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
382 pub id: Option<String>,
383 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
384 pub r#type: Option<String>,
385 #[serde(rename = "function", skip_serializing_if = "Option::is_none")]
386 pub function: Option<Box<ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction>>,
387}
388
389impl ChatCompletionResponseChoicesInnerMessageToolCallsInner {
390 pub fn new() -> ChatCompletionResponseChoicesInnerMessageToolCallsInner {
391 ChatCompletionResponseChoicesInnerMessageToolCallsInner {
392 id: None,
393 r#type: None,
394 function: None,
395 }
396 }
397}
398
399#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
411pub struct ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
412 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
413 pub name: Option<String>,
414 #[serde(rename = "arguments", skip_serializing_if = "Option::is_none")]
415 pub arguments: Option<String>,
416}
417
418impl ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
419 pub fn new() -> ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
420 ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
421 name: None,
422 arguments: None,
423 }
424 }
425}
426
427#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
439pub struct ChatCompletionResponseUsage {
440 #[serde(rename = "prompt_tokens", skip_serializing_if = "Option::is_none")]
441 pub prompt_tokens: Option<i32>,
442 #[serde(rename = "completion_tokens", skip_serializing_if = "Option::is_none")]
443 pub completion_tokens: Option<i32>,
444 #[serde(rename = "total_tokens", skip_serializing_if = "Option::is_none")]
445 pub total_tokens: Option<i32>,
446}
447
448impl ChatCompletionResponseUsage {
449 pub fn new() -> ChatCompletionResponseUsage {
450 ChatCompletionResponseUsage {
451 prompt_tokens: None,
452 completion_tokens: None,
453 total_tokens: None,
454 }
455 }
456}
457
458#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
470pub struct ConformanceRequest {
471 #[serde(rename = "level")]
472 pub level: Level,
473 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
474 pub profile: Option<String>,
475}
476
477impl ConformanceRequest {
478 pub fn new(level: Level) -> ConformanceRequest {
479 ConformanceRequest {
480 level,
481 profile: None,
482 }
483 }
484}
485#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
487pub enum Level {
488 #[serde(rename = "L1")]
489 L1,
490 #[serde(rename = "L2")]
491 L2,
492}
493
494impl Default for Level {
495 fn default() -> Level {
496 Self::L1
497 }
498}
499
500#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
512pub struct ConformanceResult {
513 #[serde(rename = "report_id", skip_serializing_if = "Option::is_none")]
514 pub report_id: Option<String>,
515 #[serde(rename = "level", skip_serializing_if = "Option::is_none")]
516 pub level: Option<String>,
517 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
518 pub verdict: Option<Verdict>,
519 #[serde(rename = "gates", skip_serializing_if = "Option::is_none")]
520 pub gates: Option<i32>,
521 #[serde(rename = "failed", skip_serializing_if = "Option::is_none")]
522 pub failed: Option<i32>,
523 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
524 pub details: Option<std::collections::HashMap<String, String>>,
525}
526
527impl ConformanceResult {
528 pub fn new() -> ConformanceResult {
529 ConformanceResult {
530 report_id: None,
531 level: None,
532 verdict: None,
533 gates: None,
534 failed: None,
535 details: None,
536 }
537 }
538}
539#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
541pub enum Verdict {
542 #[serde(rename = "PASS")]
543 Pass,
544 #[serde(rename = "FAIL")]
545 Fail,
546}
547
548impl Default for Verdict {
549 fn default() -> Verdict {
550 Self::Pass
551 }
552}
553
554#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
567pub struct Effect {
568 #[serde(rename = "effect_type")]
570 pub effect_type: String,
571 #[serde(rename = "effect_id")]
573 pub effect_id: String,
574 #[serde(rename = "params")]
576 pub params: std::collections::HashMap<String, serde_json::Value>,
577 #[serde(rename = "budget_id", skip_serializing_if = "Option::is_none")]
579 pub budget_id: Option<String>,
580}
581
582impl Effect {
583 pub fn new(effect_type: String, effect_id: String, params: std::collections::HashMap<String, serde_json::Value>) -> Effect {
585 Effect {
586 effect_type,
587 effect_id,
588 params,
589 budget_id: None,
590 }
591 }
592}
593
594#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
607pub struct EffectBoundary {
608 #[serde(rename = "effect")]
609 pub effect: Box<Effect>,
610 #[serde(rename = "principal")]
612 pub principal: String,
613 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
615 pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
616}
617
618impl EffectBoundary {
619 pub fn new(effect: Effect, principal: String) -> EffectBoundary {
621 EffectBoundary {
622 effect: Box::new(effect),
623 principal,
624 context: None,
625 }
626 }
627}
628
629#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
641pub struct ExportRequest {
642 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
644 pub session_id: Option<String>,
645 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
646 pub format: Option<Format>,
647}
648
649impl ExportRequest {
650 pub fn new() -> ExportRequest {
651 ExportRequest {
652 session_id: None,
653 format: None,
654 }
655 }
656}
657#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
659pub enum Format {
660 #[serde(rename = "tar.gz")]
661 TarPeriodGz,
662}
663
664impl Default for Format {
665 fn default() -> Format {
666 Self::TarPeriodGz
667 }
668}
669
670#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
683pub struct GovernanceDecision {
684 #[serde(rename = "decision_id")]
685 pub decision_id: String,
686 #[serde(rename = "effect_id")]
687 pub effect_id: String,
688 #[serde(rename = "verdict")]
689 pub verdict: GovernanceVerdict,
690 #[serde(rename = "reason_code", default, skip_serializing_if = "Option::is_none")]
692 pub reason_code: Option<Option<String>>,
693 #[serde(rename = "receipt", skip_serializing_if = "Option::is_none")]
694 pub receipt: Option<Box<Receipt>>,
695 #[serde(rename = "active_packs", skip_serializing_if = "Option::is_none")]
697 pub active_packs: Option<Vec<String>>,
698}
699
700impl GovernanceDecision {
701 pub fn new(decision_id: String, effect_id: String, verdict: GovernanceVerdict) -> GovernanceDecision {
703 GovernanceDecision {
704 decision_id,
705 effect_id,
706 verdict,
707 reason_code: None,
708 receipt: None,
709 active_packs: None,
710 }
711 }
712}
713#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
715pub enum GovernanceVerdict {
716 #[serde(rename = "ALLOW")]
717 Allow,
718 #[serde(rename = "DENY")]
719 Deny,
720 #[serde(rename = "ESCALATE")]
721 Escalate,
722}
723
724impl Default for GovernanceVerdict {
725 fn default() -> GovernanceVerdict {
726 Self::Allow
727 }
728}
729
730#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
742pub struct HealthCheck200Response {
743 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
744 pub status: Option<String>,
745 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
746 pub version: Option<String>,
747}
748
749impl HealthCheck200Response {
750 pub fn new() -> HealthCheck200Response {
751 HealthCheck200Response {
752 status: None,
753 version: None,
754 }
755 }
756}
757
758#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
770pub struct HelmError {
771 #[serde(rename = "error")]
772 pub error: Box<HelmErrorError>,
773}
774
775impl HelmError {
776 pub fn new(error: HelmErrorError) -> HelmError {
777 HelmError {
778 error: Box::new(error),
779 }
780 }
781}
782
783#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
795pub struct HelmErrorError {
796 #[serde(rename = "message")]
798 pub message: String,
799 #[serde(rename = "type")]
800 pub r#type: ErrorType,
801 #[serde(rename = "code")]
803 pub code: String,
804 #[serde(rename = "reason_code")]
806 pub reason_code: ReasonCode,
807 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
809 pub details: Option<std::collections::HashMap<String, serde_json::Value>>,
810}
811
812impl HelmErrorError {
813 pub fn new(message: String, r#type: ErrorType, code: String, reason_code: ReasonCode) -> HelmErrorError {
814 HelmErrorError {
815 message,
816 r#type,
817 code,
818 reason_code,
819 details: None,
820 }
821 }
822}
823#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
825pub enum ErrorType {
826 #[serde(rename = "invalid_request")]
827 InvalidRequest,
828 #[serde(rename = "authentication_error")]
829 AuthenticationError,
830 #[serde(rename = "permission_denied")]
831 PermissionDenied,
832 #[serde(rename = "not_found")]
833 NotFound,
834 #[serde(rename = "internal_error")]
835 InternalError,
836}
837
838impl Default for ErrorType {
839 fn default() -> ErrorType {
840 Self::InvalidRequest
841 }
842}
843#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
845pub enum ReasonCode {
846 #[serde(rename = "DENY_TOOL_NOT_FOUND")]
847 DenyToolNotFound,
848 #[serde(rename = "DENY_SCHEMA_MISMATCH")]
849 DenySchemaMismatch,
850 #[serde(rename = "DENY_OUTPUT_DRIFT")]
851 DenyOutputDrift,
852 #[serde(rename = "DENY_BUDGET_EXCEEDED")]
853 DenyBudgetExceeded,
854 #[serde(rename = "DENY_APPROVAL_REQUIRED")]
855 DenyApprovalRequired,
856 #[serde(rename = "DENY_APPROVAL_TIMEOUT")]
857 DenyApprovalTimeout,
858 #[serde(rename = "DENY_SANDBOX_TRAP")]
859 DenySandboxTrap,
860 #[serde(rename = "DENY_GAS_EXHAUSTION")]
861 DenyGasExhaustion,
862 #[serde(rename = "DENY_TIME_LIMIT")]
863 DenyTimeLimit,
864 #[serde(rename = "DENY_MEMORY_LIMIT")]
865 DenyMemoryLimit,
866 #[serde(rename = "DENY_POLICY_VIOLATION")]
867 DenyPolicyViolation,
868 #[serde(rename = "DENY_TRUST_KEY_REVOKED")]
869 DenyTrustKeyRevoked,
870 #[serde(rename = "DENY_IDEMPOTENCY_DUPLICATE")]
871 DenyIdempotencyDuplicate,
872 #[serde(rename = "ERROR_INTERNAL")]
873 ErrorInternal,
874}
875
876impl Default for ReasonCode {
877 fn default() -> ReasonCode {
878 Self::DenyToolNotFound
879 }
880}
881
882#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
894pub struct McpCapabilityManifest {
895 #[serde(rename = "server_name", skip_serializing_if = "Option::is_none")]
896 pub server_name: Option<String>,
897 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
898 pub version: Option<String>,
899 #[serde(rename = "governance", skip_serializing_if = "Option::is_none")]
900 pub governance: Option<String>,
901 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
902 pub tools: Option<Vec<McpToolRef>>,
903}
904
905impl McpCapabilityManifest {
906 pub fn new() -> McpCapabilityManifest {
907 McpCapabilityManifest {
908 server_name: None,
909 version: None,
910 governance: None,
911 tools: None,
912 }
913 }
914}
915
916#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
928pub struct McpProtectedResourceMetadata {
929 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
930 pub resource: Option<String>,
931 #[serde(rename = "authorization_servers", skip_serializing_if = "Option::is_none")]
932 pub authorization_servers: Option<Vec<String>>,
933 #[serde(rename = "scopes_supported", skip_serializing_if = "Option::is_none")]
934 pub scopes_supported: Option<Vec<String>>,
935 #[serde(rename = "bearer_methods_supported", skip_serializing_if = "Option::is_none")]
936 pub bearer_methods_supported: Option<Vec<String>>,
937 #[serde(rename = "resource_documentation", skip_serializing_if = "Option::is_none")]
938 pub resource_documentation: Option<String>,
939}
940
941impl McpProtectedResourceMetadata {
942 pub fn new() -> McpProtectedResourceMetadata {
943 McpProtectedResourceMetadata {
944 resource: None,
945 authorization_servers: None,
946 scopes_supported: None,
947 bearer_methods_supported: None,
948 resource_documentation: None,
949 }
950 }
951}
952
953#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
965pub struct McpRemoteDiscovery {
966 #[serde(rename = "server_name", skip_serializing_if = "Option::is_none")]
967 pub server_name: Option<String>,
968 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
969 pub version: Option<String>,
970 #[serde(rename = "capabilities_url", skip_serializing_if = "Option::is_none")]
971 pub capabilities_url: Option<String>,
972 #[serde(rename = "execute_url", skip_serializing_if = "Option::is_none")]
973 pub execute_url: Option<String>,
974 #[serde(rename = "mcp_endpoint", skip_serializing_if = "Option::is_none")]
975 pub mcp_endpoint: Option<String>,
976 #[serde(rename = "supported_protocol_versions", skip_serializing_if = "Option::is_none")]
977 pub supported_protocol_versions: Option<Vec<String>>,
978 #[serde(rename = "auth_mode", skip_serializing_if = "Option::is_none")]
979 pub auth_mode: Option<String>,
980 #[serde(rename = "governance", skip_serializing_if = "Option::is_none")]
981 pub governance: Option<String>,
982}
983
984impl McpRemoteDiscovery {
985 pub fn new() -> McpRemoteDiscovery {
986 McpRemoteDiscovery {
987 server_name: None,
988 version: None,
989 capabilities_url: None,
990 execute_url: None,
991 mcp_endpoint: None,
992 supported_protocol_versions: None,
993 auth_mode: None,
994 governance: None,
995 }
996 }
997}
998
999#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1011pub struct McpToolCallRequest {
1012 #[serde(rename = "method")]
1013 pub method: String,
1014 #[serde(rename = "params", skip_serializing_if = "Option::is_none")]
1015 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
1016}
1017
1018impl McpToolCallRequest {
1019 pub fn new(method: String) -> McpToolCallRequest {
1020 McpToolCallRequest {
1021 method,
1022 params: None,
1023 }
1024 }
1025}
1026
1027#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1039pub struct McpToolCallResponse {
1040 #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
1041 pub result: Option<Box<McpToolCallResponseResult>>,
1042 #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
1043 pub error: Option<String>,
1044 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
1045 pub reason_code: Option<String>,
1046 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
1047 pub args_hash: Option<String>,
1048 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
1049 pub proofgraph_node: Option<String>,
1050 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
1051 pub receipt_id: Option<String>,
1052}
1053
1054impl McpToolCallResponse {
1055 pub fn new() -> McpToolCallResponse {
1056 McpToolCallResponse {
1057 result: None,
1058 error: None,
1059 reason_code: None,
1060 args_hash: None,
1061 proofgraph_node: None,
1062 receipt_id: None,
1063 }
1064 }
1065}
1066
1067#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1081#[serde(untagged)]
1082pub enum McpToolCallResponseResult {
1083 String(String),
1084 Object(std::collections::HashMap<String, serde_json::Value>),
1085}
1086
1087impl Default for McpToolCallResponseResult {
1088 fn default() -> Self {
1089 Self::String(Default::default())
1090 }
1091}
1092
1093#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1105pub struct McpToolRef {
1106 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
1107 pub name: Option<String>,
1108 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
1109 pub description: Option<String>,
1110 #[serde(rename = "server_id", skip_serializing_if = "Option::is_none")]
1111 pub server_id: Option<String>,
1112 #[serde(rename = "schema", skip_serializing_if = "Option::is_none")]
1113 pub schema: Option<std::collections::HashMap<String, serde_json::Value>>,
1114}
1115
1116impl McpToolRef {
1117 pub fn new() -> McpToolRef {
1118 McpToolRef {
1119 name: None,
1120 description: None,
1121 server_id: None,
1122 schema: None,
1123 }
1124 }
1125}
1126
1127#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1139pub struct McpjsonrpcError {
1140 #[serde(rename = "code", skip_serializing_if = "Option::is_none")]
1141 pub code: Option<i32>,
1142 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
1143 pub message: Option<String>,
1144}
1145
1146impl McpjsonrpcError {
1147 pub fn new() -> McpjsonrpcError {
1148 McpjsonrpcError {
1149 code: None,
1150 message: None,
1151 }
1152 }
1153}
1154
1155#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1167pub struct McpjsonrpcRequest {
1168 #[serde(rename = "jsonrpc")]
1169 pub jsonrpc: Jsonrpc,
1170 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
1171 pub id: Option<Box<McpjsonrpcRequestId>>,
1172 #[serde(rename = "method")]
1173 pub method: String,
1174 #[serde(rename = "params", skip_serializing_if = "Option::is_none")]
1175 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
1176}
1177
1178impl McpjsonrpcRequest {
1179 pub fn new(jsonrpc: Jsonrpc, method: String) -> McpjsonrpcRequest {
1180 McpjsonrpcRequest {
1181 jsonrpc,
1182 id: None,
1183 method,
1184 params: None,
1185 }
1186 }
1187}
1188#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1190pub enum Jsonrpc {
1191 #[serde(rename = "2.0")]
1192 Variant2Period0,
1193}
1194
1195impl Default for Jsonrpc {
1196 fn default() -> Jsonrpc {
1197 Self::Variant2Period0
1198 }
1199}
1200
1201#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1215#[serde(untagged)]
1216pub enum McpjsonrpcRequestId {
1217 String(String),
1218 Integer(i32),
1219}
1220
1221impl Default for McpjsonrpcRequestId {
1222 fn default() -> Self {
1223 Self::String(Default::default())
1224 }
1225}
1226
1227#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1239pub struct McpjsonrpcResponse {
1240 #[serde(rename = "jsonrpc", skip_serializing_if = "Option::is_none")]
1241 pub jsonrpc: Option<Jsonrpc>,
1242 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
1243 pub id: Option<Box<McpjsonrpcResponseId>>,
1244 #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
1245 pub result: Option<std::collections::HashMap<String, serde_json::Value>>,
1246 #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
1247 pub error: Option<Box<McpjsonrpcError>>,
1248}
1249
1250impl McpjsonrpcResponse {
1251 pub fn new() -> McpjsonrpcResponse {
1252 McpjsonrpcResponse {
1253 jsonrpc: None,
1254 id: None,
1255 result: None,
1256 error: None,
1257 }
1258 }
1259}
1260#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
1274#[serde(untagged)]
1275pub enum McpjsonrpcResponseId {
1276 String(String),
1277 Integer(i32),
1278}
1279
1280impl Default for McpjsonrpcResponseId {
1281 fn default() -> Self {
1282 Self::String(Default::default())
1283 }
1284}
1285
1286#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1298pub struct OssLocalCapabilitiesFeatures {
1299 #[serde(rename = "import_run_report", skip_serializing_if = "Option::is_none")]
1300 pub import_run_report: Option<bool>,
1301 #[serde(rename = "offline_verify", skip_serializing_if = "Option::is_none")]
1302 pub offline_verify: Option<bool>,
1303 #[serde(rename = "proof_report", skip_serializing_if = "Option::is_none")]
1304 pub proof_report: Option<bool>,
1305 #[serde(rename = "pack_registry", skip_serializing_if = "Option::is_none")]
1306 pub pack_registry: Option<bool>,
1307 #[serde(rename = "workspace_collaboration", skip_serializing_if = "Option::is_none")]
1308 pub workspace_collaboration: Option<bool>,
1309}
1310
1311impl OssLocalCapabilitiesFeatures {
1312 pub fn new() -> OssLocalCapabilitiesFeatures {
1313 OssLocalCapabilitiesFeatures {
1314 import_run_report: None,
1315 offline_verify: None,
1316 proof_report: None,
1317 pack_registry: None,
1318 workspace_collaboration: None,
1319 }
1320 }
1321}
1322
1323#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1335pub struct OssLocalCapabilitiesMcp {
1336 #[serde(rename = "stdio", skip_serializing_if = "Option::is_none")]
1337 pub stdio: Option<bool>,
1338 #[serde(rename = "http", skip_serializing_if = "Option::is_none")]
1339 pub http: Option<bool>,
1340 #[serde(rename = "auth_modes", skip_serializing_if = "Option::is_none")]
1341 pub auth_modes: Option<std::collections::HashMap<String, bool>>,
1342}
1343
1344impl OssLocalCapabilitiesMcp {
1345 pub fn new() -> OssLocalCapabilitiesMcp {
1346 OssLocalCapabilitiesMcp {
1347 stdio: None,
1348 http: None,
1349 auth_modes: None,
1350 }
1351 }
1352}
1353
1354#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1366pub struct OssLocalCapabilitiesProxy {
1367 #[serde(rename = "receipts_endpoint", skip_serializing_if = "Option::is_none")]
1368 pub receipts_endpoint: Option<bool>,
1369 #[serde(rename = "proofgraph_endpoint", skip_serializing_if = "Option::is_none")]
1370 pub proofgraph_endpoint: Option<bool>,
1371}
1372
1373impl OssLocalCapabilitiesProxy {
1374 pub fn new() -> OssLocalCapabilitiesProxy {
1375 OssLocalCapabilitiesProxy {
1376 receipts_endpoint: None,
1377 proofgraph_endpoint: None,
1378 }
1379 }
1380}
1381
1382#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1394pub struct OssLocalCapabilitiesResponse {
1395 #[serde(rename = "studio_mode")]
1396 pub studio_mode: StudioMode,
1397 #[serde(rename = "read_only")]
1398 pub read_only: bool,
1399 #[serde(rename = "http_api")]
1400 pub http_api: bool,
1401 #[serde(rename = "mcp")]
1402 pub mcp: Box<OssLocalCapabilitiesMcp>,
1403 #[serde(rename = "proxy")]
1404 pub proxy: Box<OssLocalCapabilitiesProxy>,
1405 #[serde(rename = "features")]
1406 pub features: Box<OssLocalCapabilitiesFeatures>,
1407}
1408
1409impl OssLocalCapabilitiesResponse {
1410 pub fn new(studio_mode: StudioMode, read_only: bool, http_api: bool, mcp: OssLocalCapabilitiesMcp, proxy: OssLocalCapabilitiesProxy, features: OssLocalCapabilitiesFeatures) -> OssLocalCapabilitiesResponse {
1411 OssLocalCapabilitiesResponse {
1412 studio_mode,
1413 read_only,
1414 http_api,
1415 mcp: Box::new(mcp),
1416 proxy: Box::new(proxy),
1417 features: Box::new(features),
1418 }
1419 }
1420}
1421#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1423pub enum StudioMode {
1424 #[serde(rename = "oss_local")]
1425 OssLocal,
1426}
1427
1428impl Default for StudioMode {
1429 fn default() -> StudioMode {
1430 Self::OssLocal
1431 }
1432}
1433
1434#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1446pub struct OssLocalDecision {
1447 #[serde(rename = "id")]
1448 pub id: String,
1449 #[serde(rename = "source")]
1450 pub source: String,
1451 #[serde(rename = "timestamp")]
1452 pub timestamp: String,
1453 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
1454 pub principal: Option<String>,
1455 #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
1456 pub action: Option<String>,
1457 #[serde(rename = "tool", skip_serializing_if = "Option::is_none")]
1458 pub tool: Option<String>,
1459 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
1460 pub verdict: Option<String>,
1461 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
1462 pub status: Option<String>,
1463 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
1464 pub reason_code: Option<String>,
1465 #[serde(rename = "hash", skip_serializing_if = "Option::is_none")]
1466 pub hash: Option<String>,
1467 #[serde(rename = "prev_hash", skip_serializing_if = "Option::is_none")]
1468 pub prev_hash: Option<String>,
1469 #[serde(rename = "lamport_clock", skip_serializing_if = "Option::is_none")]
1470 pub lamport_clock: Option<i32>,
1471}
1472
1473impl OssLocalDecision {
1474 pub fn new(id: String, source: String, timestamp: String) -> OssLocalDecision {
1475 OssLocalDecision {
1476 id,
1477 source,
1478 timestamp,
1479 principal: None,
1480 action: None,
1481 tool: None,
1482 verdict: None,
1483 status: None,
1484 reason_code: None,
1485 hash: None,
1486 prev_hash: None,
1487 lamport_clock: None,
1488 }
1489 }
1490}
1491
1492#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1504pub struct OssLocalPathsView {
1505 #[serde(rename = "evidence_dir", skip_serializing_if = "Option::is_none")]
1506 pub evidence_dir: Option<String>,
1507 #[serde(rename = "receipts_dir", skip_serializing_if = "Option::is_none")]
1508 pub receipts_dir: Option<String>,
1509 #[serde(rename = "run_report_json", skip_serializing_if = "Option::is_none")]
1510 pub run_report_json: Option<String>,
1511 #[serde(rename = "run_report_html", skip_serializing_if = "Option::is_none")]
1512 pub run_report_html: Option<String>,
1513 #[serde(rename = "proofgraph", skip_serializing_if = "Option::is_none")]
1514 pub proofgraph: Option<String>,
1515}
1516
1517impl OssLocalPathsView {
1518 pub fn new() -> OssLocalPathsView {
1519 OssLocalPathsView {
1520 evidence_dir: None,
1521 receipts_dir: None,
1522 run_report_json: None,
1523 run_report_html: None,
1524 proofgraph: None,
1525 }
1526 }
1527}
1528
1529#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1542pub struct OssLocalProofgraphResponse {
1543 #[serde(rename = "nodes", default, skip_serializing_if = "Option::is_none")]
1544 pub nodes: Option<Option<serde_json::Value>>,
1545 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
1546 pub path: Option<String>,
1547 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
1548 pub status: Option<String>,
1549 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
1550 pub message: Option<String>,
1551}
1552
1553impl OssLocalProofgraphResponse {
1554 pub fn new() -> OssLocalProofgraphResponse {
1556 OssLocalProofgraphResponse {
1557 nodes: None,
1558 path: None,
1559 status: None,
1560 message: None,
1561 }
1562 }
1563}
1564
1565#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1577pub struct OssLocalReplayReport {
1578 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
1579 pub version: Option<String>,
1580 #[serde(rename = "schema_version", skip_serializing_if = "Option::is_none")]
1581 pub schema_version: Option<String>,
1582 #[serde(rename = "generated_at", skip_serializing_if = "Option::is_none")]
1583 pub generated_at: Option<String>,
1584 #[serde(rename = "template", skip_serializing_if = "Option::is_none")]
1585 pub template: Option<String>,
1586 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
1587 pub provider: Option<String>,
1588 #[serde(rename = "summary")]
1589 pub summary: Box<OssLocalRunSummary>,
1590 #[serde(rename = "receipts")]
1591 pub receipts: Vec<OssLocalDecision>,
1592}
1593
1594impl OssLocalReplayReport {
1595 pub fn new(summary: OssLocalRunSummary, receipts: Vec<OssLocalDecision>) -> OssLocalReplayReport {
1596 OssLocalReplayReport {
1597 version: None,
1598 schema_version: None,
1599 generated_at: None,
1600 template: None,
1601 provider: None,
1602 summary: Box::new(summary),
1603 receipts,
1604 }
1605 }
1606}
1607
1608#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1620pub struct OssLocalReportMeta {
1621 #[serde(rename = "template", skip_serializing_if = "Option::is_none")]
1622 pub template: Option<String>,
1623 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
1624 pub provider: Option<String>,
1625 #[serde(rename = "generated_at", skip_serializing_if = "Option::is_none")]
1626 pub generated_at: Option<String>,
1627 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
1628 pub summary: Option<Box<OssLocalRunSummary>>,
1629}
1630
1631impl OssLocalReportMeta {
1632 pub fn new() -> OssLocalReportMeta {
1633 OssLocalReportMeta {
1634 template: None,
1635 provider: None,
1636 generated_at: None,
1637 summary: None,
1638 }
1639 }
1640}
1641
1642#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1654pub struct OssLocalRunSummary {
1655 #[serde(rename = "total", skip_serializing_if = "Option::is_none")]
1656 pub total: Option<i32>,
1657 #[serde(rename = "lamport_final", skip_serializing_if = "Option::is_none")]
1658 pub lamport_final: Option<i32>,
1659 #[serde(rename = "root_hash", skip_serializing_if = "Option::is_none")]
1660 pub root_hash: Option<String>,
1661 #[serde(rename = "chain_verified", skip_serializing_if = "Option::is_none")]
1662 pub chain_verified: Option<bool>,
1663 #[serde(rename = "lamport_monotonic", skip_serializing_if = "Option::is_none")]
1664 pub lamport_monotonic: Option<bool>,
1665 #[serde(rename = "deny_path_tested", skip_serializing_if = "Option::is_none")]
1666 pub deny_path_tested: Option<bool>,
1667 #[serde(rename = "is_demo", skip_serializing_if = "Option::is_none")]
1668 pub is_demo: Option<bool>,
1669}
1670
1671impl OssLocalRunSummary {
1672 pub fn new() -> OssLocalRunSummary {
1673 OssLocalRunSummary {
1674 total: None,
1675 lamport_final: None,
1676 root_hash: None,
1677 chain_verified: None,
1678 lamport_monotonic: None,
1679 deny_path_tested: None,
1680 is_demo: None,
1681 }
1682 }
1683}
1684
1685#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1697pub struct OssLocalRuntimeStatus {
1698 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
1699 pub status: Option<String>,
1700 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
1701 pub version: Option<String>,
1702 #[serde(rename = "build_time", skip_serializing_if = "Option::is_none")]
1703 pub build_time: Option<String>,
1704}
1705
1706impl OssLocalRuntimeStatus {
1707 pub fn new() -> OssLocalRuntimeStatus {
1708 OssLocalRuntimeStatus {
1709 status: None,
1710 version: None,
1711 build_time: None,
1712 }
1713 }
1714}
1715
1716#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1728pub struct OssLocalStats {
1729 #[serde(rename = "receipt_count", skip_serializing_if = "Option::is_none")]
1730 pub receipt_count: Option<i32>,
1731 #[serde(rename = "allow_count", skip_serializing_if = "Option::is_none")]
1732 pub allow_count: Option<i32>,
1733 #[serde(rename = "deny_count", skip_serializing_if = "Option::is_none")]
1734 pub deny_count: Option<i32>,
1735 #[serde(rename = "pending_count", skip_serializing_if = "Option::is_none")]
1736 pub pending_count: Option<i32>,
1737 #[serde(rename = "proofgraph_nodes", skip_serializing_if = "Option::is_none")]
1738 pub proofgraph_nodes: Option<i32>,
1739 #[serde(rename = "last_receipt_id", skip_serializing_if = "Option::is_none")]
1740 pub last_receipt_id: Option<String>,
1741 #[serde(rename = "last_reason_code", skip_serializing_if = "Option::is_none")]
1742 pub last_reason_code: Option<String>,
1743}
1744
1745impl OssLocalStats {
1746 pub fn new() -> OssLocalStats {
1747 OssLocalStats {
1748 receipt_count: None,
1749 allow_count: None,
1750 deny_count: None,
1751 pending_count: None,
1752 proofgraph_nodes: None,
1753 last_receipt_id: None,
1754 last_reason_code: None,
1755 }
1756 }
1757}
1758
1759#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1771pub struct OssLocalSummaryResponse {
1772 #[serde(rename = "mode")]
1773 pub mode: Mode,
1774 #[serde(rename = "connected")]
1775 pub connected: bool,
1776 #[serde(rename = "generated_at")]
1777 pub generated_at: String,
1778 #[serde(rename = "runtime")]
1779 pub runtime: Box<OssLocalRuntimeStatus>,
1780 #[serde(rename = "paths")]
1781 pub paths: Box<OssLocalPathsView>,
1782 #[serde(rename = "latest_report", skip_serializing_if = "Option::is_none")]
1783 pub latest_report: Option<Box<OssLocalReportMeta>>,
1784 #[serde(rename = "stats")]
1785 pub stats: Box<OssLocalStats>,
1786}
1787
1788impl OssLocalSummaryResponse {
1789 pub fn new(mode: Mode, connected: bool, generated_at: String, runtime: OssLocalRuntimeStatus, paths: OssLocalPathsView, stats: OssLocalStats) -> OssLocalSummaryResponse {
1790 OssLocalSummaryResponse {
1791 mode,
1792 connected,
1793 generated_at,
1794 runtime: Box::new(runtime),
1795 paths: Box::new(paths),
1796 latest_report: None,
1797 stats: Box::new(stats),
1798 }
1799 }
1800}
1801#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1803pub enum Mode {
1804 #[serde(rename = "oss_local")]
1805 OssLocal,
1806}
1807
1808impl Default for Mode {
1809 fn default() -> Mode {
1810 Self::OssLocal
1811 }
1812}
1813
1814#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1826pub struct OssLocalTimelineResponse {
1827 #[serde(rename = "decisions")]
1828 pub decisions: Vec<OssLocalDecision>,
1829 #[serde(rename = "total")]
1830 pub total: i32,
1831 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
1832 pub source: Option<String>,
1833}
1834
1835impl OssLocalTimelineResponse {
1836 pub fn new(decisions: Vec<OssLocalDecision>, total: i32) -> OssLocalTimelineResponse {
1837 OssLocalTimelineResponse {
1838 decisions,
1839 total,
1840 source: None,
1841 }
1842 }
1843}
1844
1845#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1858pub struct PdpRequest {
1859 #[serde(rename = "boundary")]
1860 pub boundary: Box<EffectBoundary>,
1861}
1862
1863impl PdpRequest {
1864 pub fn new(boundary: EffectBoundary) -> PdpRequest {
1866 PdpRequest {
1867 boundary: Box::new(boundary),
1868 }
1869 }
1870}
1871
1872#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1885pub struct PdpResponse {
1886 #[serde(rename = "decision")]
1887 pub decision: Box<GovernanceDecision>,
1888}
1889
1890impl PdpResponse {
1891 pub fn new(decision: GovernanceDecision) -> PdpResponse {
1893 PdpResponse {
1894 decision: Box::new(decision),
1895 }
1896 }
1897}
1898
1899#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1912pub struct PolicyBundle {
1913 #[serde(rename = "name")]
1914 pub name: String,
1915 #[serde(rename = "version")]
1916 pub version: String,
1917 #[serde(rename = "content_hash")]
1919 pub content_hash: String,
1920 #[serde(rename = "signature", default, skip_serializing_if = "Option::is_none")]
1922 pub signature: Option<Option<String>>,
1923 #[serde(rename = "pack_type", skip_serializing_if = "Option::is_none")]
1924 pub pack_type: Option<PackType>,
1925}
1926
1927impl PolicyBundle {
1928 pub fn new(name: String, version: String, content_hash: String) -> PolicyBundle {
1930 PolicyBundle {
1931 name,
1932 version,
1933 content_hash,
1934 signature: None,
1935 pack_type: None,
1936 }
1937 }
1938}
1939#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1941pub enum PackType {
1942 #[serde(rename = "jurisdiction")]
1943 Jurisdiction,
1944 #[serde(rename = "industry")]
1945 Industry,
1946 #[serde(rename = "business")]
1947 Business,
1948 #[serde(rename = "custom")]
1949 Custom,
1950}
1951
1952impl Default for PackType {
1953 fn default() -> PackType {
1954 Self::Jurisdiction
1955 }
1956}
1957
1958#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1970pub struct Receipt {
1971 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
1972 pub receipt_id: Option<String>,
1973 #[serde(rename = "decision_id", skip_serializing_if = "Option::is_none")]
1974 pub decision_id: Option<String>,
1975 #[serde(rename = "effect_id", skip_serializing_if = "Option::is_none")]
1976 pub effect_id: Option<String>,
1977 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
1978 pub status: Option<Status>,
1979 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
1980 pub reason_code: Option<String>,
1981 #[serde(rename = "output_hash", skip_serializing_if = "Option::is_none")]
1982 pub output_hash: Option<String>,
1983 #[serde(rename = "blob_hash", skip_serializing_if = "Option::is_none")]
1984 pub blob_hash: Option<String>,
1985 #[serde(rename = "prev_hash", skip_serializing_if = "Option::is_none")]
1986 pub prev_hash: Option<String>,
1987 #[serde(rename = "lamport_clock", skip_serializing_if = "Option::is_none")]
1988 pub lamport_clock: Option<i32>,
1989 #[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
1990 pub signature: Option<String>,
1991 #[serde(rename = "timestamp", skip_serializing_if = "Option::is_none")]
1992 pub timestamp: Option<String>,
1993 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
1994 pub principal: Option<String>,
1995}
1996
1997impl Receipt {
1998 pub fn new() -> Receipt {
1999 Receipt {
2000 receipt_id: None,
2001 decision_id: None,
2002 effect_id: None,
2003 status: None,
2004 reason_code: None,
2005 output_hash: None,
2006 blob_hash: None,
2007 prev_hash: None,
2008 lamport_clock: None,
2009 signature: None,
2010 timestamp: None,
2011 principal: None,
2012 }
2013 }
2014}
2015#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2017pub enum Status {
2018 #[serde(rename = "APPROVED")]
2019 Approved,
2020 #[serde(rename = "DENIED")]
2021 Denied,
2022 #[serde(rename = "PENDING")]
2023 Pending,
2024}
2025
2026impl Default for Status {
2027 fn default() -> Status {
2028 Self::Approved
2029 }
2030}
2031
2032#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2044pub struct RevokeTrustKeyRequest {
2045 #[serde(rename = "tenant_id")]
2046 pub tenant_id: String,
2047 #[serde(rename = "key_id")]
2048 pub key_id: String,
2049}
2050
2051impl RevokeTrustKeyRequest {
2052 pub fn new(tenant_id: String, key_id: String) -> RevokeTrustKeyRequest {
2053 RevokeTrustKeyRequest {
2054 tenant_id,
2055 key_id,
2056 }
2057 }
2058}
2059
2060#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2072pub struct Session {
2073 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
2074 pub session_id: Option<String>,
2075 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
2076 pub created_at: Option<String>,
2077 #[serde(rename = "receipt_count", skip_serializing_if = "Option::is_none")]
2078 pub receipt_count: Option<i32>,
2079 #[serde(rename = "last_lamport_clock", skip_serializing_if = "Option::is_none")]
2080 pub last_lamport_clock: Option<i32>,
2081}
2082
2083impl Session {
2084 pub fn new() -> Session {
2085 Session {
2086 session_id: None,
2087 created_at: None,
2088 receipt_count: None,
2089 last_lamport_clock: None,
2090 }
2091 }
2092}
2093
2094#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2106pub struct VerificationResult {
2107 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
2108 pub verdict: Option<Verdict>,
2109 #[serde(rename = "checks", skip_serializing_if = "Option::is_none")]
2110 pub checks: Option<Box<VerificationResultChecks>>,
2111 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
2112 pub errors: Option<Vec<String>>,
2113}
2114
2115impl VerificationResult {
2116 pub fn new() -> VerificationResult {
2117 VerificationResult {
2118 verdict: None,
2119 checks: None,
2120 errors: None,
2121 }
2122 }
2123}
2124#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2138pub struct VerificationResultChecks {
2139 #[serde(rename = "signatures", skip_serializing_if = "Option::is_none")]
2140 pub signatures: Option<Signatures>,
2141 #[serde(rename = "causal_chain", skip_serializing_if = "Option::is_none")]
2142 pub causal_chain: Option<CausalChain>,
2143 #[serde(rename = "policy_compliance", skip_serializing_if = "Option::is_none")]
2144 pub policy_compliance: Option<PolicyCompliance>,
2145}
2146
2147impl VerificationResultChecks {
2148 pub fn new() -> VerificationResultChecks {
2149 VerificationResultChecks {
2150 signatures: None,
2151 causal_chain: None,
2152 policy_compliance: None,
2153 }
2154 }
2155}
2156#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2158pub enum Signatures {
2159 #[serde(rename = "PASS")]
2160 Pass,
2161 #[serde(rename = "FAIL")]
2162 Fail,
2163}
2164
2165impl Default for Signatures {
2166 fn default() -> Signatures {
2167 Self::Pass
2168 }
2169}
2170#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2172pub enum CausalChain {
2173 #[serde(rename = "PASS")]
2174 Pass,
2175 #[serde(rename = "FAIL")]
2176 Fail,
2177}
2178
2179impl Default for CausalChain {
2180 fn default() -> CausalChain {
2181 Self::Pass
2182 }
2183}
2184#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2186pub enum PolicyCompliance {
2187 #[serde(rename = "PASS")]
2188 Pass,
2189 #[serde(rename = "FAIL")]
2190 Fail,
2191}
2192
2193impl Default for PolicyCompliance {
2194 fn default() -> PolicyCompliance {
2195 Self::Pass
2196 }
2197}
2198
2199#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2211pub struct VersionInfo {
2212 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
2213 pub version: Option<String>,
2214 #[serde(rename = "commit", skip_serializing_if = "Option::is_none")]
2215 pub commit: Option<String>,
2216 #[serde(rename = "build_time", skip_serializing_if = "Option::is_none")]
2217 pub build_time: Option<String>,
2218 #[serde(rename = "go_version", skip_serializing_if = "Option::is_none")]
2219 pub go_version: Option<String>,
2220}
2221
2222impl VersionInfo {
2223 pub fn new() -> VersionInfo {
2224 VersionInfo {
2225 version: None,
2226 commit: None,
2227 build_time: None,
2228 go_version: None,
2229 }
2230 }
2231}
2232