1use serde::{Deserialize, Serialize};
5#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
17pub struct A2AAgentCard {
18 #[serde(rename = "agent_id")]
19 pub agent_id: String,
20 #[serde(rename = "name")]
21 pub name: String,
22 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
23 pub description: Option<String>,
24 #[serde(rename = "endpoint")]
25 pub endpoint: String,
26 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
27 pub provider: Option<Box<A2AAgentCardProvider>>,
28 #[serde(rename = "supported_versions")]
29 pub supported_versions: Vec<String>,
30 #[serde(rename = "skills")]
31 pub skills: Vec<A2AAgentCardSkillsInner>,
32 #[serde(rename = "auth_methods", skip_serializing_if = "Option::is_none")]
33 pub auth_methods: Option<Vec<String>>,
34 #[serde(rename = "features", skip_serializing_if = "Option::is_none")]
35 pub features: Option<Vec<String>>,
36 #[serde(rename = "defaultInputModes", skip_serializing_if = "Option::is_none")]
37 pub default_input_modes: Option<Vec<String>>,
38 #[serde(rename = "defaultOutputModes", skip_serializing_if = "Option::is_none")]
39 pub default_output_modes: Option<Vec<String>>,
40 #[serde(rename = "capabilities", skip_serializing_if = "Option::is_none")]
41 pub capabilities: Option<Box<A2AAgentCardCapabilities>>,
42 #[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
43 pub signature: Option<String>,
44 #[serde(rename = "content_hash", skip_serializing_if = "Option::is_none")]
45 pub content_hash: Option<String>,
46 #[serde(rename = "created_at")]
47 pub created_at: String,
48 #[serde(rename = "updated_at")]
49 pub updated_at: String,
50}
51
52impl A2AAgentCard {
53 pub fn new(agent_id: String, name: String, endpoint: String, supported_versions: Vec<String>, skills: Vec<A2AAgentCardSkillsInner>, created_at: String, updated_at: String) -> A2AAgentCard {
54 A2AAgentCard {
55 agent_id,
56 name,
57 description: None,
58 endpoint,
59 provider: None,
60 supported_versions,
61 skills,
62 auth_methods: None,
63 features: None,
64 default_input_modes: None,
65 default_output_modes: None,
66 capabilities: None,
67 signature: None,
68 content_hash: None,
69 created_at,
70 updated_at,
71 }
72 }
73}
74
75#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
87pub struct A2AAgentCardCapabilities {
88 #[serde(rename = "streaming", skip_serializing_if = "Option::is_none")]
89 pub streaming: Option<bool>,
90 #[serde(rename = "pushNotifications", skip_serializing_if = "Option::is_none")]
91 pub push_notifications: Option<bool>,
92 #[serde(rename = "stateTransitionHistory", skip_serializing_if = "Option::is_none")]
93 pub state_transition_history: Option<bool>,
94}
95
96impl A2AAgentCardCapabilities {
97 pub fn new() -> A2AAgentCardCapabilities {
98 A2AAgentCardCapabilities {
99 streaming: None,
100 push_notifications: None,
101 state_transition_history: None,
102 }
103 }
104}
105
106#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
118pub struct A2AAgentCardProvider {
119 #[serde(rename = "organization", skip_serializing_if = "Option::is_none")]
120 pub organization: Option<String>,
121 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
122 pub url: Option<String>,
123}
124
125impl A2AAgentCardProvider {
126 pub fn new() -> A2AAgentCardProvider {
127 A2AAgentCardProvider {
128 organization: None,
129 url: None,
130 }
131 }
132}
133
134#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
146pub struct A2AAgentCardSkillsInner {
147 #[serde(rename = "id")]
148 pub id: String,
149 #[serde(rename = "name")]
150 pub name: String,
151 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
152 pub description: Option<String>,
153 #[serde(rename = "examples", skip_serializing_if = "Option::is_none")]
154 pub examples: Option<Vec<String>>,
155 #[serde(rename = "input_modes", skip_serializing_if = "Option::is_none")]
156 pub input_modes: Option<Vec<String>>,
157 #[serde(rename = "output_modes", skip_serializing_if = "Option::is_none")]
158 pub output_modes: Option<Vec<String>>,
159}
160
161impl A2AAgentCardSkillsInner {
162 pub fn new(id: String, name: String) -> A2AAgentCardSkillsInner {
163 A2AAgentCardSkillsInner {
164 id,
165 name,
166 description: None,
167 examples: None,
168 input_modes: None,
169 output_modes: None,
170 }
171 }
172}
173
174#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
186pub struct AccountEntitlements {
187 #[serde(rename = "principal_id", skip_serializing_if = "Option::is_none")]
188 pub principal_id: Option<String>,
189 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
190 pub tenant_id: Option<String>,
191 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
192 pub workspace_id: Option<String>,
193 #[serde(rename = "plan", default, skip_serializing_if = "Option::is_none")]
194 pub plan: Option<Option<AccountEntitlementsPlan>>,
195 #[serde(rename = "plan_id", skip_serializing_if = "Option::is_none")]
196 pub plan_id: Option<String>,
197 #[serde(rename = "capabilities", skip_serializing_if = "Option::is_none")]
198 pub capabilities: Option<Box<EntitlementCapabilities>>,
199 #[serde(rename = "limits", skip_serializing_if = "Option::is_none")]
200 pub limits: Option<Box<EntitlementLimits>>,
201 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
202 pub source: Option<String>,
203 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
204 pub updated_at: Option<String>,
205}
206
207impl AccountEntitlements {
208 pub fn new() -> AccountEntitlements {
209 AccountEntitlements {
210 principal_id: None,
211 tenant_id: None,
212 workspace_id: None,
213 plan: None,
214 plan_id: None,
215 capabilities: None,
216 limits: None,
217 source: None,
218 updated_at: None,
219 }
220 }
221}
222#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
224pub enum AccountEntitlementsPlan {
225 #[serde(rename = "free")]
226 Free,
227 #[serde(rename = "individual")]
228 Individual,
229 #[serde(rename = "developer")]
230 Developer,
231 #[serde(rename = "team")]
232 Team,
233 #[serde(rename = "scale")]
234 Scale,
235 #[serde(rename = "enterprise")]
236 Enterprise,
237}
238
239impl Default for AccountEntitlementsPlan {
240 fn default() -> AccountEntitlementsPlan {
241 Self::Free
242 }
243}
244
245#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
257pub struct AccountSession {
258 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
259 pub session_id: Option<String>,
260 #[serde(rename = "principal_id", skip_serializing_if = "Option::is_none")]
261 pub principal_id: Option<String>,
262 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
263 pub tenant_id: Option<String>,
264 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
265 pub workspace_id: Option<String>,
266 #[serde(rename = "plan", default, skip_serializing_if = "Option::is_none")]
267 pub plan: Option<Option<AccountSessionPlan>>,
268 #[serde(rename = "plan_id", skip_serializing_if = "Option::is_none")]
269 pub plan_id: Option<String>,
270 #[serde(rename = "edition", skip_serializing_if = "Option::is_none")]
271 pub edition: Option<String>,
272 #[serde(rename = "deployment_mode", skip_serializing_if = "Option::is_none")]
273 pub deployment_mode: Option<String>,
274 #[serde(rename = "account_lifecycle", skip_serializing_if = "Option::is_none")]
275 pub account_lifecycle: Option<String>,
276 #[serde(rename = "offer_code", skip_serializing_if = "Option::is_none")]
277 pub offer_code: Option<String>,
278 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
279 pub source: Option<String>,
280 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
281 pub expires_at: Option<String>,
282}
283
284impl AccountSession {
285 pub fn new() -> AccountSession {
286 AccountSession {
287 session_id: None,
288 principal_id: None,
289 tenant_id: None,
290 workspace_id: None,
291 plan: None,
292 plan_id: None,
293 edition: None,
294 deployment_mode: None,
295 account_lifecycle: None,
296 offer_code: None,
297 source: None,
298 expires_at: None,
299 }
300 }
301}
302#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
304pub enum AccountSessionPlan {
305 #[serde(rename = "free")]
306 Free,
307 #[serde(rename = "individual")]
308 Individual,
309 #[serde(rename = "developer")]
310 Developer,
311 #[serde(rename = "team")]
312 Team,
313 #[serde(rename = "scale")]
314 Scale,
315 #[serde(rename = "enterprise")]
316 Enterprise,
317}
318
319impl Default for AccountSessionPlan {
320 fn default() -> AccountSessionPlan {
321 Self::Free
322 }
323}
324
325#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
337pub struct AdapterMatch {
338 #[serde(rename = "adapter_id", skip_serializing_if = "Option::is_none")]
339 pub adapter_id: Option<String>,
340 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
341 pub confidence: Option<f64>,
342 #[serde(rename = "evidence", skip_serializing_if = "Option::is_none")]
343 pub evidence: Option<Vec<String>>,
344}
345
346impl AdapterMatch {
347 pub fn new() -> AdapterMatch {
348 AdapterMatch {
349 adapter_id: None,
350 confidence: None,
351 evidence: None,
352 }
353 }
354}
355
356#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
368pub struct AddTrustKey200Response {
369 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
370 pub status: Option<String>,
371 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
372 pub tenant_id: Option<String>,
373 #[serde(rename = "key_id", skip_serializing_if = "Option::is_none")]
374 pub key_id: Option<String>,
375}
376
377impl AddTrustKey200Response {
378 pub fn new() -> AddTrustKey200Response {
379 AddTrustKey200Response {
380 status: None,
381 tenant_id: None,
382 key_id: None,
383 }
384 }
385}
386
387#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
399pub struct AddTrustKeyRequest {
400 #[serde(rename = "tenant_id")]
401 pub tenant_id: String,
402 #[serde(rename = "key_id")]
403 pub key_id: String,
404 #[serde(rename = "public_key")]
406 pub public_key: String,
407}
408
409impl AddTrustKeyRequest {
410 pub fn new(tenant_id: String, key_id: String, public_key: String) -> AddTrustKeyRequest {
411 AddTrustKeyRequest {
412 tenant_id,
413 key_id,
414 public_key,
415 }
416 }
417}
418
419#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
431pub struct AgentIdentityProfile {
432 #[serde(rename = "agent_id", skip_serializing_if = "Option::is_none")]
433 pub agent_id: Option<String>,
434 #[serde(rename = "identity_type", skip_serializing_if = "Option::is_none")]
435 pub identity_type: Option<String>,
436 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
437 pub subject: Option<String>,
438 #[serde(rename = "issuer", skip_serializing_if = "Option::is_none")]
439 pub issuer: Option<String>,
440 #[serde(rename = "jwks_uri", skip_serializing_if = "Option::is_none")]
441 pub jwks_uri: Option<String>,
442 #[serde(rename = "spiffe_id", skip_serializing_if = "Option::is_none")]
443 pub spiffe_id: Option<String>,
444 #[serde(rename = "scopes", skip_serializing_if = "Option::is_none")]
445 pub scopes: Option<Vec<String>>,
446 #[serde(rename = "anonymous_dev_mode", skip_serializing_if = "Option::is_none")]
447 pub anonymous_dev_mode: Option<bool>,
448 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
449 pub created_at: Option<String>,
450}
451
452impl AgentIdentityProfile {
453 pub fn new() -> AgentIdentityProfile {
454 AgentIdentityProfile {
455 agent_id: None,
456 identity_type: None,
457 subject: None,
458 issuer: None,
459 jwks_uri: None,
460 spiffe_id: None,
461 scopes: None,
462 anonymous_dev_mode: None,
463 created_at: None,
464 }
465 }
466}
467
468#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
480pub struct ApprovalCeremony {
481 #[serde(rename = "approval_id", skip_serializing_if = "Option::is_none")]
482 pub approval_id: Option<String>,
483 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
484 pub subject: Option<String>,
485 #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
486 pub action: Option<String>,
487 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
488 pub state: Option<ApprovalCeremonyState>,
489 #[serde(rename = "requested_by", skip_serializing_if = "Option::is_none")]
490 pub requested_by: Option<String>,
491 #[serde(rename = "approvers", skip_serializing_if = "Option::is_none")]
492 pub approvers: Option<Vec<String>>,
493 #[serde(rename = "quorum", skip_serializing_if = "Option::is_none")]
494 pub quorum: Option<i32>,
495 #[serde(rename = "timelock_until", skip_serializing_if = "Option::is_none")]
496 pub timelock_until: Option<String>,
497 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
498 pub expires_at: Option<String>,
499 #[serde(rename = "break_glass", skip_serializing_if = "Option::is_none")]
500 pub break_glass: Option<bool>,
501 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
502 pub reason: Option<String>,
503 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
504 pub receipt_id: Option<String>,
505 #[serde(rename = "ceremony_hash", skip_serializing_if = "Option::is_none")]
506 pub ceremony_hash: Option<String>,
507 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
508 pub created_at: Option<String>,
509 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
510 pub updated_at: Option<String>,
511}
512
513impl ApprovalCeremony {
514 pub fn new() -> ApprovalCeremony {
515 ApprovalCeremony {
516 approval_id: None,
517 subject: None,
518 action: None,
519 state: None,
520 requested_by: None,
521 approvers: None,
522 quorum: None,
523 timelock_until: None,
524 expires_at: None,
525 break_glass: None,
526 reason: None,
527 receipt_id: None,
528 ceremony_hash: None,
529 created_at: None,
530 updated_at: None,
531 }
532 }
533}
534#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
536pub enum ApprovalCeremonyState {
537 #[serde(rename = "pending")]
538 Pending,
539 #[serde(rename = "approved")]
540 Approved,
541 #[serde(rename = "denied")]
542 Denied,
543 #[serde(rename = "revoked")]
544 Revoked,
545 #[serde(rename = "expired")]
546 Expired,
547}
548
549impl Default for ApprovalCeremonyState {
550 fn default() -> ApprovalCeremonyState {
551 Self::Pending
552 }
553}
554
555#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
567pub struct ApprovalRequest {
568 #[serde(rename = "intent_hash")]
570 pub intent_hash: String,
571 #[serde(rename = "signature_b64")]
573 pub signature_b64: String,
574 #[serde(rename = "public_key_b64")]
576 pub public_key_b64: String,
577 #[serde(rename = "challenge_response", skip_serializing_if = "Option::is_none")]
579 pub challenge_response: Option<String>,
580}
581
582impl ApprovalRequest {
583 pub fn new(intent_hash: String, signature_b64: String, public_key_b64: String) -> ApprovalRequest {
584 ApprovalRequest {
585 intent_hash,
586 signature_b64,
587 public_key_b64,
588 challenge_response: None,
589 }
590 }
591}
592
593#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
605pub struct ApproveLaunchpadMcpToolsRequest {
606 #[serde(rename = "server_id")]
607 pub server_id: String,
608 #[serde(rename = "tools")]
609 pub tools: Vec<String>,
610 #[serde(rename = "ttl", skip_serializing_if = "Option::is_none")]
611 pub ttl: Option<String>,
612 #[serde(rename = "reason")]
613 pub reason: String,
614 #[serde(rename = "approver", skip_serializing_if = "Option::is_none")]
615 pub approver: Option<String>,
616}
617
618impl ApproveLaunchpadMcpToolsRequest {
619 pub fn new(server_id: String, tools: Vec<String>, reason: String) -> ApproveLaunchpadMcpToolsRequest {
620 ApproveLaunchpadMcpToolsRequest {
621 server_id,
622 tools,
623 ttl: None,
624 reason,
625 approver: None,
626 }
627 }
628}
629
630#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
642pub struct AssertApprovalWebAuthnChallengeRequest {
643 #[serde(rename = "challenge_id")]
644 pub challenge_id: String,
645 #[serde(rename = "actor")]
646 pub actor: String,
647 #[serde(rename = "assertion")]
648 pub assertion: String,
649 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
650 pub receipt_id: Option<String>,
651 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
652 pub reason: Option<String>,
653}
654
655impl AssertApprovalWebAuthnChallengeRequest {
656 pub fn new(challenge_id: String, actor: String, assertion: String) -> AssertApprovalWebAuthnChallengeRequest {
657 AssertApprovalWebAuthnChallengeRequest {
658 challenge_id,
659 actor,
660 assertion,
661 receipt_id: None,
662 reason: None,
663 }
664 }
665}
666
667#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
679pub struct AuthzHealth {
680 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
681 pub status: Option<String>,
682 #[serde(rename = "resolver", skip_serializing_if = "Option::is_none")]
683 pub resolver: Option<String>,
684 #[serde(rename = "model_id", skip_serializing_if = "Option::is_none")]
685 pub model_id: Option<String>,
686 #[serde(rename = "relationship_hash", skip_serializing_if = "Option::is_none")]
687 pub relationship_hash: Option<String>,
688 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
689 pub checked_at: Option<String>,
690}
691
692impl AuthzHealth {
693 pub fn new() -> AuthzHealth {
694 AuthzHealth {
695 status: None,
696 resolver: None,
697 model_id: None,
698 relationship_hash: None,
699 checked_at: None,
700 }
701 }
702}
703
704#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
716pub struct AuthzSnapshot {
717 #[serde(rename = "snapshot_id", skip_serializing_if = "Option::is_none")]
718 pub snapshot_id: Option<String>,
719 #[serde(rename = "model_id", skip_serializing_if = "Option::is_none")]
720 pub model_id: Option<String>,
721 #[serde(rename = "relationship_hash", skip_serializing_if = "Option::is_none")]
722 pub relationship_hash: Option<String>,
723 #[serde(rename = "tuple_count", skip_serializing_if = "Option::is_none")]
724 pub tuple_count: Option<i32>,
725 #[serde(rename = "resolver", skip_serializing_if = "Option::is_none")]
726 pub resolver: Option<String>,
727 #[serde(rename = "stale", skip_serializing_if = "Option::is_none")]
728 pub stale: Option<bool>,
729 #[serde(rename = "snapshot_token", skip_serializing_if = "Option::is_none")]
730 pub snapshot_token: Option<String>,
731 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
732 pub checked_at: Option<String>,
733 #[serde(rename = "snapshot_hash", skip_serializing_if = "Option::is_none")]
734 pub snapshot_hash: Option<String>,
735}
736
737impl AuthzSnapshot {
738 pub fn new() -> AuthzSnapshot {
739 AuthzSnapshot {
740 snapshot_id: None,
741 model_id: None,
742 relationship_hash: None,
743 tuple_count: None,
744 resolver: None,
745 stale: None,
746 snapshot_token: None,
747 checked_at: None,
748 snapshot_hash: None,
749 }
750 }
751}
752
753#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
765pub struct BindLaunchpadSecretGrantRequest {
766 #[serde(rename = "name")]
767 pub name: String,
768 #[serde(rename = "provider")]
769 pub provider: String,
770 #[serde(rename = "value_env")]
771 pub value_env: String,
772}
773
774impl BindLaunchpadSecretGrantRequest {
775 pub fn new(name: String, provider: String, value_env: String) -> BindLaunchpadSecretGrantRequest {
776 BindLaunchpadSecretGrantRequest {
777 name,
778 provider,
779 value_env,
780 }
781 }
782}
783
784#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
796pub struct BoundaryCapabilitySummary {
797 #[serde(rename = "capability_id", skip_serializing_if = "Option::is_none")]
798 pub capability_id: Option<String>,
799 #[serde(rename = "category", skip_serializing_if = "Option::is_none")]
800 pub category: Option<String>,
801 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
802 pub status: Option<String>,
803 #[serde(rename = "authority", skip_serializing_if = "Option::is_none")]
804 pub authority: Option<String>,
805 #[serde(rename = "public_routes", skip_serializing_if = "Option::is_none")]
806 pub public_routes: Option<Vec<String>>,
807 #[serde(rename = "cli_commands", skip_serializing_if = "Option::is_none")]
808 pub cli_commands: Option<Vec<String>>,
809 #[serde(rename = "receipt_bindings", skip_serializing_if = "Option::is_none")]
810 pub receipt_bindings: Option<Vec<String>>,
811 #[serde(rename = "conformance_level", skip_serializing_if = "Option::is_none")]
812 pub conformance_level: Option<String>,
813}
814
815impl BoundaryCapabilitySummary {
816 pub fn new() -> BoundaryCapabilitySummary {
817 BoundaryCapabilitySummary {
818 capability_id: None,
819 category: None,
820 status: None,
821 authority: None,
822 public_routes: None,
823 cli_commands: None,
824 receipt_bindings: None,
825 conformance_level: None,
826 }
827 }
828}
829
830#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
842pub struct BoundaryCheckpoint {
843 #[serde(rename = "checkpoint_id", skip_serializing_if = "Option::is_none")]
844 pub checkpoint_id: Option<String>,
845 #[serde(rename = "sequence", skip_serializing_if = "Option::is_none")]
846 pub sequence: Option<i64>,
847 #[serde(rename = "previous_checkpoint_hash", skip_serializing_if = "Option::is_none")]
848 pub previous_checkpoint_hash: Option<String>,
849 #[serde(rename = "receipt_count", skip_serializing_if = "Option::is_none")]
850 pub receipt_count: Option<i32>,
851 #[serde(rename = "record_count", skip_serializing_if = "Option::is_none")]
852 pub record_count: Option<i32>,
853 #[serde(rename = "root_hash", skip_serializing_if = "Option::is_none")]
854 pub root_hash: Option<String>,
855 #[serde(rename = "checkpoint_hash", skip_serializing_if = "Option::is_none")]
856 pub checkpoint_hash: Option<String>,
857 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
858 pub created_at: Option<String>,
859}
860
861impl BoundaryCheckpoint {
862 pub fn new() -> BoundaryCheckpoint {
863 BoundaryCheckpoint {
864 checkpoint_id: None,
865 sequence: None,
866 previous_checkpoint_hash: None,
867 receipt_count: None,
868 record_count: None,
869 root_hash: None,
870 checkpoint_hash: None,
871 created_at: None,
872 }
873 }
874}
875
876#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
888pub struct BoundaryRecordVerification {
889 #[serde(rename = "record_id", skip_serializing_if = "Option::is_none")]
890 pub record_id: Option<String>,
891 #[serde(rename = "record_hash", skip_serializing_if = "Option::is_none")]
892 pub record_hash: Option<String>,
893 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
894 pub receipt_id: Option<String>,
895 #[serde(rename = "verified", skip_serializing_if = "Option::is_none")]
896 pub verified: Option<bool>,
897 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
898 pub errors: Option<Vec<String>>,
899 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
900 pub checked_at: Option<String>,
901}
902
903impl BoundaryRecordVerification {
904 pub fn new() -> BoundaryRecordVerification {
905 BoundaryRecordVerification {
906 record_id: None,
907 record_hash: None,
908 receipt_id: None,
909 verified: None,
910 errors: None,
911 checked_at: None,
912 }
913 }
914}
915
916#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
928pub struct BoundaryStatus {
929 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
930 pub version: Option<String>,
931 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
932 pub status: Option<String>,
933 #[serde(rename = "receipt_store_ready", skip_serializing_if = "Option::is_none")]
934 pub receipt_store_ready: Option<bool>,
935 #[serde(rename = "signer_ready", skip_serializing_if = "Option::is_none")]
936 pub signer_ready: Option<bool>,
937 #[serde(rename = "open_approvals", skip_serializing_if = "Option::is_none")]
938 pub open_approvals: Option<i32>,
939 #[serde(rename = "quarantined_mcp_servers", skip_serializing_if = "Option::is_none")]
940 pub quarantined_mcp_servers: Option<i32>,
941 #[serde(rename = "last_checkpoint_id", skip_serializing_if = "Option::is_none")]
942 pub last_checkpoint_id: Option<String>,
943 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
944 pub checked_at: Option<String>,
945}
946
947impl BoundaryStatus {
948 pub fn new() -> BoundaryStatus {
949 BoundaryStatus {
950 version: None,
951 status: None,
952 receipt_store_ready: None,
953 signer_ready: None,
954 open_approvals: None,
955 quarantined_mcp_servers: None,
956 last_checkpoint_id: None,
957 checked_at: None,
958 }
959 }
960}
961
962#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
974pub struct BudgetCeiling {
975 #[serde(rename = "budget_id", skip_serializing_if = "Option::is_none")]
976 pub budget_id: Option<String>,
977 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
978 pub subject: Option<String>,
979 #[serde(rename = "window", skip_serializing_if = "Option::is_none")]
980 pub window: Option<String>,
981 #[serde(rename = "max_tool_calls", skip_serializing_if = "Option::is_none")]
982 pub max_tool_calls: Option<i32>,
983 #[serde(rename = "max_spend_minor", skip_serializing_if = "Option::is_none")]
984 pub max_spend_minor: Option<i64>,
985 #[serde(rename = "max_egress_bytes", skip_serializing_if = "Option::is_none")]
986 pub max_egress_bytes: Option<i64>,
987 #[serde(rename = "max_write_ops", skip_serializing_if = "Option::is_none")]
988 pub max_write_ops: Option<i32>,
989 #[serde(rename = "approval_required_after", skip_serializing_if = "Option::is_none")]
990 pub approval_required_after: Option<i32>,
991 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
992 pub policy_epoch: Option<String>,
993}
994
995impl BudgetCeiling {
996 pub fn new() -> BudgetCeiling {
997 BudgetCeiling {
998 budget_id: None,
999 subject: None,
1000 window: None,
1001 max_tool_calls: None,
1002 max_spend_minor: None,
1003 max_egress_bytes: None,
1004 max_write_ops: None,
1005 approval_required_after: None,
1006 policy_epoch: None,
1007 }
1008 }
1009}
1010
1011#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1023pub struct BuildStrategy {
1024 #[serde(rename = "strategy", skip_serializing_if = "Option::is_none")]
1025 pub strategy: Option<String>,
1026 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
1027 pub confidence: Option<f64>,
1028 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
1029 pub reason: Option<String>,
1030 #[serde(rename = "commands", skip_serializing_if = "Option::is_none")]
1031 pub commands: Option<Vec<Vec<String>>>,
1032 #[serde(rename = "manifest_sources", skip_serializing_if = "Option::is_none")]
1033 pub manifest_sources: Option<Vec<String>>,
1034}
1035
1036impl BuildStrategy {
1037 pub fn new() -> BuildStrategy {
1038 BuildStrategy {
1039 strategy: None,
1040 confidence: None,
1041 reason: None,
1042 commands: None,
1043 manifest_sources: None,
1044 }
1045 }
1046}
1047
1048#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1060pub struct CapabilityGraph {
1061 #[serde(rename = "capabilities", skip_serializing_if = "Option::is_none")]
1062 pub capabilities: Option<Vec<String>>,
1063 #[serde(rename = "modules", skip_serializing_if = "Option::is_none")]
1064 pub modules: Option<Vec<DetectedModule>>,
1065 #[serde(rename = "frameworks", skip_serializing_if = "Option::is_none")]
1066 pub frameworks: Option<Vec<DetectedFramework>>,
1067 #[serde(rename = "secrets", skip_serializing_if = "Option::is_none")]
1068 pub secrets: Option<Vec<SecretContract>>,
1069 #[serde(rename = "oauth", skip_serializing_if = "Option::is_none")]
1070 pub oauth: Option<Vec<OAuthRequirement>>,
1071 #[serde(rename = "ports", skip_serializing_if = "Option::is_none")]
1072 pub ports: Option<Vec<i32>>,
1073 #[serde(rename = "build_signals", skip_serializing_if = "Option::is_none")]
1074 pub build_signals: Option<Vec<String>>,
1075 #[serde(rename = "runtime_signals", skip_serializing_if = "Option::is_none")]
1076 pub runtime_signals: Option<Vec<String>>,
1077 #[serde(rename = "policy_signals", skip_serializing_if = "Option::is_none")]
1078 pub policy_signals: Option<Vec<String>>,
1079 #[serde(rename = "security_signals", skip_serializing_if = "Option::is_none")]
1080 pub security_signals: Option<Vec<String>>,
1081 #[serde(rename = "adapter_matches", skip_serializing_if = "Option::is_none")]
1082 pub adapter_matches: Option<Vec<AdapterMatch>>,
1083 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
1084 pub confidence: Option<f64>,
1085 #[serde(rename = "confidence_reason", skip_serializing_if = "Option::is_none")]
1086 pub confidence_reason: Option<String>,
1087}
1088
1089impl CapabilityGraph {
1090 pub fn new() -> CapabilityGraph {
1091 CapabilityGraph {
1092 capabilities: None,
1093 modules: None,
1094 frameworks: None,
1095 secrets: None,
1096 oauth: None,
1097 ports: None,
1098 build_signals: None,
1099 runtime_signals: None,
1100 policy_signals: None,
1101 security_signals: None,
1102 adapter_matches: None,
1103 confidence: None,
1104 confidence_reason: None,
1105 }
1106 }
1107}
1108
1109#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1121pub struct ChatCompletionRequest {
1122 #[serde(rename = "model")]
1123 pub model: String,
1124 #[serde(rename = "messages")]
1125 pub messages: Vec<ChatCompletionRequestMessagesInner>,
1126 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
1127 pub tools: Option<Vec<ChatCompletionRequestToolsInner>>,
1128 #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
1129 pub temperature: Option<f64>,
1130 #[serde(rename = "max_tokens", skip_serializing_if = "Option::is_none")]
1131 pub max_tokens: Option<i32>,
1132 #[serde(rename = "stream", skip_serializing_if = "Option::is_none")]
1133 pub stream: Option<bool>,
1134}
1135
1136impl ChatCompletionRequest {
1137 pub fn new(model: String, messages: Vec<ChatCompletionRequestMessagesInner>) -> ChatCompletionRequest {
1138 ChatCompletionRequest {
1139 model,
1140 messages,
1141 tools: None,
1142 temperature: None,
1143 max_tokens: None,
1144 stream: None,
1145 }
1146 }
1147}
1148
1149#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1161pub struct ChatCompletionRequestMessagesInner {
1162 #[serde(rename = "role")]
1163 pub role: ChatCompletionRequestMessagesInnerRole,
1164 #[serde(rename = "content")]
1165 pub content: String,
1166 #[serde(rename = "tool_call_id", skip_serializing_if = "Option::is_none")]
1167 pub tool_call_id: Option<String>,
1168}
1169
1170impl ChatCompletionRequestMessagesInner {
1171 pub fn new(role: ChatCompletionRequestMessagesInnerRole, content: String) -> ChatCompletionRequestMessagesInner {
1172 ChatCompletionRequestMessagesInner {
1173 role,
1174 content,
1175 tool_call_id: None,
1176 }
1177 }
1178}
1179#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1181pub enum ChatCompletionRequestMessagesInnerRole {
1182 #[serde(rename = "system")]
1183 System,
1184 #[serde(rename = "user")]
1185 User,
1186 #[serde(rename = "assistant")]
1187 Assistant,
1188 #[serde(rename = "tool")]
1189 Tool,
1190}
1191
1192impl Default for ChatCompletionRequestMessagesInnerRole {
1193 fn default() -> ChatCompletionRequestMessagesInnerRole {
1194 Self::System
1195 }
1196}
1197
1198#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1210pub struct ChatCompletionRequestToolsInner {
1211 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
1212 pub r#type: Option<ChatCompletionRequestToolsInnerType>,
1213 #[serde(rename = "function", skip_serializing_if = "Option::is_none")]
1214 pub function: Option<Box<ChatCompletionRequestToolsInnerFunction>>,
1215}
1216
1217impl ChatCompletionRequestToolsInner {
1218 pub fn new() -> ChatCompletionRequestToolsInner {
1219 ChatCompletionRequestToolsInner {
1220 r#type: None,
1221 function: None,
1222 }
1223 }
1224}
1225#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1227pub enum ChatCompletionRequestToolsInnerType {
1228 #[serde(rename = "function")]
1229 Function,
1230}
1231
1232impl Default for ChatCompletionRequestToolsInnerType {
1233 fn default() -> ChatCompletionRequestToolsInnerType {
1234 Self::Function
1235 }
1236}
1237
1238#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1250pub struct ChatCompletionRequestToolsInnerFunction {
1251 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
1252 pub name: Option<String>,
1253 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
1254 pub description: Option<String>,
1255 #[serde(rename = "parameters", skip_serializing_if = "Option::is_none")]
1256 pub parameters: Option<serde_json::Value>,
1257}
1258
1259impl ChatCompletionRequestToolsInnerFunction {
1260 pub fn new() -> ChatCompletionRequestToolsInnerFunction {
1261 ChatCompletionRequestToolsInnerFunction {
1262 name: None,
1263 description: None,
1264 parameters: None,
1265 }
1266 }
1267}
1268
1269#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1281pub struct ChatCompletionResponse {
1282 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
1283 pub id: Option<String>,
1284 #[serde(rename = "object", skip_serializing_if = "Option::is_none")]
1285 pub object: Option<String>,
1286 #[serde(rename = "created", skip_serializing_if = "Option::is_none")]
1287 pub created: Option<i32>,
1288 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
1289 pub model: Option<String>,
1290 #[serde(rename = "choices", skip_serializing_if = "Option::is_none")]
1291 pub choices: Option<Vec<ChatCompletionResponseChoicesInner>>,
1292 #[serde(rename = "usage", skip_serializing_if = "Option::is_none")]
1293 pub usage: Option<Box<ChatCompletionResponseUsage>>,
1294}
1295
1296impl ChatCompletionResponse {
1297 pub fn new() -> ChatCompletionResponse {
1298 ChatCompletionResponse {
1299 id: None,
1300 object: None,
1301 created: None,
1302 model: None,
1303 choices: None,
1304 usage: None,
1305 }
1306 }
1307}
1308
1309#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1321pub struct ChatCompletionResponseChoicesInner {
1322 #[serde(rename = "index", skip_serializing_if = "Option::is_none")]
1323 pub index: Option<i32>,
1324 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
1325 pub message: Option<Box<ChatCompletionResponseChoicesInnerMessage>>,
1326 #[serde(rename = "finish_reason", skip_serializing_if = "Option::is_none")]
1327 pub finish_reason: Option<String>,
1328}
1329
1330impl ChatCompletionResponseChoicesInner {
1331 pub fn new() -> ChatCompletionResponseChoicesInner {
1332 ChatCompletionResponseChoicesInner {
1333 index: None,
1334 message: None,
1335 finish_reason: None,
1336 }
1337 }
1338}
1339
1340#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1352pub struct ChatCompletionResponseChoicesInnerMessage {
1353 #[serde(rename = "role", skip_serializing_if = "Option::is_none")]
1354 pub role: Option<String>,
1355 #[serde(rename = "content", default, skip_serializing_if = "Option::is_none")]
1356 pub content: Option<Option<String>>,
1357 #[serde(rename = "tool_calls", skip_serializing_if = "Option::is_none")]
1358 pub tool_calls: Option<Vec<ChatCompletionResponseChoicesInnerMessageToolCallsInner>>,
1359}
1360
1361impl ChatCompletionResponseChoicesInnerMessage {
1362 pub fn new() -> ChatCompletionResponseChoicesInnerMessage {
1363 ChatCompletionResponseChoicesInnerMessage {
1364 role: None,
1365 content: None,
1366 tool_calls: None,
1367 }
1368 }
1369}
1370
1371#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1383pub struct ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1384 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
1385 pub id: Option<String>,
1386 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
1387 pub r#type: Option<String>,
1388 #[serde(rename = "function", skip_serializing_if = "Option::is_none")]
1389 pub function: Option<Box<ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction>>,
1390}
1391
1392impl ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1393 pub fn new() -> ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1394 ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1395 id: None,
1396 r#type: None,
1397 function: None,
1398 }
1399 }
1400}
1401
1402#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1414pub struct ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1415 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
1416 pub name: Option<String>,
1417 #[serde(rename = "arguments", skip_serializing_if = "Option::is_none")]
1418 pub arguments: Option<String>,
1419}
1420
1421impl ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1422 pub fn new() -> ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1423 ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1424 name: None,
1425 arguments: None,
1426 }
1427 }
1428}
1429
1430#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1442pub struct ChatCompletionResponseUsage {
1443 #[serde(rename = "prompt_tokens", skip_serializing_if = "Option::is_none")]
1444 pub prompt_tokens: Option<i32>,
1445 #[serde(rename = "completion_tokens", skip_serializing_if = "Option::is_none")]
1446 pub completion_tokens: Option<i32>,
1447 #[serde(rename = "total_tokens", skip_serializing_if = "Option::is_none")]
1448 pub total_tokens: Option<i32>,
1449}
1450
1451impl ChatCompletionResponseUsage {
1452 pub fn new() -> ChatCompletionResponseUsage {
1453 ChatCompletionResponseUsage {
1454 prompt_tokens: None,
1455 completion_tokens: None,
1456 total_tokens: None,
1457 }
1458 }
1459}
1460
1461#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1473pub struct CoexistenceCapabilityManifest {
1474 #[serde(rename = "manifest_id", skip_serializing_if = "Option::is_none")]
1475 pub manifest_id: Option<String>,
1476 #[serde(rename = "authority", skip_serializing_if = "Option::is_none")]
1477 pub authority: Option<String>,
1478 #[serde(rename = "boundary_role", skip_serializing_if = "Option::is_none")]
1479 pub boundary_role: Option<String>,
1480 #[serde(rename = "supported_inputs", skip_serializing_if = "Option::is_none")]
1481 pub supported_inputs: Option<Vec<String>>,
1482 #[serde(rename = "export_surfaces", skip_serializing_if = "Option::is_none")]
1483 pub export_surfaces: Option<Vec<String>>,
1484 #[serde(rename = "receipt_bindings", skip_serializing_if = "Option::is_none")]
1485 pub receipt_bindings: Option<Vec<String>>,
1486 #[serde(rename = "generated_at", skip_serializing_if = "Option::is_none")]
1487 pub generated_at: Option<String>,
1488}
1489
1490impl CoexistenceCapabilityManifest {
1491 pub fn new() -> CoexistenceCapabilityManifest {
1492 CoexistenceCapabilityManifest {
1493 manifest_id: None,
1494 authority: None,
1495 boundary_role: None,
1496 supported_inputs: None,
1497 export_surfaces: None,
1498 receipt_bindings: None,
1499 generated_at: None,
1500 }
1501 }
1502}
1503
1504#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1516pub struct ConformanceRequest {
1517 #[serde(rename = "level")]
1518 pub level: ConformanceRequestLevel,
1519 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
1520 pub profile: Option<String>,
1521}
1522
1523impl ConformanceRequest {
1524 pub fn new(level: ConformanceRequestLevel) -> ConformanceRequest {
1525 ConformanceRequest {
1526 level,
1527 profile: None,
1528 }
1529 }
1530}
1531#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1533pub enum ConformanceRequestLevel {
1534 #[serde(rename = "L1")]
1535 L1,
1536 #[serde(rename = "L2")]
1537 L2,
1538}
1539
1540impl Default for ConformanceRequestLevel {
1541 fn default() -> ConformanceRequestLevel {
1542 Self::L1
1543 }
1544}
1545
1546#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1558pub struct ConformanceResult {
1559 #[serde(rename = "report_id", skip_serializing_if = "Option::is_none")]
1560 pub report_id: Option<String>,
1561 #[serde(rename = "level", skip_serializing_if = "Option::is_none")]
1562 pub level: Option<String>,
1563 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
1564 pub verdict: Option<ConformanceResultVerdict>,
1565 #[serde(rename = "gates", skip_serializing_if = "Option::is_none")]
1566 pub gates: Option<i32>,
1567 #[serde(rename = "failed", skip_serializing_if = "Option::is_none")]
1568 pub failed: Option<i32>,
1569 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
1570 pub details: Option<std::collections::HashMap<String, String>>,
1571}
1572
1573impl ConformanceResult {
1574 pub fn new() -> ConformanceResult {
1575 ConformanceResult {
1576 report_id: None,
1577 level: None,
1578 verdict: None,
1579 gates: None,
1580 failed: None,
1581 details: None,
1582 }
1583 }
1584}
1585#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1587pub enum ConformanceResultVerdict {
1588 #[serde(rename = "PASS")]
1589 Pass,
1590 #[serde(rename = "FAIL")]
1591 Fail,
1592}
1593
1594impl Default for ConformanceResultVerdict {
1595 fn default() -> ConformanceResultVerdict {
1596 Self::Pass
1597 }
1598}
1599
1600#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1612pub struct ConsoleBootstrap {
1613 #[serde(rename = "version")]
1614 pub version: Box<VersionInfo>,
1615 #[serde(rename = "workspace")]
1616 pub workspace: Box<ConsoleBootstrapWorkspace>,
1617 #[serde(rename = "health")]
1618 pub health: Box<ConsoleBootstrapHealth>,
1619 #[serde(rename = "counts")]
1620 pub counts: Box<ConsoleBootstrapCounts>,
1621 #[serde(rename = "receipts")]
1622 pub receipts: Vec<Receipt>,
1623 #[serde(rename = "conformance")]
1624 pub conformance: Box<ConsoleBootstrapConformance>,
1625 #[serde(rename = "mcp")]
1626 pub mcp: Box<ConsoleBootstrapMcp>,
1627}
1628
1629impl ConsoleBootstrap {
1630 pub fn new(version: VersionInfo, workspace: ConsoleBootstrapWorkspace, health: ConsoleBootstrapHealth, counts: ConsoleBootstrapCounts, receipts: Vec<Receipt>, conformance: ConsoleBootstrapConformance, mcp: ConsoleBootstrapMcp) -> ConsoleBootstrap {
1631 ConsoleBootstrap {
1632 version: Box::new(version),
1633 workspace: Box::new(workspace),
1634 health: Box::new(health),
1635 counts: Box::new(counts),
1636 receipts,
1637 conformance: Box::new(conformance),
1638 mcp: Box::new(mcp),
1639 }
1640 }
1641}
1642
1643#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1655pub struct ConsoleBootstrapConformance {
1656 #[serde(rename = "level")]
1657 pub level: String,
1658 #[serde(rename = "status")]
1659 pub status: String,
1660 #[serde(rename = "report_id", skip_serializing_if = "Option::is_none")]
1661 pub report_id: Option<String>,
1662}
1663
1664impl ConsoleBootstrapConformance {
1665 pub fn new(level: String, status: String) -> ConsoleBootstrapConformance {
1666 ConsoleBootstrapConformance {
1667 level,
1668 status,
1669 report_id: None,
1670 }
1671 }
1672}
1673
1674#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1686pub struct ConsoleBootstrapCounts {
1687 #[serde(rename = "receipts")]
1688 pub receipts: i32,
1689 #[serde(rename = "pending_approvals")]
1690 pub pending_approvals: i32,
1691 #[serde(rename = "open_incidents")]
1692 pub open_incidents: i32,
1693 #[serde(rename = "mcp_tools")]
1694 pub mcp_tools: i32,
1695}
1696
1697impl ConsoleBootstrapCounts {
1698 pub fn new(receipts: i32, pending_approvals: i32, open_incidents: i32, mcp_tools: i32) -> ConsoleBootstrapCounts {
1699 ConsoleBootstrapCounts {
1700 receipts,
1701 pending_approvals,
1702 open_incidents,
1703 mcp_tools,
1704 }
1705 }
1706}
1707
1708#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1720pub struct ConsoleBootstrapHealth {
1721 #[serde(rename = "kernel")]
1722 pub kernel: String,
1723 #[serde(rename = "policy")]
1724 pub policy: String,
1725 #[serde(rename = "store")]
1726 pub store: String,
1727 #[serde(rename = "conformance")]
1728 pub conformance: String,
1729}
1730
1731impl ConsoleBootstrapHealth {
1732 pub fn new(kernel: String, policy: String, store: String, conformance: String) -> ConsoleBootstrapHealth {
1733 ConsoleBootstrapHealth {
1734 kernel,
1735 policy,
1736 store,
1737 conformance,
1738 }
1739 }
1740}
1741
1742#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1754pub struct ConsoleBootstrapMcp {
1755 #[serde(rename = "authorization")]
1756 pub authorization: String,
1757 #[serde(rename = "scopes")]
1758 pub scopes: Vec<String>,
1759}
1760
1761impl ConsoleBootstrapMcp {
1762 pub fn new(authorization: String, scopes: Vec<String>) -> ConsoleBootstrapMcp {
1763 ConsoleBootstrapMcp {
1764 authorization,
1765 scopes,
1766 }
1767 }
1768}
1769
1770#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1782pub struct ConsoleBootstrapWorkspace {
1783 #[serde(rename = "organization")]
1784 pub organization: String,
1785 #[serde(rename = "project")]
1786 pub project: String,
1787 #[serde(rename = "environment")]
1788 pub environment: String,
1789 #[serde(rename = "mode")]
1790 pub mode: String,
1791}
1792
1793impl ConsoleBootstrapWorkspace {
1794 pub fn new(organization: String, project: String, environment: String, mode: String) -> ConsoleBootstrapWorkspace {
1795 ConsoleBootstrapWorkspace {
1796 organization,
1797 project,
1798 environment,
1799 mode,
1800 }
1801 }
1802}
1803
1804#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1816pub struct ConsoleCapabilities {
1817 #[serde(rename = "entitlements")]
1818 pub entitlements: Vec<String>,
1819 #[serde(rename = "version")]
1820 pub version: String,
1821 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
1822 pub source: Option<String>,
1823 #[serde(rename = "tier_gate", skip_serializing_if = "Option::is_none")]
1824 pub tier_gate: Option<String>,
1825}
1826
1827impl ConsoleCapabilities {
1828 pub fn new(entitlements: Vec<String>, version: String) -> ConsoleCapabilities {
1829 ConsoleCapabilities {
1830 entitlements,
1831 version,
1832 source: None,
1833 tier_gate: None,
1834 }
1835 }
1836}
1837
1838#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1850pub struct ConsoleDiagnostics {
1851 #[serde(rename = "generated_at")]
1852 pub generated_at: String,
1853 #[serde(rename = "runtime")]
1854 pub runtime: std::collections::HashMap<String, serde_json::Value>,
1855 #[serde(rename = "access")]
1856 pub access: std::collections::HashMap<String, serde_json::Value>,
1857 #[serde(rename = "stores")]
1858 pub stores: Vec<ConsoleStoreDiagnostic>,
1859 #[serde(rename = "routes")]
1860 pub routes: Vec<ConsoleRouteDiagnostic>,
1861}
1862
1863impl ConsoleDiagnostics {
1864 pub fn new(generated_at: String, runtime: std::collections::HashMap<String, serde_json::Value>, access: std::collections::HashMap<String, serde_json::Value>, stores: Vec<ConsoleStoreDiagnostic>, routes: Vec<ConsoleRouteDiagnostic>) -> ConsoleDiagnostics {
1865 ConsoleDiagnostics {
1866 generated_at,
1867 runtime,
1868 access,
1869 stores,
1870 routes,
1871 }
1872 }
1873}
1874
1875#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1887pub struct ConsoleRouteDiagnostic {
1888 #[serde(rename = "method")]
1889 pub method: String,
1890 #[serde(rename = "path")]
1891 pub path: String,
1892 #[serde(rename = "mux_pattern", skip_serializing_if = "Option::is_none")]
1893 pub mux_pattern: Option<String>,
1894 #[serde(rename = "auth")]
1895 pub auth: String,
1896 #[serde(rename = "rate_limit", skip_serializing_if = "Option::is_none")]
1897 pub rate_limit: Option<String>,
1898 #[serde(rename = "contract_status")]
1899 pub contract_status: String,
1900 #[serde(rename = "operation_id")]
1901 pub operation_id: String,
1902 #[serde(rename = "owner")]
1903 pub owner: String,
1904 #[serde(rename = "group")]
1905 pub group: String,
1906 #[serde(rename = "ui_coverage", skip_serializing_if = "Option::is_none")]
1907 pub ui_coverage: Option<String>,
1908 #[serde(rename = "unsupported_reason", skip_serializing_if = "Option::is_none")]
1909 pub unsupported_reason: Option<String>,
1910}
1911
1912impl ConsoleRouteDiagnostic {
1913 pub fn new(method: String, path: String, auth: String, contract_status: String, operation_id: String, owner: String, group: String) -> ConsoleRouteDiagnostic {
1914 ConsoleRouteDiagnostic {
1915 method,
1916 path,
1917 mux_pattern: None,
1918 auth,
1919 rate_limit: None,
1920 contract_status,
1921 operation_id,
1922 owner,
1923 group,
1924 ui_coverage: None,
1925 unsupported_reason: None,
1926 }
1927 }
1928}
1929
1930#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1942pub struct ConsoleStoreDiagnostic {
1943 #[serde(rename = "id")]
1944 pub id: String,
1945 #[serde(rename = "label")]
1946 pub label: String,
1947 #[serde(rename = "status")]
1948 pub status: String,
1949 #[serde(rename = "backend")]
1950 pub backend: String,
1951 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
1952 pub source: Option<String>,
1953 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
1954 pub path: Option<String>,
1955 #[serde(rename = "detail", skip_serializing_if = "Option::is_none")]
1956 pub detail: Option<String>,
1957}
1958
1959impl ConsoleStoreDiagnostic {
1960 pub fn new(id: String, label: String, status: String, backend: String) -> ConsoleStoreDiagnostic {
1961 ConsoleStoreDiagnostic {
1962 id,
1963 label,
1964 status,
1965 backend,
1966 source: None,
1967 path: None,
1968 detail: None,
1969 }
1970 }
1971}
1972
1973#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1985pub struct ConsoleSurfaceRef {
1986 #[serde(rename = "id")]
1987 pub id: String,
1988 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
1989 pub label: Option<String>,
1990 #[serde(rename = "group", skip_serializing_if = "Option::is_none")]
1991 pub group: Option<String>,
1992 #[serde(rename = "source")]
1993 pub source: String,
1994 #[serde(rename = "auth", skip_serializing_if = "Option::is_none")]
1995 pub auth: Option<String>,
1996 #[serde(rename = "contract_status", skip_serializing_if = "Option::is_none")]
1997 pub contract_status: Option<String>,
1998 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
1999 pub status: Option<String>,
2000 #[serde(rename = "unsupported_reason", skip_serializing_if = "Option::is_none")]
2001 pub unsupported_reason: Option<String>,
2002 #[serde(rename = "routes", skip_serializing_if = "Option::is_none")]
2003 pub routes: Option<Vec<ConsoleRouteDiagnostic>>,
2004}
2005
2006impl ConsoleSurfaceRef {
2007 pub fn new(id: String, source: String) -> ConsoleSurfaceRef {
2008 ConsoleSurfaceRef {
2009 id,
2010 label: None,
2011 group: None,
2012 source,
2013 auth: None,
2014 contract_status: None,
2015 status: None,
2016 unsupported_reason: None,
2017 routes: None,
2018 }
2019 }
2020}
2021
2022#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2034pub struct ConsoleSurfaceState {
2035 #[serde(rename = "id")]
2036 pub id: String,
2037 #[serde(rename = "status")]
2038 pub status: String,
2039 #[serde(rename = "source")]
2040 pub source: String,
2041 #[serde(rename = "generated_at")]
2042 pub generated_at: String,
2043 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
2044 pub summary: Option<std::collections::HashMap<String, serde_json::Value>>,
2045 #[serde(rename = "records", skip_serializing_if = "Option::is_none")]
2046 pub records: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
2047}
2048
2049impl ConsoleSurfaceState {
2050 pub fn new(id: String, status: String, source: String, generated_at: String) -> ConsoleSurfaceState {
2051 ConsoleSurfaceState {
2052 id,
2053 status,
2054 source,
2055 generated_at,
2056 summary: None,
2057 records: None,
2058 }
2059 }
2060}
2061
2062#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2074pub struct CreateApprovalWebAuthnChallengeRequest {
2075 #[serde(rename = "method", skip_serializing_if = "Option::is_none")]
2076 pub method: Option<String>,
2077 #[serde(rename = "ttl_ms", skip_serializing_if = "Option::is_none")]
2078 pub ttl_ms: Option<i32>,
2079}
2080
2081impl CreateApprovalWebAuthnChallengeRequest {
2082 pub fn new() -> CreateApprovalWebAuthnChallengeRequest {
2083 CreateApprovalWebAuthnChallengeRequest {
2084 method: None,
2085 ttl_ms: None,
2086 }
2087 }
2088}
2089
2090#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2102pub struct CreateLaunchpadImport202Response {
2103 #[serde(rename = "import")]
2104 pub import: Box<LaunchpadImportRecord>,
2105 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
2106 pub cli_equivalent: Option<String>,
2107}
2108
2109impl CreateLaunchpadImport202Response {
2110 pub fn new(import: LaunchpadImportRecord) -> CreateLaunchpadImport202Response {
2111 CreateLaunchpadImport202Response {
2112 import: Box::new(import),
2113 cli_equivalent: None,
2114 }
2115 }
2116}
2117
2118#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2130pub struct CreateSandboxGrantRequest {
2131 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
2132 pub runtime: Option<String>,
2133 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
2134 pub profile: Option<String>,
2135 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
2136 pub image_digest: Option<String>,
2137 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
2138 pub policy_epoch: Option<String>,
2139}
2140
2141impl CreateSandboxGrantRequest {
2142 pub fn new() -> CreateSandboxGrantRequest {
2143 CreateSandboxGrantRequest {
2144 runtime: None,
2145 profile: None,
2146 image_digest: None,
2147 policy_epoch: None,
2148 }
2149 }
2150}
2151
2152#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2164pub struct DecisionRecord {
2165 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
2166 pub id: Option<String>,
2167 #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
2168 pub action: Option<String>,
2169 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
2170 pub resource: Option<String>,
2171 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
2172 pub verdict: Option<String>,
2173 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
2174 pub reason: Option<String>,
2175 #[serde(rename = "policy_version", skip_serializing_if = "Option::is_none")]
2176 pub policy_version: Option<String>,
2177 #[serde(rename = "policy_decision_hash", skip_serializing_if = "Option::is_none")]
2178 pub policy_decision_hash: Option<String>,
2179 #[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
2180 pub signature: Option<String>,
2181}
2182
2183impl DecisionRecord {
2184 pub fn new() -> DecisionRecord {
2185 DecisionRecord {
2186 id: None,
2187 action: None,
2188 resource: None,
2189 verdict: None,
2190 reason: None,
2191 policy_version: None,
2192 policy_decision_hash: None,
2193 signature: None,
2194 }
2195 }
2196}
2197
2198#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2210pub struct DecisionRequest {
2211 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
2212 pub principal: Option<String>,
2213 #[serde(rename = "action")]
2214 pub action: String,
2215 #[serde(rename = "resource")]
2216 pub resource: String,
2217 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
2218 pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
2219}
2220
2221impl DecisionRequest {
2222 pub fn new(action: String, resource: String) -> DecisionRequest {
2223 DecisionRequest {
2224 principal: None,
2225 action,
2226 resource,
2227 context: None,
2228 }
2229 }
2230}
2231
2232#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2244pub struct DetectedFramework {
2245 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
2246 pub id: Option<String>,
2247 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
2248 pub name: Option<String>,
2249 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
2250 pub confidence: Option<f64>,
2251 #[serde(rename = "evidence", skip_serializing_if = "Option::is_none")]
2252 pub evidence: Option<Vec<String>>,
2253}
2254
2255impl DetectedFramework {
2256 pub fn new() -> DetectedFramework {
2257 DetectedFramework {
2258 id: None,
2259 name: None,
2260 confidence: None,
2261 evidence: None,
2262 }
2263 }
2264}
2265
2266#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2278pub struct DetectedModule {
2279 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
2280 pub path: Option<String>,
2281 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
2282 pub kind: Option<String>,
2283 #[serde(rename = "manifests", skip_serializing_if = "Option::is_none")]
2284 pub manifests: Option<Vec<String>>,
2285 #[serde(rename = "entrypoints", skip_serializing_if = "Option::is_none")]
2286 pub entrypoints: Option<Vec<String>>,
2287 #[serde(rename = "build_strategy", skip_serializing_if = "Option::is_none")]
2288 pub build_strategy: Option<String>,
2289}
2290
2291impl DetectedModule {
2292 pub fn new() -> DetectedModule {
2293 DetectedModule {
2294 path: None,
2295 kind: None,
2296 manifests: None,
2297 entrypoints: None,
2298 build_strategy: None,
2299 }
2300 }
2301}
2302
2303#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2316pub struct Effect {
2317 #[serde(rename = "effect_type")]
2319 pub effect_type: String,
2320 #[serde(rename = "effect_id")]
2322 pub effect_id: String,
2323 #[serde(rename = "params")]
2325 pub params: std::collections::HashMap<String, serde_json::Value>,
2326 #[serde(rename = "budget_id", skip_serializing_if = "Option::is_none")]
2328 pub budget_id: Option<String>,
2329}
2330
2331impl Effect {
2332 pub fn new(effect_type: String, effect_id: String, params: std::collections::HashMap<String, serde_json::Value>) -> Effect {
2334 Effect {
2335 effect_type,
2336 effect_id,
2337 params,
2338 budget_id: None,
2339 }
2340 }
2341}
2342
2343#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2356pub struct EffectBoundary {
2357 #[serde(rename = "effect")]
2358 pub effect: Box<Effect>,
2359 #[serde(rename = "principal")]
2361 pub principal: String,
2362 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
2364 pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
2365}
2366
2367impl EffectBoundary {
2368 pub fn new(effect: Effect, principal: String) -> EffectBoundary {
2370 EffectBoundary {
2371 effect: Box::new(effect),
2372 principal,
2373 context: None,
2374 }
2375 }
2376}
2377
2378#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2390pub struct EntitlementCapabilities {
2391 #[serde(rename = "demo_launch", skip_serializing_if = "Option::is_none")]
2392 pub demo_launch: Option<bool>,
2393 #[serde(rename = "local_launch", skip_serializing_if = "Option::is_none")]
2394 pub local_launch: Option<bool>,
2395 #[serde(rename = "cloud_launch", skip_serializing_if = "Option::is_none")]
2396 pub cloud_launch: Option<bool>,
2397 #[serde(rename = "custom_policy", skip_serializing_if = "Option::is_none")]
2398 pub custom_policy: Option<bool>,
2399 #[serde(rename = "bring_own_secrets", skip_serializing_if = "Option::is_none")]
2400 pub bring_own_secrets: Option<bool>,
2401 #[serde(rename = "evidence_export", skip_serializing_if = "Option::is_none")]
2402 pub evidence_export: Option<bool>,
2403 #[serde(rename = "offline_verify", skip_serializing_if = "Option::is_none")]
2404 pub offline_verify: Option<bool>,
2405 #[serde(rename = "team_admin", skip_serializing_if = "Option::is_none")]
2406 pub team_admin: Option<bool>,
2407 #[serde(rename = "sso", skip_serializing_if = "Option::is_none")]
2408 pub sso: Option<bool>,
2409 #[serde(rename = "legal_hold", skip_serializing_if = "Option::is_none")]
2410 pub legal_hold: Option<bool>,
2411 #[serde(rename = "certified_connectors", skip_serializing_if = "Option::is_none")]
2412 pub certified_connectors: Option<bool>,
2413 #[serde(rename = "enterprise_retention", skip_serializing_if = "Option::is_none")]
2414 pub enterprise_retention: Option<bool>,
2415}
2416
2417impl EntitlementCapabilities {
2418 pub fn new() -> EntitlementCapabilities {
2419 EntitlementCapabilities {
2420 demo_launch: None,
2421 local_launch: None,
2422 cloud_launch: None,
2423 custom_policy: None,
2424 bring_own_secrets: None,
2425 evidence_export: None,
2426 offline_verify: None,
2427 team_admin: None,
2428 sso: None,
2429 legal_hold: None,
2430 certified_connectors: None,
2431 enterprise_retention: None,
2432 }
2433 }
2434}
2435
2436#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2448pub struct EntitlementDecision {
2449 #[serde(rename = "allowed", skip_serializing_if = "Option::is_none")]
2450 pub allowed: Option<bool>,
2451 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
2452 pub user_state: Option<EntitlementDecisionUserState>,
2453 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
2454 pub required_capability: Option<String>,
2455 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
2456 pub reason_code: Option<String>,
2457 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
2458 pub reason: Option<String>,
2459 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
2460 pub upgrade_reason: Option<String>,
2461 #[serde(rename = "limit", skip_serializing_if = "Option::is_none")]
2462 pub limit: Option<i64>,
2463 #[serde(rename = "used", skip_serializing_if = "Option::is_none")]
2464 pub used: Option<i64>,
2465 #[serde(rename = "remaining", skip_serializing_if = "Option::is_none")]
2466 pub remaining: Option<i64>,
2467 #[serde(rename = "decision_ref", skip_serializing_if = "Option::is_none")]
2468 pub decision_ref: Option<String>,
2469 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
2470 pub source: Option<String>,
2471 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
2472 pub expires_at: Option<String>,
2473}
2474
2475impl EntitlementDecision {
2476 pub fn new() -> EntitlementDecision {
2477 EntitlementDecision {
2478 allowed: None,
2479 user_state: None,
2480 required_capability: None,
2481 reason_code: None,
2482 reason: None,
2483 upgrade_reason: None,
2484 limit: None,
2485 used: None,
2486 remaining: None,
2487 decision_ref: None,
2488 source: None,
2489 expires_at: None,
2490 }
2491 }
2492}
2493#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2495pub enum EntitlementDecisionUserState {
2496 #[serde(rename = "available")]
2497 Available,
2498 #[serde(rename = "needs_setup")]
2499 NeedsSetup,
2500 #[serde(rename = "upgrade_required")]
2501 UpgradeRequired,
2502 #[serde(rename = "enterprise_controlled")]
2503 EnterpriseControlled,
2504 #[serde(rename = "blocked")]
2505 Blocked,
2506 #[serde(rename = "unsupported")]
2507 Unsupported,
2508}
2509
2510impl Default for EntitlementDecisionUserState {
2511 fn default() -> EntitlementDecisionUserState {
2512 Self::Available
2513 }
2514}
2515
2516#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2528pub struct EntitlementDecisionRequest {
2529 #[serde(rename = "principal_id", skip_serializing_if = "Option::is_none")]
2530 pub principal_id: Option<String>,
2531 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
2532 pub tenant_id: Option<String>,
2533 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
2534 pub workspace_id: Option<String>,
2535 #[serde(rename = "action")]
2536 pub action: String,
2537 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
2538 pub app_id: Option<String>,
2539 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
2540 pub substrate_id: Option<String>,
2541 #[serde(rename = "target", skip_serializing_if = "Option::is_none")]
2542 pub target: Option<String>,
2543 #[serde(rename = "current_usage", skip_serializing_if = "Option::is_none")]
2544 pub current_usage: Option<Box<EntitlementDecisionRequestCurrentUsage>>,
2545 #[serde(rename = "run_id", skip_serializing_if = "Option::is_none")]
2546 pub run_id: Option<String>,
2547}
2548
2549impl EntitlementDecisionRequest {
2550 pub fn new(action: String) -> EntitlementDecisionRequest {
2551 EntitlementDecisionRequest {
2552 principal_id: None,
2553 tenant_id: None,
2554 workspace_id: None,
2555 action,
2556 app_id: None,
2557 substrate_id: None,
2558 target: None,
2559 current_usage: None,
2560 run_id: None,
2561 }
2562 }
2563}
2564
2565#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2577pub struct EntitlementDecisionRequestCurrentUsage {
2578 #[serde(rename = "monthly_launches", default, skip_serializing_if = "Option::is_none")]
2579 pub monthly_launches: Option<Option<serde_json::Value>>,
2580 #[serde(rename = "concurrent_runs", default, skip_serializing_if = "Option::is_none")]
2581 pub concurrent_runs: Option<Option<serde_json::Value>>,
2582 #[serde(rename = "cloud_targets", default, skip_serializing_if = "Option::is_none")]
2583 pub cloud_targets: Option<Option<serde_json::Value>>,
2584}
2585
2586impl EntitlementDecisionRequestCurrentUsage {
2587 pub fn new() -> EntitlementDecisionRequestCurrentUsage {
2588 EntitlementDecisionRequestCurrentUsage {
2589 monthly_launches: None,
2590 concurrent_runs: None,
2591 cloud_targets: None,
2592 }
2593 }
2594}
2595
2596#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2608pub struct EntitlementLimits {
2609 #[serde(rename = "monthly_launches", default, skip_serializing_if = "Option::is_none")]
2610 pub monthly_launches: Option<Option<serde_json::Value>>,
2611 #[serde(rename = "concurrent_runs", default, skip_serializing_if = "Option::is_none")]
2612 pub concurrent_runs: Option<Option<serde_json::Value>>,
2613 #[serde(rename = "retention_days", default, skip_serializing_if = "Option::is_none")]
2614 pub retention_days: Option<Option<serde_json::Value>>,
2615 #[serde(rename = "max_cloud_targets", default, skip_serializing_if = "Option::is_none")]
2616 pub max_cloud_targets: Option<Option<serde_json::Value>>,
2617 #[serde(rename = "evidence_export_mb", default, skip_serializing_if = "Option::is_none")]
2618 pub evidence_export_mb: Option<Option<serde_json::Value>>,
2619 #[serde(rename = "connector_certification_scope", skip_serializing_if = "Option::is_none")]
2620 pub connector_certification_scope: Option<String>,
2621}
2622
2623impl EntitlementLimits {
2624 pub fn new() -> EntitlementLimits {
2625 EntitlementLimits {
2626 monthly_launches: None,
2627 concurrent_runs: None,
2628 retention_days: None,
2629 max_cloud_targets: None,
2630 evidence_export_mb: None,
2631 connector_certification_scope: None,
2632 }
2633 }
2634}
2635
2636#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2648pub struct EnvExposurePolicy {
2649 #[serde(rename = "mode")]
2650 pub mode: EnvExposurePolicyMode,
2651 #[serde(rename = "names", skip_serializing_if = "Option::is_none")]
2652 pub names: Option<Vec<String>>,
2653 #[serde(rename = "names_hash", skip_serializing_if = "Option::is_none")]
2654 pub names_hash: Option<String>,
2655 #[serde(rename = "redacted", skip_serializing_if = "Option::is_none")]
2656 pub redacted: Option<bool>,
2657}
2658
2659impl EnvExposurePolicy {
2660 pub fn new(mode: EnvExposurePolicyMode) -> EnvExposurePolicy {
2661 EnvExposurePolicy {
2662 mode,
2663 names: None,
2664 names_hash: None,
2665 redacted: None,
2666 }
2667 }
2668}
2669#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2671pub enum EnvExposurePolicyMode {
2672 #[serde(rename = "deny-all")]
2673 DenyAll,
2674 #[serde(rename = "allowlist")]
2675 Allowlist,
2676 #[serde(rename = "redacted")]
2677 Redacted,
2678}
2679
2680impl Default for EnvExposurePolicyMode {
2681 fn default() -> EnvExposurePolicyMode {
2682 Self::DenyAll
2683 }
2684}
2685
2686#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2698pub struct EvidenceEnvelopeExportRequest {
2699 #[serde(rename = "manifest_id")]
2700 pub manifest_id: String,
2701 #[serde(rename = "envelope")]
2702 pub envelope: EvidenceEnvelopeExportRequestEnvelope,
2703 #[serde(rename = "native_evidence_hash")]
2705 pub native_evidence_hash: String,
2706 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
2707 pub subject: Option<String>,
2708 #[serde(rename = "experimental", skip_serializing_if = "Option::is_none")]
2710 pub experimental: Option<bool>,
2711}
2712
2713impl EvidenceEnvelopeExportRequest {
2714 pub fn new(manifest_id: String, envelope: EvidenceEnvelopeExportRequestEnvelope, native_evidence_hash: String) -> EvidenceEnvelopeExportRequest {
2715 EvidenceEnvelopeExportRequest {
2716 manifest_id,
2717 envelope,
2718 native_evidence_hash,
2719 subject: None,
2720 experimental: None,
2721 }
2722 }
2723}
2724#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2726pub enum EvidenceEnvelopeExportRequestEnvelope {
2727 #[serde(rename = "dsse")]
2728 Dsse,
2729 #[serde(rename = "jws")]
2730 Jws,
2731 #[serde(rename = "in-toto")]
2732 InToto,
2733 #[serde(rename = "slsa")]
2734 Slsa,
2735 #[serde(rename = "sigstore")]
2736 Sigstore,
2737 #[serde(rename = "scitt")]
2738 Scitt,
2739 #[serde(rename = "cose")]
2740 Cose,
2741}
2742
2743impl Default for EvidenceEnvelopeExportRequestEnvelope {
2744 fn default() -> EvidenceEnvelopeExportRequestEnvelope {
2745 Self::Dsse
2746 }
2747}
2748
2749#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2761pub struct EvidenceEnvelopeManifest {
2762 #[serde(rename = "manifest_id")]
2763 pub manifest_id: String,
2764 #[serde(rename = "envelope")]
2765 pub envelope: EvidenceEnvelopeManifestEnvelope,
2766 #[serde(rename = "native_evidence_hash")]
2767 pub native_evidence_hash: String,
2768 #[serde(rename = "native_authority")]
2769 pub native_authority: bool,
2770 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
2771 pub subject: Option<String>,
2772 #[serde(rename = "statement_hash", skip_serializing_if = "Option::is_none")]
2773 pub statement_hash: Option<String>,
2774 #[serde(rename = "experimental", skip_serializing_if = "Option::is_none")]
2775 pub experimental: Option<bool>,
2776 #[serde(rename = "created_at")]
2777 pub created_at: String,
2778 #[serde(rename = "manifest_hash", skip_serializing_if = "Option::is_none")]
2779 pub manifest_hash: Option<String>,
2780}
2781
2782impl EvidenceEnvelopeManifest {
2783 pub fn new(manifest_id: String, envelope: EvidenceEnvelopeManifestEnvelope, native_evidence_hash: String, native_authority: bool, created_at: String) -> EvidenceEnvelopeManifest {
2784 EvidenceEnvelopeManifest {
2785 manifest_id,
2786 envelope,
2787 native_evidence_hash,
2788 native_authority,
2789 subject: None,
2790 statement_hash: None,
2791 experimental: None,
2792 created_at,
2793 manifest_hash: None,
2794 }
2795 }
2796}
2797#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2799pub enum EvidenceEnvelopeManifestEnvelope {
2800 #[serde(rename = "dsse")]
2801 Dsse,
2802 #[serde(rename = "jws")]
2803 Jws,
2804 #[serde(rename = "in-toto")]
2805 InToto,
2806 #[serde(rename = "slsa")]
2807 Slsa,
2808 #[serde(rename = "sigstore")]
2809 Sigstore,
2810 #[serde(rename = "scitt")]
2811 Scitt,
2812 #[serde(rename = "cose")]
2813 Cose,
2814}
2815
2816impl Default for EvidenceEnvelopeManifestEnvelope {
2817 fn default() -> EvidenceEnvelopeManifestEnvelope {
2818 Self::Dsse
2819 }
2820}
2821
2822#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2834pub struct EvidenceEnvelopeVerification {
2835 #[serde(rename = "manifest_id", skip_serializing_if = "Option::is_none")]
2836 pub manifest_id: Option<String>,
2837 #[serde(rename = "manifest_hash", skip_serializing_if = "Option::is_none")]
2838 pub manifest_hash: Option<String>,
2839 #[serde(rename = "native_evidence_hash", skip_serializing_if = "Option::is_none")]
2840 pub native_evidence_hash: Option<String>,
2841 #[serde(rename = "verified", skip_serializing_if = "Option::is_none")]
2842 pub verified: Option<bool>,
2843 #[serde(rename = "authoritative", skip_serializing_if = "Option::is_none")]
2844 pub authoritative: Option<bool>,
2845 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
2846 pub errors: Option<Vec<String>>,
2847 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
2848 pub checked_at: Option<String>,
2849}
2850
2851impl EvidenceEnvelopeVerification {
2852 pub fn new() -> EvidenceEnvelopeVerification {
2853 EvidenceEnvelopeVerification {
2854 manifest_id: None,
2855 manifest_hash: None,
2856 native_evidence_hash: None,
2857 verified: None,
2858 authoritative: None,
2859 errors: None,
2860 checked_at: None,
2861 }
2862 }
2863}
2864
2865#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2877pub struct ExecutionBoundaryRecord {
2878 #[serde(rename = "record_id", skip_serializing_if = "Option::is_none")]
2879 pub record_id: Option<String>,
2880 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
2881 pub verdict: Option<ExecutionBoundaryRecordVerdict>,
2882 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
2883 pub reason_code: Option<String>,
2884 #[serde(rename = "tool_name", skip_serializing_if = "Option::is_none")]
2885 pub tool_name: Option<String>,
2886 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
2887 pub args_hash: Option<String>,
2888 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
2889 pub policy_epoch: Option<String>,
2890 #[serde(rename = "mcp_server_id", skip_serializing_if = "Option::is_none")]
2891 pub mcp_server_id: Option<String>,
2892 #[serde(rename = "oauth_resource", skip_serializing_if = "Option::is_none")]
2893 pub oauth_resource: Option<String>,
2894 #[serde(rename = "oauth_scopes", skip_serializing_if = "Option::is_none")]
2895 pub oauth_scopes: Option<Vec<String>>,
2896 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
2897 pub sandbox_grant_hash: Option<String>,
2898 #[serde(rename = "authz_snapshot_hash", skip_serializing_if = "Option::is_none")]
2899 pub authz_snapshot_hash: Option<String>,
2900 #[serde(rename = "approval_receipt_id", skip_serializing_if = "Option::is_none")]
2901 pub approval_receipt_id: Option<String>,
2902 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
2903 pub receipt_id: Option<String>,
2904 #[serde(rename = "record_hash", skip_serializing_if = "Option::is_none")]
2905 pub record_hash: Option<String>,
2906 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
2907 pub created_at: Option<String>,
2908}
2909
2910impl ExecutionBoundaryRecord {
2911 pub fn new() -> ExecutionBoundaryRecord {
2912 ExecutionBoundaryRecord {
2913 record_id: None,
2914 verdict: None,
2915 reason_code: None,
2916 tool_name: None,
2917 args_hash: None,
2918 policy_epoch: None,
2919 mcp_server_id: None,
2920 oauth_resource: None,
2921 oauth_scopes: None,
2922 sandbox_grant_hash: None,
2923 authz_snapshot_hash: None,
2924 approval_receipt_id: None,
2925 receipt_id: None,
2926 record_hash: None,
2927 created_at: None,
2928 }
2929 }
2930}
2931#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2933pub enum ExecutionBoundaryRecordVerdict {
2934 #[serde(rename = "ALLOW")]
2935 Allow,
2936 #[serde(rename = "DENY")]
2937 Deny,
2938 #[serde(rename = "ESCALATE")]
2939 Escalate,
2940}
2941
2942impl Default for ExecutionBoundaryRecordVerdict {
2943 fn default() -> ExecutionBoundaryRecordVerdict {
2944 Self::Allow
2945 }
2946}
2947
2948#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2960pub struct ExportRequest {
2961 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
2963 pub session_id: Option<String>,
2964 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
2965 pub format: Option<ExportRequestFormat>,
2966}
2967
2968impl ExportRequest {
2969 pub fn new() -> ExportRequest {
2970 ExportRequest {
2971 session_id: None,
2972 format: None,
2973 }
2974 }
2975}
2976#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2978pub enum ExportRequestFormat {
2979 #[serde(rename = "tar.gz")]
2980 TarPeriodGz,
2981}
2982
2983impl Default for ExportRequestFormat {
2984 fn default() -> ExportRequestFormat {
2985 Self::TarPeriodGz
2986 }
2987}
2988
2989#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3001pub struct FilesystemPreopen {
3002 #[serde(rename = "path")]
3003 pub path: String,
3004 #[serde(rename = "mode")]
3005 pub mode: FilesystemPreopenMode,
3006 #[serde(rename = "content_hash", skip_serializing_if = "Option::is_none")]
3007 pub content_hash: Option<String>,
3008}
3009
3010impl FilesystemPreopen {
3011 pub fn new(path: String, mode: FilesystemPreopenMode) -> FilesystemPreopen {
3012 FilesystemPreopen {
3013 path,
3014 mode,
3015 content_hash: None,
3016 }
3017 }
3018}
3019#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3021pub enum FilesystemPreopenMode {
3022 #[serde(rename = "ro")]
3023 Ro,
3024 #[serde(rename = "rw")]
3025 Rw,
3026}
3027
3028impl Default for FilesystemPreopenMode {
3029 fn default() -> FilesystemPreopenMode {
3030 Self::Ro
3031 }
3032}
3033
3034#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3046pub struct FrameworkAdapter {
3047 #[serde(rename = "apiVersion", skip_serializing_if = "Option::is_none")]
3048 pub api_version: Option<String>,
3049 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
3050 pub kind: Option<String>,
3051 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
3052 pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
3053 #[serde(rename = "match", skip_serializing_if = "Option::is_none")]
3054 pub r#match: Option<std::collections::HashMap<String, serde_json::Value>>,
3055 #[serde(rename = "capabilities", default, skip_serializing_if = "Option::is_none")]
3056 pub capabilities: Option<Option<serde_json::Value>>,
3057 #[serde(rename = "entrypoints", skip_serializing_if = "Option::is_none")]
3058 pub entrypoints: Option<std::collections::HashMap<String, serde_json::Value>>,
3059 #[serde(rename = "build", skip_serializing_if = "Option::is_none")]
3060 pub build: Option<std::collections::HashMap<String, serde_json::Value>>,
3061}
3062
3063impl FrameworkAdapter {
3064 pub fn new() -> FrameworkAdapter {
3065 FrameworkAdapter {
3066 api_version: None,
3067 kind: None,
3068 metadata: None,
3069 r#match: None,
3070 capabilities: None,
3071 entrypoints: None,
3072 build: None,
3073 }
3074 }
3075}
3076
3077#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3089pub struct GeneratedAppSpecCandidate {
3090 #[serde(rename = "candidate_id")]
3091 pub candidate_id: String,
3092 #[serde(rename = "trusted")]
3093 pub trusted: bool,
3094 #[serde(rename = "app_spec")]
3095 pub app_spec: Box<LaunchpadApp>,
3096 #[serde(rename = "promotion_requirements")]
3097 pub promotion_requirements: Vec<String>,
3098}
3099
3100impl GeneratedAppSpecCandidate {
3101 pub fn new(candidate_id: String, trusted: bool, app_spec: LaunchpadApp, promotion_requirements: Vec<String>) -> GeneratedAppSpecCandidate {
3102 GeneratedAppSpecCandidate {
3103 candidate_id,
3104 trusted,
3105 app_spec: Box::new(app_spec),
3106 promotion_requirements,
3107 }
3108 }
3109}
3110
3111#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3123pub struct GetAgentUiRuntimeInfo200Response {
3124 #[serde(rename = "runtime")]
3125 pub runtime: String,
3126 #[serde(rename = "protocol", deserialize_with = "Option::deserialize")]
3127 pub protocol: Option<serde_json::Value>,
3128 #[serde(rename = "transport", deserialize_with = "Option::deserialize")]
3129 pub transport: Option<serde_json::Value>,
3130 #[serde(rename = "tools", deserialize_with = "Option::deserialize")]
3131 pub tools: Option<serde_json::Value>,
3132}
3133
3134impl GetAgentUiRuntimeInfo200Response {
3135 pub fn new(runtime: String, protocol: Option<serde_json::Value>, transport: Option<serde_json::Value>, tools: Option<serde_json::Value>) -> GetAgentUiRuntimeInfo200Response {
3136 GetAgentUiRuntimeInfo200Response {
3137 runtime,
3138 protocol,
3139 transport,
3140 tools,
3141 }
3142 }
3143}
3144
3145#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3157pub struct GetLaunchpadImport200Response {
3158 #[serde(rename = "import")]
3159 pub import: Box<LaunchpadImportRecord>,
3160}
3161
3162impl GetLaunchpadImport200Response {
3163 pub fn new(import: LaunchpadImportRecord) -> GetLaunchpadImport200Response {
3164 GetLaunchpadImport200Response {
3165 import: Box::new(import),
3166 }
3167 }
3168}
3169
3170#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3182pub struct GetLaunchpadMatrix200Response {
3183 #[serde(rename = "matrix")]
3184 pub matrix: Vec<LaunchpadMatrixCell>,
3185}
3186
3187impl GetLaunchpadMatrix200Response {
3188 pub fn new(matrix: Vec<LaunchpadMatrixCell>) -> GetLaunchpadMatrix200Response {
3189 GetLaunchpadMatrix200Response {
3190 matrix,
3191 }
3192 }
3193}
3194
3195#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3207pub struct GetPublicDemoHealth200Response {
3208 #[serde(rename = "version")]
3209 pub version: String,
3210 #[serde(rename = "commit")]
3211 pub commit: String,
3212 #[serde(rename = "helm_ai_kernel_version")]
3213 pub helm_ai_kernel_version: String,
3214 #[serde(rename = "status")]
3215 pub status: String,
3216 #[serde(rename = "build_time")]
3217 pub build_time: String,
3218 #[serde(rename = "git_sha")]
3219 pub git_sha: String,
3220 #[serde(rename = "deployment_id")]
3221 pub deployment_id: String,
3222}
3223
3224impl GetPublicDemoHealth200Response {
3225 pub fn new(version: String, commit: String, helm_ai_kernel_version: String, status: String, build_time: String, git_sha: String, deployment_id: String) -> GetPublicDemoHealth200Response {
3226 GetPublicDemoHealth200Response {
3227 version,
3228 commit,
3229 helm_ai_kernel_version,
3230 status,
3231 build_time,
3232 git_sha,
3233 deployment_id,
3234 }
3235 }
3236}
3237
3238#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3251pub struct GovernanceDecision {
3252 #[serde(rename = "decision_id")]
3253 pub decision_id: String,
3254 #[serde(rename = "effect_id")]
3255 pub effect_id: String,
3256 #[serde(rename = "verdict")]
3257 pub verdict: GovernanceDecisionVerdict,
3258 #[serde(rename = "reason_code", default, skip_serializing_if = "Option::is_none")]
3260 pub reason_code: Option<Option<String>>,
3261 #[serde(rename = "receipt", skip_serializing_if = "Option::is_none")]
3262 pub receipt: Option<Box<Receipt>>,
3263 #[serde(rename = "active_packs", skip_serializing_if = "Option::is_none")]
3265 pub active_packs: Option<Vec<String>>,
3266}
3267
3268impl GovernanceDecision {
3269 pub fn new(decision_id: String, effect_id: String, verdict: GovernanceDecisionVerdict) -> GovernanceDecision {
3271 GovernanceDecision {
3272 decision_id,
3273 effect_id,
3274 verdict,
3275 reason_code: None,
3276 receipt: None,
3277 active_packs: None,
3278 }
3279 }
3280}
3281#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3283pub enum GovernanceDecisionVerdict {
3284 #[serde(rename = "ALLOW")]
3285 Allow,
3286 #[serde(rename = "DENY")]
3287 Deny,
3288 #[serde(rename = "ESCALATE")]
3289 Escalate,
3290}
3291
3292impl Default for GovernanceDecisionVerdict {
3293 fn default() -> GovernanceDecisionVerdict {
3294 Self::Allow
3295 }
3296}
3297
3298#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3310pub struct GroundedActionRef {
3311 #[serde(rename = "grounded_action_id")]
3312 pub grounded_action_id: String,
3313 #[serde(rename = "screenshot_hash")]
3314 pub screenshot_hash: String,
3315 #[serde(rename = "dom_or_ax_snapshot_hash")]
3316 pub dom_or_ax_snapshot_hash: String,
3317 #[serde(rename = "target_ref")]
3318 pub target_ref: String,
3319 #[serde(rename = "bbox_or_element_id")]
3320 pub bbox_or_element_id: String,
3321 #[serde(rename = "action_type")]
3322 pub action_type: GroundedActionRefActionType,
3323 #[serde(rename = "precondition")]
3324 pub precondition: String,
3325 #[serde(rename = "postcondition")]
3326 pub postcondition: String,
3327 #[serde(rename = "postcondition_ref")]
3328 pub postcondition_ref: String,
3329 #[serde(rename = "verification_scope_ref")]
3330 pub verification_scope_ref: String,
3331 #[serde(rename = "policy_hash")]
3332 pub policy_hash: String,
3333 #[serde(rename = "proof_graph_node_ref")]
3334 pub proof_graph_node_ref: String,
3335 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3336 pub sandbox_grant_hash: Option<String>,
3337 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
3338 pub created_at: Option<String>,
3339 #[serde(rename = "grounding_hash", skip_serializing_if = "Option::is_none")]
3340 pub grounding_hash: Option<String>,
3341}
3342
3343impl GroundedActionRef {
3344 pub fn new(grounded_action_id: String, screenshot_hash: String, dom_or_ax_snapshot_hash: String, target_ref: String, bbox_or_element_id: String, action_type: GroundedActionRefActionType, precondition: String, postcondition: String, postcondition_ref: String, verification_scope_ref: String, policy_hash: String, proof_graph_node_ref: String) -> GroundedActionRef {
3345 GroundedActionRef {
3346 grounded_action_id,
3347 screenshot_hash,
3348 dom_or_ax_snapshot_hash,
3349 target_ref,
3350 bbox_or_element_id,
3351 action_type,
3352 precondition,
3353 postcondition,
3354 postcondition_ref,
3355 verification_scope_ref,
3356 policy_hash,
3357 proof_graph_node_ref,
3358 sandbox_grant_hash: None,
3359 created_at: None,
3360 grounding_hash: None,
3361 }
3362 }
3363}
3364#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3366pub enum GroundedActionRefActionType {
3367 #[serde(rename = "click")]
3368 Click,
3369 #[serde(rename = "type")]
3370 Type,
3371 #[serde(rename = "select")]
3372 Select,
3373 #[serde(rename = "submit")]
3374 Submit,
3375 #[serde(rename = "navigate")]
3376 Navigate,
3377}
3378
3379impl Default for GroundedActionRefActionType {
3380 fn default() -> GroundedActionRefActionType {
3381 Self::Click
3382 }
3383}
3384
3385#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3397pub struct GuiActionReceipt {
3398 #[serde(rename = "receipt_id")]
3399 pub receipt_id: String,
3400 #[serde(rename = "grounded_action_ref")]
3401 pub grounded_action_ref: String,
3402 #[serde(rename = "screenshot_hash")]
3403 pub screenshot_hash: String,
3404 #[serde(rename = "dom_or_ax_snapshot_hash")]
3405 pub dom_or_ax_snapshot_hash: String,
3406 #[serde(rename = "target_ref")]
3407 pub target_ref: String,
3408 #[serde(rename = "bbox_or_element_id")]
3409 pub bbox_or_element_id: String,
3410 #[serde(rename = "action_type")]
3411 pub action_type: GuiActionReceiptActionType,
3412 #[serde(rename = "precondition")]
3413 pub precondition: String,
3414 #[serde(rename = "postcondition")]
3415 pub postcondition: String,
3416 #[serde(rename = "postcondition_ref")]
3417 pub postcondition_ref: String,
3418 #[serde(rename = "postcondition_verified")]
3419 pub postcondition_verified: bool,
3420 #[serde(rename = "verification_scope_ref")]
3421 pub verification_scope_ref: String,
3422 #[serde(rename = "policy_hash")]
3423 pub policy_hash: String,
3424 #[serde(rename = "proof_graph_node_ref")]
3425 pub proof_graph_node_ref: String,
3426 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3427 pub sandbox_grant_hash: Option<String>,
3428 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
3429 pub created_at: Option<String>,
3430 #[serde(rename = "receipt_hash", skip_serializing_if = "Option::is_none")]
3431 pub receipt_hash: Option<String>,
3432}
3433
3434impl GuiActionReceipt {
3435 pub fn new(receipt_id: String, grounded_action_ref: String, screenshot_hash: String, dom_or_ax_snapshot_hash: String, target_ref: String, bbox_or_element_id: String, action_type: GuiActionReceiptActionType, precondition: String, postcondition: String, postcondition_ref: String, postcondition_verified: bool, verification_scope_ref: String, policy_hash: String, proof_graph_node_ref: String) -> GuiActionReceipt {
3436 GuiActionReceipt {
3437 receipt_id,
3438 grounded_action_ref,
3439 screenshot_hash,
3440 dom_or_ax_snapshot_hash,
3441 target_ref,
3442 bbox_or_element_id,
3443 action_type,
3444 precondition,
3445 postcondition,
3446 postcondition_ref,
3447 postcondition_verified,
3448 verification_scope_ref,
3449 policy_hash,
3450 proof_graph_node_ref,
3451 sandbox_grant_hash: None,
3452 created_at: None,
3453 receipt_hash: None,
3454 }
3455 }
3456}
3457#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3459pub enum GuiActionReceiptActionType {
3460 #[serde(rename = "click")]
3461 Click,
3462 #[serde(rename = "type")]
3463 Type,
3464 #[serde(rename = "select")]
3465 Select,
3466 #[serde(rename = "submit")]
3467 Submit,
3468 #[serde(rename = "navigate")]
3469 Navigate,
3470}
3471
3472impl Default for GuiActionReceiptActionType {
3473 fn default() -> GuiActionReceiptActionType {
3474 Self::Click
3475 }
3476}
3477
3478#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3490pub struct HarnessChangeContract {
3491 #[serde(rename = "change_contract_id")]
3492 pub change_contract_id: String,
3493 #[serde(rename = "component_modified")]
3494 pub component_modified: HarnessChangeContractComponentModified,
3495 #[serde(rename = "failure_mode_targeted")]
3496 pub failure_mode_targeted: String,
3497 #[serde(rename = "predicted_improvement")]
3498 pub predicted_improvement: String,
3499 #[serde(rename = "invariants_preserved")]
3500 pub invariants_preserved: Vec<String>,
3501 #[serde(rename = "safety_properties")]
3502 pub safety_properties: Vec<String>,
3503 #[serde(rename = "regression_suite_refs")]
3504 pub regression_suite_refs: Vec<String>,
3505 #[serde(rename = "simulation_evidence_refs", skip_serializing_if = "Option::is_none")]
3506 pub simulation_evidence_refs: Option<Vec<String>>,
3507 #[serde(rename = "canary_scope", skip_serializing_if = "Option::is_none")]
3508 pub canary_scope: Option<std::collections::HashMap<String, serde_json::Value>>,
3509 #[serde(rename = "rollback_plan")]
3510 pub rollback_plan: std::collections::HashMap<String, serde_json::Value>,
3511 #[serde(rename = "approval_required")]
3512 pub approval_required: bool,
3513 #[serde(rename = "activation_receipt_ref", skip_serializing_if = "Option::is_none")]
3514 pub activation_receipt_ref: Option<String>,
3515 #[serde(rename = "created_at")]
3516 pub created_at: String,
3517 #[serde(rename = "contract_hash", skip_serializing_if = "Option::is_none")]
3518 pub contract_hash: Option<String>,
3519}
3520
3521impl HarnessChangeContract {
3522 pub fn new(change_contract_id: String, component_modified: HarnessChangeContractComponentModified, failure_mode_targeted: String, predicted_improvement: String, invariants_preserved: Vec<String>, safety_properties: Vec<String>, regression_suite_refs: Vec<String>, rollback_plan: std::collections::HashMap<String, serde_json::Value>, approval_required: bool, created_at: String) -> HarnessChangeContract {
3523 HarnessChangeContract {
3524 change_contract_id,
3525 component_modified,
3526 failure_mode_targeted,
3527 predicted_improvement,
3528 invariants_preserved,
3529 safety_properties,
3530 regression_suite_refs,
3531 simulation_evidence_refs: None,
3532 canary_scope: None,
3533 rollback_plan,
3534 approval_required,
3535 activation_receipt_ref: None,
3536 created_at,
3537 contract_hash: None,
3538 }
3539 }
3540}
3541#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3543pub enum HarnessChangeContractComponentModified {
3544 #[serde(rename = "connector_contract")]
3545 ConnectorContract,
3546 #[serde(rename = "tool_schema")]
3547 ToolSchema,
3548 #[serde(rename = "sandbox_grant")]
3549 SandboxGrant,
3550 #[serde(rename = "mcp_approval")]
3551 McpApproval,
3552 #[serde(rename = "policy_overlay")]
3553 PolicyOverlay,
3554 #[serde(rename = "verifier")]
3555 Verifier,
3556 #[serde(rename = "evidence_template")]
3557 EvidenceTemplate,
3558 #[serde(rename = "routing_rule")]
3559 RoutingRule,
3560}
3561
3562impl Default for HarnessChangeContractComponentModified {
3563 fn default() -> HarnessChangeContractComponentModified {
3564 Self::ConnectorContract
3565 }
3566}
3567
3568#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3580pub struct HarnessTrace {
3581 #[serde(rename = "trace_id")]
3582 pub trace_id: String,
3583 #[serde(rename = "plan_hash")]
3584 pub plan_hash: String,
3585 #[serde(rename = "context_refs", skip_serializing_if = "Option::is_none")]
3586 pub context_refs: Option<Vec<String>>,
3587 #[serde(rename = "memory_reads", skip_serializing_if = "Option::is_none")]
3588 pub memory_reads: Option<Vec<String>>,
3589 #[serde(rename = "memory_writes", skip_serializing_if = "Option::is_none")]
3590 pub memory_writes: Option<Vec<String>>,
3591 #[serde(rename = "tool_schema_hashes", skip_serializing_if = "Option::is_none")]
3592 pub tool_schema_hashes: Option<Vec<String>>,
3593 #[serde(rename = "permission_requests", skip_serializing_if = "Option::is_none")]
3594 pub permission_requests: Option<Vec<String>>,
3595 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3596 pub sandbox_grant_hash: Option<String>,
3597 #[serde(rename = "mcp_approval_ref", skip_serializing_if = "Option::is_none")]
3598 pub mcp_approval_ref: Option<String>,
3599 #[serde(rename = "connector_contract_hash", skip_serializing_if = "Option::is_none")]
3600 pub connector_contract_hash: Option<String>,
3601 #[serde(rename = "policy_hash")]
3602 pub policy_hash: String,
3603 #[serde(rename = "cpi_output_hash", skip_serializing_if = "Option::is_none")]
3604 pub cpi_output_hash: Option<String>,
3605 #[serde(rename = "verifier_outputs", skip_serializing_if = "Option::is_none")]
3606 pub verifier_outputs: Option<Vec<String>>,
3607 #[serde(rename = "human_interventions", skip_serializing_if = "Option::is_none")]
3608 pub human_interventions: Option<Vec<String>>,
3609 #[serde(rename = "state_updates", skip_serializing_if = "Option::is_none")]
3610 pub state_updates: Option<Vec<String>>,
3611 #[serde(rename = "receipt_refs")]
3612 pub receipt_refs: Vec<String>,
3613 #[serde(rename = "created_at")]
3614 pub created_at: String,
3615 #[serde(rename = "trace_hash", skip_serializing_if = "Option::is_none")]
3616 pub trace_hash: Option<String>,
3617}
3618
3619impl HarnessTrace {
3620 pub fn new(trace_id: String, plan_hash: String, policy_hash: String, receipt_refs: Vec<String>, created_at: String) -> HarnessTrace {
3621 HarnessTrace {
3622 trace_id,
3623 plan_hash,
3624 context_refs: None,
3625 memory_reads: None,
3626 memory_writes: None,
3627 tool_schema_hashes: None,
3628 permission_requests: None,
3629 sandbox_grant_hash: None,
3630 mcp_approval_ref: None,
3631 connector_contract_hash: None,
3632 policy_hash,
3633 cpi_output_hash: None,
3634 verifier_outputs: None,
3635 human_interventions: None,
3636 state_updates: None,
3637 receipt_refs,
3638 created_at,
3639 trace_hash: None,
3640 }
3641 }
3642}
3643
3644#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3656pub struct HealthCheck200Response {
3657 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
3658 pub status: Option<String>,
3659 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
3660 pub version: Option<String>,
3661}
3662
3663impl HealthCheck200Response {
3664 pub fn new() -> HealthCheck200Response {
3665 HealthCheck200Response {
3666 status: None,
3667 version: None,
3668 }
3669 }
3670}
3671
3672#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3684pub struct HelmError {
3685 #[serde(rename = "error")]
3686 pub error: Box<HelmErrorError>,
3687}
3688
3689impl HelmError {
3690 pub fn new(error: HelmErrorError) -> HelmError {
3691 HelmError {
3692 error: Box::new(error),
3693 }
3694 }
3695}
3696
3697#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3709pub struct HelmErrorError {
3710 #[serde(rename = "message")]
3712 pub message: String,
3713 #[serde(rename = "type")]
3714 pub r#type: HelmErrorErrorType,
3715 #[serde(rename = "code")]
3717 pub code: String,
3718 #[serde(rename = "reason_code")]
3720 pub reason_code: HelmErrorErrorReasonCode,
3721 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
3723 pub details: Option<std::collections::HashMap<String, serde_json::Value>>,
3724}
3725
3726impl HelmErrorError {
3727 pub fn new(message: String, r#type: HelmErrorErrorType, code: String, reason_code: HelmErrorErrorReasonCode) -> HelmErrorError {
3728 HelmErrorError {
3729 message,
3730 r#type,
3731 code,
3732 reason_code,
3733 details: None,
3734 }
3735 }
3736}
3737#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3739pub enum HelmErrorErrorType {
3740 #[serde(rename = "invalid_request")]
3741 InvalidRequest,
3742 #[serde(rename = "authentication_error")]
3743 AuthenticationError,
3744 #[serde(rename = "permission_denied")]
3745 PermissionDenied,
3746 #[serde(rename = "not_found")]
3747 NotFound,
3748 #[serde(rename = "internal_error")]
3749 InternalError,
3750}
3751
3752impl Default for HelmErrorErrorType {
3753 fn default() -> HelmErrorErrorType {
3754 Self::InvalidRequest
3755 }
3756}
3757#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3759pub enum HelmErrorErrorReasonCode {
3760 #[serde(rename = "DENY_TOOL_NOT_FOUND")]
3761 DenyToolNotFound,
3762 #[serde(rename = "DENY_SCHEMA_MISMATCH")]
3763 DenySchemaMismatch,
3764 #[serde(rename = "DENY_OUTPUT_DRIFT")]
3765 DenyOutputDrift,
3766 #[serde(rename = "DENY_BUDGET_EXCEEDED")]
3767 DenyBudgetExceeded,
3768 #[serde(rename = "DENY_APPROVAL_REQUIRED")]
3769 DenyApprovalRequired,
3770 #[serde(rename = "DENY_APPROVAL_TIMEOUT")]
3771 DenyApprovalTimeout,
3772 #[serde(rename = "DENY_SANDBOX_TRAP")]
3773 DenySandboxTrap,
3774 #[serde(rename = "DENY_GAS_EXHAUSTION")]
3775 DenyGasExhaustion,
3776 #[serde(rename = "DENY_TIME_LIMIT")]
3777 DenyTimeLimit,
3778 #[serde(rename = "DENY_MEMORY_LIMIT")]
3779 DenyMemoryLimit,
3780 #[serde(rename = "DENY_POLICY_VIOLATION")]
3781 DenyPolicyViolation,
3782 #[serde(rename = "DENY_TRUST_KEY_REVOKED")]
3783 DenyTrustKeyRevoked,
3784 #[serde(rename = "DENY_IDEMPOTENCY_DUPLICATE")]
3785 DenyIdempotencyDuplicate,
3786 #[serde(rename = "ERROR_INTERNAL")]
3787 ErrorInternal,
3788}
3789
3790impl Default for HelmErrorErrorReasonCode {
3791 fn default() -> HelmErrorErrorReasonCode {
3792 Self::DenyToolNotFound
3793 }
3794}
3795
3796#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3808pub struct ImportEvidenceLedger {
3809 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
3810 pub status: Option<String>,
3811 #[serde(rename = "receipt_refs", skip_serializing_if = "Option::is_none")]
3812 pub receipt_refs: Option<Vec<String>>,
3813 #[serde(rename = "evidence_pack_refs", skip_serializing_if = "Option::is_none")]
3814 pub evidence_pack_refs: Option<Vec<String>>,
3815 #[serde(rename = "sbom_ref", skip_serializing_if = "Option::is_none")]
3816 pub sbom_ref: Option<String>,
3817 #[serde(rename = "vulnerability_scan_ref", skip_serializing_if = "Option::is_none")]
3818 pub vulnerability_scan_ref: Option<String>,
3819 #[serde(rename = "provenance_ref", skip_serializing_if = "Option::is_none")]
3820 pub provenance_ref: Option<String>,
3821 #[serde(rename = "license_ref", skip_serializing_if = "Option::is_none")]
3822 pub license_ref: Option<String>,
3823 #[serde(rename = "policy_refs", skip_serializing_if = "Option::is_none")]
3824 pub policy_refs: Option<Vec<String>>,
3825 #[serde(rename = "offline_verify_command", skip_serializing_if = "Option::is_none")]
3826 pub offline_verify_command: Option<String>,
3827}
3828
3829impl ImportEvidenceLedger {
3830 pub fn new() -> ImportEvidenceLedger {
3831 ImportEvidenceLedger {
3832 status: None,
3833 receipt_refs: None,
3834 evidence_pack_refs: None,
3835 sbom_ref: None,
3836 vulnerability_scan_ref: None,
3837 provenance_ref: None,
3838 license_ref: None,
3839 policy_refs: None,
3840 offline_verify_command: None,
3841 }
3842 }
3843}
3844
3845#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3857pub struct ImportPreflightResult {
3858 #[serde(rename = "import_id")]
3859 pub import_id: String,
3860 #[serde(rename = "status")]
3861 pub status: String,
3862 #[serde(rename = "checks")]
3863 pub checks: Vec<PreflightCheck>,
3864 #[serde(rename = "blocked_reasons", skip_serializing_if = "Option::is_none")]
3865 pub blocked_reasons: Option<Vec<String>>,
3866 #[serde(rename = "evidence_ledger")]
3867 pub evidence_ledger: Box<ImportEvidenceLedger>,
3868}
3869
3870impl ImportPreflightResult {
3871 pub fn new(import_id: String, status: String, checks: Vec<PreflightCheck>, evidence_ledger: ImportEvidenceLedger) -> ImportPreflightResult {
3872 ImportPreflightResult {
3873 import_id,
3874 status,
3875 checks,
3876 blocked_reasons: None,
3877 evidence_ledger: Box::new(evidence_ledger),
3878 }
3879 }
3880}
3881
3882#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3894pub struct LaunchRecipe {
3895 #[serde(rename = "import_id")]
3896 pub import_id: String,
3897 #[serde(rename = "generated_at", skip_serializing_if = "Option::is_none")]
3898 pub generated_at: Option<String>,
3899 #[serde(rename = "detection_order")]
3900 pub detection_order: Vec<String>,
3901 #[serde(rename = "build_strategy")]
3902 pub build_strategy: Box<BuildStrategy>,
3903 #[serde(rename = "target_plans")]
3904 pub target_plans: Vec<TargetPlan>,
3905 #[serde(rename = "generated_app_specs")]
3906 pub generated_app_specs: Vec<GeneratedAppSpecCandidate>,
3907 #[serde(rename = "promotion_state")]
3908 pub promotion_state: String,
3909 #[serde(rename = "promotion_requirements", skip_serializing_if = "Option::is_none")]
3910 pub promotion_requirements: Option<Vec<String>>,
3911 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
3912 pub cli_equivalent: Option<String>,
3913}
3914
3915impl LaunchRecipe {
3916 pub fn new(import_id: String, detection_order: Vec<String>, build_strategy: BuildStrategy, target_plans: Vec<TargetPlan>, generated_app_specs: Vec<GeneratedAppSpecCandidate>, promotion_state: String) -> LaunchRecipe {
3917 LaunchRecipe {
3918 import_id,
3919 generated_at: None,
3920 detection_order,
3921 build_strategy: Box::new(build_strategy),
3922 target_plans,
3923 generated_app_specs,
3924 promotion_state,
3925 promotion_requirements: None,
3926 cli_equivalent: None,
3927 }
3928 }
3929}
3930
3931#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3943pub struct LaunchpadApp {
3944 #[serde(rename = "id")]
3945 pub id: String,
3946 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
3947 pub app_id: Option<String>,
3948 #[serde(rename = "name")]
3949 pub name: String,
3950 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
3951 pub version: Option<String>,
3952 #[serde(rename = "oci_ref", skip_serializing_if = "Option::is_none")]
3953 pub oci_ref: Option<String>,
3954 #[serde(rename = "immutable_digest", skip_serializing_if = "Option::is_none")]
3955 pub immutable_digest: Option<String>,
3956 #[serde(rename = "oss_supported", skip_serializing_if = "Option::is_none")]
3957 pub oss_supported: Option<bool>,
3958 #[serde(rename = "availability", skip_serializing_if = "Option::is_none")]
3959 pub availability: Option<String>,
3960 #[serde(rename = "redistribution", skip_serializing_if = "Option::is_none")]
3961 pub redistribution: Option<String>,
3962 #[serde(rename = "install_strategy", skip_serializing_if = "Option::is_none")]
3963 pub install_strategy: Option<String>,
3964 #[serde(rename = "risk_class", skip_serializing_if = "Option::is_none")]
3965 pub risk_class: Option<String>,
3966 #[serde(rename = "blocked_reason", skip_serializing_if = "Option::is_none")]
3967 pub blocked_reason: Option<String>,
3968 #[serde(rename = "required_secrets", skip_serializing_if = "Option::is_none")]
3969 pub required_secrets: Option<Vec<String>>,
3970 #[serde(rename = "model_gateway_env", skip_serializing_if = "Option::is_none")]
3971 pub model_gateway_env: Option<Vec<String>>,
3972 #[serde(rename = "declared_capabilities", skip_serializing_if = "Option::is_none")]
3973 pub declared_capabilities: Option<Vec<String>>,
3974 #[serde(rename = "mcp_servers", skip_serializing_if = "Option::is_none")]
3975 pub mcp_servers: Option<Vec<LaunchpadMcpServer>>,
3976 #[serde(rename = "filesystem_needs", skip_serializing_if = "Option::is_none")]
3977 pub filesystem_needs: Option<Vec<String>>,
3978 #[serde(rename = "network_needs", skip_serializing_if = "Option::is_none")]
3979 pub network_needs: Option<Vec<String>>,
3980 #[serde(rename = "healthcheck", skip_serializing_if = "Option::is_none")]
3981 pub healthcheck: Option<std::collections::HashMap<String, serde_json::Value>>,
3982 #[serde(rename = "teardown_recipe", skip_serializing_if = "Option::is_none")]
3983 pub teardown_recipe: Option<std::collections::HashMap<String, serde_json::Value>>,
3984 #[serde(rename = "evidence_profile", skip_serializing_if = "Option::is_none")]
3985 pub evidence_profile: Option<std::collections::HashMap<String, serde_json::Value>>,
3986 #[serde(rename = "policy_ref", skip_serializing_if = "Option::is_none")]
3987 pub policy_ref: Option<String>,
3988 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
3989 pub user_state: Option<String>,
3990 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
3991 pub required_capability: Option<String>,
3992 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
3993 pub upgrade_reason: Option<String>,
3994 #[serde(rename = "entitlement_decision", skip_serializing_if = "Option::is_none")]
3995 pub entitlement_decision: Option<Box<EntitlementDecision>>,
3996 #[serde(rename = "action_states", skip_serializing_if = "Option::is_none")]
3997 pub action_states: Option<std::collections::HashMap<String, EntitlementDecision>>,
3998 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
3999 pub status: Option<Box<LaunchpadAppStatus>>,
4000}
4001
4002impl LaunchpadApp {
4003 pub fn new(id: String, name: String) -> LaunchpadApp {
4004 LaunchpadApp {
4005 id,
4006 app_id: None,
4007 name,
4008 version: None,
4009 oci_ref: None,
4010 immutable_digest: None,
4011 oss_supported: None,
4012 availability: None,
4013 redistribution: None,
4014 install_strategy: None,
4015 risk_class: None,
4016 blocked_reason: None,
4017 required_secrets: None,
4018 model_gateway_env: None,
4019 declared_capabilities: None,
4020 mcp_servers: None,
4021 filesystem_needs: None,
4022 network_needs: None,
4023 healthcheck: None,
4024 teardown_recipe: None,
4025 evidence_profile: None,
4026 policy_ref: None,
4027 user_state: None,
4028 required_capability: None,
4029 upgrade_reason: None,
4030 entitlement_decision: None,
4031 action_states: None,
4032 status: None,
4033 }
4034 }
4035}
4036
4037#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4049pub struct LaunchpadAppStatus {
4050 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
4051 pub state: Option<String>,
4052 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
4053 pub verdict: Option<String>,
4054 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4055 pub reason_code: Option<String>,
4056 #[serde(rename = "human_summary", skip_serializing_if = "Option::is_none")]
4057 pub human_summary: Option<String>,
4058 #[serde(rename = "missing_secrets", skip_serializing_if = "Option::is_none")]
4059 pub missing_secrets: Option<Vec<String>>,
4060 #[serde(rename = "quarantined_mcp", skip_serializing_if = "Option::is_none")]
4061 pub quarantined_mcp: Option<i32>,
4062 #[serde(rename = "last_run_id", skip_serializing_if = "Option::is_none")]
4063 pub last_run_id: Option<String>,
4064 #[serde(rename = "last_evidencepack_ref", skip_serializing_if = "Option::is_none")]
4065 pub last_evidencepack_ref: Option<String>,
4066 #[serde(rename = "proof_status", skip_serializing_if = "Option::is_none")]
4067 pub proof_status: Option<String>,
4068}
4069
4070impl LaunchpadAppStatus {
4071 pub fn new() -> LaunchpadAppStatus {
4072 LaunchpadAppStatus {
4073 state: None,
4074 verdict: None,
4075 reason_code: None,
4076 human_summary: None,
4077 missing_secrets: None,
4078 quarantined_mcp: None,
4079 last_run_id: None,
4080 last_evidencepack_ref: None,
4081 proof_status: None,
4082 }
4083 }
4084}
4085
4086#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4098pub struct LaunchpadFixAction {
4099 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
4100 pub label: Option<String>,
4101 #[serde(rename = "cli", skip_serializing_if = "Option::is_none")]
4102 pub cli: Option<String>,
4103 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
4104 pub description: Option<String>,
4105}
4106
4107impl LaunchpadFixAction {
4108 pub fn new() -> LaunchpadFixAction {
4109 LaunchpadFixAction {
4110 label: None,
4111 cli: None,
4112 description: None,
4113 }
4114 }
4115}
4116
4117#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4129pub struct LaunchpadGateResult {
4130 #[serde(rename = "id")]
4131 pub id: String,
4132 #[serde(rename = "group")]
4133 pub group: String,
4134 #[serde(rename = "label")]
4135 pub label: String,
4136 #[serde(rename = "verdict")]
4137 pub verdict: String,
4138 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4139 pub reason_code: Option<String>,
4140 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4141 pub receipt_ref: Option<String>,
4142 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
4143 pub proofgraph_node: Option<String>,
4144 #[serde(rename = "evidence_refs", skip_serializing_if = "Option::is_none")]
4145 pub evidence_refs: Option<Vec<String>>,
4146 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
4147 pub summary: Option<String>,
4148 #[serde(rename = "why", skip_serializing_if = "Option::is_none")]
4149 pub why: Option<String>,
4150 #[serde(rename = "proof_status")]
4151 pub proof_status: String,
4152 #[serde(rename = "raw_detail_ref", skip_serializing_if = "Option::is_none")]
4153 pub raw_detail_ref: Option<String>,
4154 #[serde(rename = "raw_proof_ref", skip_serializing_if = "Option::is_none")]
4155 pub raw_proof_ref: Option<String>,
4156 #[serde(rename = "receipt_required", skip_serializing_if = "Option::is_none")]
4157 pub receipt_required: Option<bool>,
4158 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4159 pub cli_equivalent: Option<String>,
4160 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
4161 pub fix_actions: Option<Vec<LaunchpadFixAction>>,
4162}
4163
4164impl LaunchpadGateResult {
4165 pub fn new(id: String, group: String, label: String, verdict: String, proof_status: String) -> LaunchpadGateResult {
4166 LaunchpadGateResult {
4167 id,
4168 group,
4169 label,
4170 verdict,
4171 reason_code: None,
4172 receipt_ref: None,
4173 proofgraph_node: None,
4174 evidence_refs: None,
4175 summary: None,
4176 why: None,
4177 proof_status,
4178 raw_detail_ref: None,
4179 raw_proof_ref: None,
4180 receipt_required: None,
4181 cli_equivalent: None,
4182 fix_actions: None,
4183 }
4184 }
4185}
4186
4187#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4199pub struct LaunchpadImportRecord {
4200 #[serde(rename = "id")]
4201 pub id: String,
4202 #[serde(rename = "state")]
4203 pub state: LaunchpadImportRecordState,
4204 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
4205 pub created_at: Option<String>,
4206 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
4207 pub updated_at: Option<String>,
4208 #[serde(rename = "request")]
4209 pub request: Box<LaunchpadImportRequest>,
4210 #[serde(rename = "source_snapshot")]
4211 pub source_snapshot: Box<SourceSnapshot>,
4212 #[serde(rename = "capability_graph")]
4213 pub capability_graph: Box<CapabilityGraph>,
4214 #[serde(rename = "launch_recipe")]
4215 pub launch_recipe: Box<LaunchRecipe>,
4216 #[serde(rename = "preflight", skip_serializing_if = "Option::is_none")]
4217 pub preflight: Option<Box<ImportPreflightResult>>,
4218 #[serde(rename = "evidence_ledger")]
4219 pub evidence_ledger: Box<ImportEvidenceLedger>,
4220}
4221
4222impl LaunchpadImportRecord {
4223 pub fn new(id: String, state: LaunchpadImportRecordState, request: LaunchpadImportRequest, source_snapshot: SourceSnapshot, capability_graph: CapabilityGraph, launch_recipe: LaunchRecipe, evidence_ledger: ImportEvidenceLedger) -> LaunchpadImportRecord {
4224 LaunchpadImportRecord {
4225 id,
4226 state,
4227 created_at: None,
4228 updated_at: None,
4229 request: Box::new(request),
4230 source_snapshot: Box::new(source_snapshot),
4231 capability_graph: Box::new(capability_graph),
4232 launch_recipe: Box::new(launch_recipe),
4233 preflight: None,
4234 evidence_ledger: Box::new(evidence_ledger),
4235 }
4236 }
4237}
4238#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
4240pub enum LaunchpadImportRecordState {
4241 #[serde(rename = "IMPORTED")]
4242 Imported,
4243 #[serde(rename = "PREFLIGHTED")]
4244 Preflighted,
4245 #[serde(rename = "PROMOTABLE")]
4246 Promotable,
4247 #[serde(rename = "BLOCKED")]
4248 Blocked,
4249 #[serde(rename = "LAUNCHED")]
4250 Launched,
4251 #[serde(rename = "TORN_DOWN")]
4252 TornDown,
4253}
4254
4255impl Default for LaunchpadImportRecordState {
4256 fn default() -> LaunchpadImportRecordState {
4257 Self::Imported
4258 }
4259}
4260
4261#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4273pub struct LaunchpadImportRequest {
4274 #[serde(rename = "repo_url")]
4275 pub repo_url: String,
4276 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
4277 pub r#ref: Option<String>,
4278 #[serde(rename = "desired_target", skip_serializing_if = "Option::is_none")]
4279 pub desired_target: Option<String>,
4280}
4281
4282impl LaunchpadImportRequest {
4283 pub fn new(repo_url: String) -> LaunchpadImportRequest {
4284 LaunchpadImportRequest {
4285 repo_url,
4286 r#ref: None,
4287 desired_target: None,
4288 }
4289 }
4290}
4291
4292#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4304pub struct LaunchpadMatrixCell {
4305 #[serde(rename = "app_id")]
4306 pub app_id: String,
4307 #[serde(rename = "substrate_id")]
4308 pub substrate_id: String,
4309 #[serde(rename = "launchable")]
4310 pub launchable: bool,
4311 #[serde(rename = "verdict")]
4312 pub verdict: String,
4313 #[serde(rename = "reason")]
4314 pub reason: String,
4315 #[serde(rename = "availability")]
4316 pub availability: String,
4317 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
4318 pub user_state: Option<String>,
4319 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
4320 pub required_capability: Option<String>,
4321 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
4322 pub upgrade_reason: Option<String>,
4323 #[serde(rename = "entitlement_decision", skip_serializing_if = "Option::is_none")]
4324 pub entitlement_decision: Option<Box<EntitlementDecision>>,
4325 #[serde(rename = "action_states", skip_serializing_if = "Option::is_none")]
4326 pub action_states: Option<std::collections::HashMap<String, EntitlementDecision>>,
4327}
4328
4329impl LaunchpadMatrixCell {
4330 pub fn new(app_id: String, substrate_id: String, launchable: bool, verdict: String, reason: String, availability: String) -> LaunchpadMatrixCell {
4331 LaunchpadMatrixCell {
4332 app_id,
4333 substrate_id,
4334 launchable,
4335 verdict,
4336 reason,
4337 availability,
4338 user_state: None,
4339 required_capability: None,
4340 upgrade_reason: None,
4341 entitlement_decision: None,
4342 action_states: None,
4343 }
4344 }
4345}
4346
4347#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4359pub struct LaunchpadMcpServer {
4360 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
4361 pub id: Option<String>,
4362 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
4363 pub endpoint: Option<String>,
4364 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
4365 pub transport: Option<String>,
4366 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
4367 pub status: Option<String>,
4368 #[serde(rename = "risk_class", skip_serializing_if = "Option::is_none")]
4369 pub risk_class: Option<String>,
4370 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
4371 pub tools: Option<Vec<String>>,
4372 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4373 pub receipt_ref: Option<String>,
4374}
4375
4376impl LaunchpadMcpServer {
4377 pub fn new() -> LaunchpadMcpServer {
4378 LaunchpadMcpServer {
4379 id: None,
4380 endpoint: None,
4381 transport: None,
4382 status: None,
4383 risk_class: None,
4384 tools: None,
4385 receipt_ref: None,
4386 }
4387 }
4388}
4389
4390#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4402pub struct LaunchpadPlanRequest {
4403 #[serde(rename = "app_id")]
4404 pub app_id: String,
4405 #[serde(rename = "substrate_id")]
4406 pub substrate_id: String,
4407 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
4408 pub principal: Option<String>,
4409}
4410
4411impl LaunchpadPlanRequest {
4412 pub fn new(app_id: String, substrate_id: String) -> LaunchpadPlanRequest {
4413 LaunchpadPlanRequest {
4414 app_id,
4415 substrate_id,
4416 principal: None,
4417 }
4418 }
4419}
4420
4421#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4433pub struct LaunchpadPlanResponse {
4434 #[serde(rename = "launch_id", skip_serializing_if = "Option::is_none")]
4435 pub launch_id: Option<String>,
4436 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4437 pub app_id: Option<String>,
4438 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
4439 pub substrate_id: Option<String>,
4440 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
4441 pub state: Option<String>,
4442 #[serde(rename = "kernel_verdict", skip_serializing_if = "Option::is_none")]
4443 pub kernel_verdict: Option<String>,
4444 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
4445 pub reason: Option<String>,
4446 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4447 pub reason_code: Option<String>,
4448 #[serde(rename = "plan_hash", skip_serializing_if = "Option::is_none")]
4449 pub plan_hash: Option<String>,
4450 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
4451 pub user_state: Option<String>,
4452 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
4453 pub required_capability: Option<String>,
4454 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
4455 pub upgrade_reason: Option<String>,
4456 #[serde(rename = "entitlement_decision", skip_serializing_if = "Option::is_none")]
4457 pub entitlement_decision: Option<Box<EntitlementDecision>>,
4458 #[serde(rename = "action_states", skip_serializing_if = "Option::is_none")]
4459 pub action_states: Option<std::collections::HashMap<String, EntitlementDecision>>,
4460}
4461
4462impl LaunchpadPlanResponse {
4463 pub fn new() -> LaunchpadPlanResponse {
4464 LaunchpadPlanResponse {
4465 launch_id: None,
4466 app_id: None,
4467 substrate_id: None,
4468 state: None,
4469 kernel_verdict: None,
4470 reason: None,
4471 reason_code: None,
4472 plan_hash: None,
4473 user_state: None,
4474 required_capability: None,
4475 upgrade_reason: None,
4476 entitlement_decision: None,
4477 action_states: None,
4478 }
4479 }
4480}
4481
4482#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4494pub struct LaunchpadPolicySimulation {
4495 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4496 pub app_id: Option<String>,
4497 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
4498 pub verdict: Option<String>,
4499 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4500 pub reason_code: Option<String>,
4501 #[serde(rename = "plain_english", skip_serializing_if = "Option::is_none")]
4502 pub plain_english: Option<String>,
4503 #[serde(rename = "structured", skip_serializing_if = "Option::is_none")]
4504 pub structured: Option<std::collections::HashMap<String, serde_json::Value>>,
4505 #[serde(rename = "diff", skip_serializing_if = "Option::is_none")]
4506 pub diff: Option<Vec<String>>,
4507 #[serde(rename = "raw", skip_serializing_if = "Option::is_none")]
4508 pub raw: Option<std::collections::HashMap<String, serde_json::Value>>,
4509 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4510 pub receipt_ref: Option<String>,
4511 #[serde(rename = "proof_status", skip_serializing_if = "Option::is_none")]
4512 pub proof_status: Option<String>,
4513 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4514 pub cli_equivalent: Option<String>,
4515 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
4516 pub fix_actions: Option<Vec<LaunchpadFixAction>>,
4517}
4518
4519impl LaunchpadPolicySimulation {
4520 pub fn new() -> LaunchpadPolicySimulation {
4521 LaunchpadPolicySimulation {
4522 app_id: None,
4523 verdict: None,
4524 reason_code: None,
4525 plain_english: None,
4526 structured: None,
4527 diff: None,
4528 raw: None,
4529 receipt_ref: None,
4530 proof_status: None,
4531 cli_equivalent: None,
4532 fix_actions: None,
4533 }
4534 }
4535}
4536
4537#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4549pub struct LaunchpadRun {
4550 #[serde(rename = "launch_id", skip_serializing_if = "Option::is_none")]
4551 pub launch_id: Option<String>,
4552 #[serde(rename = "run_id", skip_serializing_if = "Option::is_none")]
4553 pub run_id: Option<String>,
4554 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4555 pub app_id: Option<String>,
4556 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
4557 pub substrate_id: Option<String>,
4558 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
4559 pub state: Option<String>,
4560 #[serde(rename = "kernel_verdict", skip_serializing_if = "Option::is_none")]
4561 pub kernel_verdict: Option<String>,
4562 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
4563 pub reason: Option<String>,
4564 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4565 pub reason_code: Option<String>,
4566 #[serde(rename = "plan_hash", skip_serializing_if = "Option::is_none")]
4567 pub plan_hash: Option<String>,
4568 #[serde(rename = "launchplan_hash", skip_serializing_if = "Option::is_none")]
4569 pub launchplan_hash: Option<String>,
4570 #[serde(rename = "install_receipt_ref", skip_serializing_if = "Option::is_none")]
4571 pub install_receipt_ref: Option<String>,
4572 #[serde(rename = "launch_receipt_ref", skip_serializing_if = "Option::is_none")]
4573 pub launch_receipt_ref: Option<String>,
4574 #[serde(rename = "health_receipt_ref", skip_serializing_if = "Option::is_none")]
4575 pub health_receipt_ref: Option<String>,
4576 #[serde(rename = "teardown_receipt_ref", skip_serializing_if = "Option::is_none")]
4577 pub teardown_receipt_ref: Option<String>,
4578 #[serde(rename = "evidence_pack_refs", skip_serializing_if = "Option::is_none")]
4579 pub evidence_pack_refs: Option<Vec<String>>,
4580 #[serde(rename = "secret_grant_refs", skip_serializing_if = "Option::is_none")]
4581 pub secret_grant_refs: Option<Vec<String>>,
4582 #[serde(rename = "start_receipt_refs", skip_serializing_if = "Option::is_none")]
4583 pub start_receipt_refs: Option<Vec<String>>,
4584 #[serde(rename = "verification_command", skip_serializing_if = "Option::is_none")]
4585 pub verification_command: Option<String>,
4586 #[serde(rename = "teardown_command", skip_serializing_if = "Option::is_none")]
4587 pub teardown_command: Option<String>,
4588 #[serde(rename = "runtime_handles", skip_serializing_if = "Option::is_none")]
4589 pub runtime_handles: Option<std::collections::HashMap<String, serde_json::Value>>,
4590}
4591
4592impl LaunchpadRun {
4593 pub fn new() -> LaunchpadRun {
4594 LaunchpadRun {
4595 launch_id: None,
4596 run_id: None,
4597 app_id: None,
4598 substrate_id: None,
4599 state: None,
4600 kernel_verdict: None,
4601 reason: None,
4602 reason_code: None,
4603 plan_hash: None,
4604 launchplan_hash: None,
4605 install_receipt_ref: None,
4606 launch_receipt_ref: None,
4607 health_receipt_ref: None,
4608 teardown_receipt_ref: None,
4609 evidence_pack_refs: None,
4610 secret_grant_refs: None,
4611 start_receipt_refs: None,
4612 verification_command: None,
4613 teardown_command: None,
4614 runtime_handles: None,
4615 }
4616 }
4617}
4618
4619#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4631pub struct LaunchpadRunDetail {
4632 #[serde(rename = "run")]
4633 pub run: Box<LaunchpadRun>,
4634 #[serde(rename = "app", skip_serializing_if = "Option::is_none")]
4635 pub app: Option<Box<LaunchpadApp>>,
4636 #[serde(rename = "instance")]
4637 pub instance: Box<LaunchpadRuntimeInstance>,
4638 #[serde(rename = "gates")]
4639 pub gates: Vec<LaunchpadGateResult>,
4640 #[serde(rename = "events")]
4641 pub events: Vec<LaunchpadRunEvent>,
4642 #[serde(rename = "offline_verification", skip_serializing_if = "Option::is_none")]
4643 pub offline_verification: Option<std::collections::HashMap<String, serde_json::Value>>,
4644}
4645
4646impl LaunchpadRunDetail {
4647 pub fn new(run: LaunchpadRun, instance: LaunchpadRuntimeInstance, gates: Vec<LaunchpadGateResult>, events: Vec<LaunchpadRunEvent>) -> LaunchpadRunDetail {
4648 LaunchpadRunDetail {
4649 run: Box::new(run),
4650 app: None,
4651 instance: Box::new(instance),
4652 gates,
4653 events,
4654 offline_verification: None,
4655 }
4656 }
4657}
4658
4659#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4671pub struct LaunchpadRunEvent {
4672 #[serde(rename = "run_id")]
4673 pub run_id: String,
4674 #[serde(rename = "stage")]
4675 pub stage: String,
4676 #[serde(rename = "verdict")]
4677 pub verdict: String,
4678 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4679 pub reason_code: Option<String>,
4680 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4681 pub receipt_ref: Option<String>,
4682 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
4683 pub proofgraph_node: Option<String>,
4684 #[serde(rename = "evidence_refs", skip_serializing_if = "Option::is_none")]
4685 pub evidence_refs: Option<Vec<String>>,
4686 #[serde(rename = "raw_payload_ref", skip_serializing_if = "Option::is_none")]
4687 pub raw_payload_ref: Option<String>,
4688 #[serde(rename = "human_summary", skip_serializing_if = "Option::is_none")]
4689 pub human_summary: Option<String>,
4690 #[serde(rename = "why", skip_serializing_if = "Option::is_none")]
4691 pub why: Option<String>,
4692 #[serde(rename = "proof_status")]
4693 pub proof_status: String,
4694 #[serde(rename = "receipt_required", skip_serializing_if = "Option::is_none")]
4695 pub receipt_required: Option<bool>,
4696 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4697 pub cli_equivalent: Option<String>,
4698 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
4699 pub fix_actions: Option<Vec<LaunchpadFixAction>>,
4700 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
4701 pub created_at: Option<String>,
4702}
4703
4704impl LaunchpadRunEvent {
4705 pub fn new(run_id: String, stage: String, verdict: String, proof_status: String) -> LaunchpadRunEvent {
4706 LaunchpadRunEvent {
4707 run_id,
4708 stage,
4709 verdict,
4710 reason_code: None,
4711 receipt_ref: None,
4712 proofgraph_node: None,
4713 evidence_refs: None,
4714 raw_payload_ref: None,
4715 human_summary: None,
4716 why: None,
4717 proof_status,
4718 receipt_required: None,
4719 cli_equivalent: None,
4720 fix_actions: None,
4721 created_at: None,
4722 }
4723 }
4724}
4725
4726#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4738pub struct LaunchpadRuntimeInstance {
4739 #[serde(rename = "run_id")]
4740 pub run_id: String,
4741 #[serde(rename = "container_id", skip_serializing_if = "Option::is_none")]
4742 pub container_id: Option<String>,
4743 #[serde(rename = "launchplan_hash", skip_serializing_if = "Option::is_none")]
4744 pub launchplan_hash: Option<String>,
4745 #[serde(rename = "state")]
4746 pub state: String,
4747 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
4748 pub verdict: Option<String>,
4749 #[serde(rename = "active_grants", skip_serializing_if = "Option::is_none")]
4750 pub active_grants: Option<Vec<String>>,
4751 #[serde(rename = "receipt_refs", skip_serializing_if = "Option::is_none")]
4752 pub receipt_refs: Option<Vec<String>>,
4753 #[serde(rename = "evidencepack_ref", skip_serializing_if = "Option::is_none")]
4754 pub evidencepack_ref: Option<String>,
4755 #[serde(rename = "offline_verify_command", skip_serializing_if = "Option::is_none")]
4756 pub offline_verify_command: Option<String>,
4757 #[serde(rename = "teardown_command", skip_serializing_if = "Option::is_none")]
4758 pub teardown_command: Option<String>,
4759 #[serde(rename = "sandbox_grant", skip_serializing_if = "Option::is_none")]
4760 pub sandbox_grant: Option<Box<LaunchpadSandboxGrant>>,
4761 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4762 pub cli_equivalent: Option<String>,
4763}
4764
4765impl LaunchpadRuntimeInstance {
4766 pub fn new(run_id: String, state: String) -> LaunchpadRuntimeInstance {
4767 LaunchpadRuntimeInstance {
4768 run_id,
4769 container_id: None,
4770 launchplan_hash: None,
4771 state,
4772 verdict: None,
4773 active_grants: None,
4774 receipt_refs: None,
4775 evidencepack_ref: None,
4776 offline_verify_command: None,
4777 teardown_command: None,
4778 sandbox_grant: None,
4779 cli_equivalent: None,
4780 }
4781 }
4782}
4783
4784#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4796pub struct LaunchpadSandboxGrant {
4797 #[serde(rename = "backend_profile", skip_serializing_if = "Option::is_none")]
4798 pub backend_profile: Option<String>,
4799 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
4800 pub runtime: Option<String>,
4801 #[serde(rename = "runtime_version", skip_serializing_if = "Option::is_none")]
4802 pub runtime_version: Option<String>,
4803 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
4804 pub image_digest: Option<String>,
4805 #[serde(rename = "filesystem_preopens", skip_serializing_if = "Option::is_none")]
4806 pub filesystem_preopens: Option<Vec<String>>,
4807 #[serde(rename = "network_policy", skip_serializing_if = "Option::is_none")]
4808 pub network_policy: Option<Vec<String>>,
4809 #[serde(rename = "env", skip_serializing_if = "Option::is_none")]
4810 pub env: Option<Vec<String>>,
4811 #[serde(rename = "resource_limits", skip_serializing_if = "Option::is_none")]
4812 pub resource_limits: Option<std::collections::HashMap<String, String>>,
4813 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
4814 pub policy_epoch: Option<String>,
4815 #[serde(rename = "grant_hash", skip_serializing_if = "Option::is_none")]
4816 pub grant_hash: Option<String>,
4817 #[serde(rename = "proof_status", skip_serializing_if = "Option::is_none")]
4818 pub proof_status: Option<String>,
4819}
4820
4821impl LaunchpadSandboxGrant {
4822 pub fn new() -> LaunchpadSandboxGrant {
4823 LaunchpadSandboxGrant {
4824 backend_profile: None,
4825 runtime: None,
4826 runtime_version: None,
4827 image_digest: None,
4828 filesystem_preopens: None,
4829 network_policy: None,
4830 env: None,
4831 resource_limits: None,
4832 policy_epoch: None,
4833 grant_hash: None,
4834 proof_status: None,
4835 }
4836 }
4837}
4838
4839#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4851pub struct LaunchpadSecretGrant {
4852 #[serde(rename = "name")]
4853 pub name: String,
4854 #[serde(rename = "required", skip_serializing_if = "Option::is_none")]
4855 pub required: Option<bool>,
4856 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
4857 pub provider: Option<String>,
4858 #[serde(rename = "scope", skip_serializing_if = "Option::is_none")]
4859 pub scope: Option<String>,
4860 #[serde(rename = "status")]
4861 pub status: String,
4862 #[serde(rename = "launch_impact", skip_serializing_if = "Option::is_none")]
4863 pub launch_impact: Option<String>,
4864 #[serde(rename = "grant_ref", skip_serializing_if = "Option::is_none")]
4865 pub grant_ref: Option<String>,
4866 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4867 pub receipt_ref: Option<String>,
4868 #[serde(rename = "value_env", skip_serializing_if = "Option::is_none")]
4869 pub value_env: Option<String>,
4870}
4871
4872impl LaunchpadSecretGrant {
4873 pub fn new(name: String, status: String) -> LaunchpadSecretGrant {
4874 LaunchpadSecretGrant {
4875 name,
4876 required: None,
4877 provider: None,
4878 scope: None,
4879 status,
4880 launch_impact: None,
4881 grant_ref: None,
4882 receipt_ref: None,
4883 value_env: None,
4884 }
4885 }
4886}
4887
4888#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4900pub struct LaunchpadSubstrate {
4901 #[serde(rename = "id")]
4902 pub id: String,
4903 #[serde(rename = "name")]
4904 pub name: String,
4905 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
4906 pub kind: Option<String>,
4907 #[serde(rename = "availability", skip_serializing_if = "Option::is_none")]
4908 pub availability: Option<String>,
4909 #[serde(rename = "default_dry_run", skip_serializing_if = "Option::is_none")]
4910 pub default_dry_run: Option<bool>,
4911 #[serde(rename = "blocked_reason", skip_serializing_if = "Option::is_none")]
4912 pub blocked_reason: Option<String>,
4913}
4914
4915impl LaunchpadSubstrate {
4916 pub fn new(id: String, name: String) -> LaunchpadSubstrate {
4917 LaunchpadSubstrate {
4918 id,
4919 name,
4920 kind: None,
4921 availability: None,
4922 default_dry_run: None,
4923 blocked_reason: None,
4924 }
4925 }
4926}
4927
4928#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4940pub struct ListConsoleSurfaces200Response {
4941 #[serde(rename = "surfaces", skip_serializing_if = "Option::is_none")]
4942 pub surfaces: Option<Vec<ConsoleSurfaceRef>>,
4943}
4944
4945impl ListConsoleSurfaces200Response {
4946 pub fn new() -> ListConsoleSurfaces200Response {
4947 ListConsoleSurfaces200Response {
4948 surfaces: None,
4949 }
4950 }
4951}
4952
4953#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4965pub struct ListLaunchpadApps200Response {
4966 #[serde(rename = "apps")]
4967 pub apps: Vec<LaunchpadApp>,
4968}
4969
4970impl ListLaunchpadApps200Response {
4971 pub fn new(apps: Vec<LaunchpadApp>) -> ListLaunchpadApps200Response {
4972 ListLaunchpadApps200Response {
4973 apps,
4974 }
4975 }
4976}
4977
4978#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4990pub struct ListLaunchpadImports200Response {
4991 #[serde(rename = "imports")]
4992 pub imports: Vec<LaunchpadImportRecord>,
4993 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4994 pub cli_equivalent: Option<String>,
4995}
4996
4997impl ListLaunchpadImports200Response {
4998 pub fn new(imports: Vec<LaunchpadImportRecord>) -> ListLaunchpadImports200Response {
4999 ListLaunchpadImports200Response {
5000 imports,
5001 cli_equivalent: None,
5002 }
5003 }
5004}
5005
5006#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5018pub struct ListLaunchpadRunEvents200Response {
5019 #[serde(rename = "events", skip_serializing_if = "Option::is_none")]
5020 pub events: Option<Vec<LaunchpadRunEvent>>,
5021}
5022
5023impl ListLaunchpadRunEvents200Response {
5024 pub fn new() -> ListLaunchpadRunEvents200Response {
5025 ListLaunchpadRunEvents200Response {
5026 events: None,
5027 }
5028 }
5029}
5030
5031#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5043pub struct ListLaunchpadRuns200Response {
5044 #[serde(rename = "runs", skip_serializing_if = "Option::is_none")]
5045 pub runs: Option<Vec<LaunchpadRun>>,
5046 #[serde(rename = "instances", skip_serializing_if = "Option::is_none")]
5047 pub instances: Option<Vec<LaunchpadRuntimeInstance>>,
5048}
5049
5050impl ListLaunchpadRuns200Response {
5051 pub fn new() -> ListLaunchpadRuns200Response {
5052 ListLaunchpadRuns200Response {
5053 runs: None,
5054 instances: None,
5055 }
5056 }
5057}
5058
5059#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5071pub struct ListLaunchpadSecretGrants200Response {
5072 #[serde(rename = "secrets", skip_serializing_if = "Option::is_none")]
5073 pub secrets: Option<Vec<LaunchpadSecretGrant>>,
5074}
5075
5076impl ListLaunchpadSecretGrants200Response {
5077 pub fn new() -> ListLaunchpadSecretGrants200Response {
5078 ListLaunchpadSecretGrants200Response {
5079 secrets: None,
5080 }
5081 }
5082}
5083
5084#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5096pub struct ListLaunchpadSubstrates200Response {
5097 #[serde(rename = "substrates")]
5098 pub substrates: Vec<LaunchpadSubstrate>,
5099}
5100
5101impl ListLaunchpadSubstrates200Response {
5102 pub fn new(substrates: Vec<LaunchpadSubstrate>) -> ListLaunchpadSubstrates200Response {
5103 ListLaunchpadSubstrates200Response {
5104 substrates,
5105 }
5106 }
5107}
5108
5109#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5121pub struct LocalConsoleRuntimeConfig {
5122 #[serde(rename = "api_base_url")]
5123 pub api_base_url: String,
5124 #[serde(rename = "local_mode")]
5125 pub local_mode: bool,
5126 #[serde(rename = "start_onboarding")]
5127 pub start_onboarding: bool,
5128 #[serde(rename = "tenant_id")]
5129 pub tenant_id: String,
5130 #[serde(rename = "principal_id")]
5131 pub principal_id: String,
5132 #[serde(rename = "profile")]
5133 pub profile: LocalConsoleRuntimeConfigProfile,
5134 #[serde(rename = "entitlements")]
5135 pub entitlements: Vec<LocalConsoleRuntimeConfigEntitlements>,
5136}
5137
5138impl LocalConsoleRuntimeConfig {
5139 pub fn new(api_base_url: String, local_mode: bool, start_onboarding: bool, tenant_id: String, principal_id: String, profile: LocalConsoleRuntimeConfigProfile, entitlements: Vec<LocalConsoleRuntimeConfigEntitlements>) -> LocalConsoleRuntimeConfig {
5140 LocalConsoleRuntimeConfig {
5141 api_base_url,
5142 local_mode,
5143 start_onboarding,
5144 tenant_id,
5145 principal_id,
5146 profile,
5147 entitlements,
5148 }
5149 }
5150}
5151#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5153pub enum LocalConsoleRuntimeConfigProfile {
5154 #[serde(rename = "claude")]
5155 Claude,
5156 #[serde(rename = "codex")]
5157 Codex,
5158 #[serde(rename = "mcp")]
5159 Mcp,
5160 #[serde(rename = "openai-compatible")]
5161 OpenaiCompatible,
5162}
5163
5164impl Default for LocalConsoleRuntimeConfigProfile {
5165 fn default() -> LocalConsoleRuntimeConfigProfile {
5166 Self::Claude
5167 }
5168}
5169#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5171pub enum LocalConsoleRuntimeConfigEntitlements {
5172 #[serde(rename = "OSS_CORE")]
5173 OssCore,
5174}
5175
5176impl Default for LocalConsoleRuntimeConfigEntitlements {
5177 fn default() -> LocalConsoleRuntimeConfigEntitlements {
5178 Self::OssCore
5179 }
5180}
5181
5182#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5194pub struct LocalSessionExchangeRequest {
5195 #[serde(rename = "token")]
5196 pub token: String,
5197}
5198
5199impl LocalSessionExchangeRequest {
5200 pub fn new(token: String) -> LocalSessionExchangeRequest {
5201 LocalSessionExchangeRequest {
5202 token,
5203 }
5204 }
5205}
5206
5207#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5219pub struct LocalSessionExchangeResponse {
5220 #[serde(rename = "session_token")]
5221 pub session_token: String,
5222 #[serde(rename = "tenant_id")]
5223 pub tenant_id: String,
5224 #[serde(rename = "principal_id")]
5225 pub principal_id: String,
5226 #[serde(rename = "principal")]
5227 pub principal: String,
5228 #[serde(rename = "expires_at")]
5229 pub expires_at: String,
5230 #[serde(rename = "entitlements")]
5231 pub entitlements: Vec<LocalSessionExchangeResponseEntitlements>,
5232}
5233
5234impl LocalSessionExchangeResponse {
5235 pub fn new(session_token: String, tenant_id: String, principal_id: String, principal: String, expires_at: String, entitlements: Vec<LocalSessionExchangeResponseEntitlements>) -> LocalSessionExchangeResponse {
5236 LocalSessionExchangeResponse {
5237 session_token,
5238 tenant_id,
5239 principal_id,
5240 principal,
5241 expires_at,
5242 entitlements,
5243 }
5244 }
5245}
5246#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5248pub enum LocalSessionExchangeResponseEntitlements {
5249 #[serde(rename = "OSS_CORE")]
5250 OssCore,
5251}
5252
5253impl Default for LocalSessionExchangeResponseEntitlements {
5254 fn default() -> LocalSessionExchangeResponseEntitlements {
5255 Self::OssCore
5256 }
5257}
5258
5259#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5271pub struct McpAuthorizationProfile {
5272 #[serde(rename = "profile_id", skip_serializing_if = "Option::is_none")]
5273 pub profile_id: Option<String>,
5274 #[serde(rename = "protocol_version", skip_serializing_if = "Option::is_none")]
5275 pub protocol_version: Option<String>,
5276 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
5277 pub resource: Option<String>,
5278 #[serde(rename = "authorization_servers", skip_serializing_if = "Option::is_none")]
5279 pub authorization_servers: Option<Vec<String>>,
5280 #[serde(rename = "scopes_supported", skip_serializing_if = "Option::is_none")]
5281 pub scopes_supported: Option<Vec<String>>,
5282 #[serde(rename = "tool_scopes", skip_serializing_if = "Option::is_none")]
5283 pub tool_scopes: Option<std::collections::HashMap<String, serde_json::Value>>,
5284 #[serde(rename = "required_audience", skip_serializing_if = "Option::is_none")]
5285 pub required_audience: Option<String>,
5286 #[serde(rename = "stale_after", skip_serializing_if = "Option::is_none")]
5287 pub stale_after: Option<String>,
5288 #[serde(rename = "profile_hash", skip_serializing_if = "Option::is_none")]
5289 pub profile_hash: Option<String>,
5290}
5291
5292impl McpAuthorizationProfile {
5293 pub fn new() -> McpAuthorizationProfile {
5294 McpAuthorizationProfile {
5295 profile_id: None,
5296 protocol_version: None,
5297 resource: None,
5298 authorization_servers: None,
5299 scopes_supported: None,
5300 tool_scopes: None,
5301 required_audience: None,
5302 stale_after: None,
5303 profile_hash: None,
5304 }
5305 }
5306}
5307
5308#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5320pub struct McpAuthorizeCallRequest {
5321 #[serde(rename = "server_id")]
5322 pub server_id: String,
5323 #[serde(rename = "tool_name")]
5324 pub tool_name: String,
5325 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
5326 pub args_hash: Option<String>,
5327 #[serde(rename = "granted_scopes", skip_serializing_if = "Option::is_none")]
5328 pub granted_scopes: Option<Vec<String>>,
5329 #[serde(rename = "pinned_schema_hash", skip_serializing_if = "Option::is_none")]
5330 pub pinned_schema_hash: Option<String>,
5331 #[serde(rename = "tool_schema", skip_serializing_if = "Option::is_none")]
5332 pub tool_schema: Option<std::collections::HashMap<String, serde_json::Value>>,
5333 #[serde(rename = "output_schema", skip_serializing_if = "Option::is_none")]
5334 pub output_schema: Option<std::collections::HashMap<String, serde_json::Value>>,
5335 #[serde(rename = "oauth_resource", skip_serializing_if = "Option::is_none")]
5336 pub oauth_resource: Option<String>,
5337 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
5338 pub receipt_id: Option<String>,
5339}
5340
5341impl McpAuthorizeCallRequest {
5342 pub fn new(server_id: String, tool_name: String) -> McpAuthorizeCallRequest {
5343 McpAuthorizeCallRequest {
5344 server_id,
5345 tool_name,
5346 args_hash: None,
5347 granted_scopes: None,
5348 pinned_schema_hash: None,
5349 tool_schema: None,
5350 output_schema: None,
5351 oauth_resource: None,
5352 receipt_id: None,
5353 }
5354 }
5355}
5356
5357#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5369pub struct McpCapabilityManifest {
5370 #[serde(rename = "server_name", skip_serializing_if = "Option::is_none")]
5371 pub server_name: Option<String>,
5372 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
5373 pub version: Option<String>,
5374 #[serde(rename = "governance", skip_serializing_if = "Option::is_none")]
5375 pub governance: Option<String>,
5376 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
5377 pub tools: Option<Vec<McpToolRef>>,
5378}
5379
5380impl McpCapabilityManifest {
5381 pub fn new() -> McpCapabilityManifest {
5382 McpCapabilityManifest {
5383 server_name: None,
5384 version: None,
5385 governance: None,
5386 tools: None,
5387 }
5388 }
5389}
5390
5391#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5403pub struct McpProtectedResourceMetadata {
5404 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
5405 pub resource: Option<String>,
5406 #[serde(rename = "authorization_servers", skip_serializing_if = "Option::is_none")]
5407 pub authorization_servers: Option<Vec<String>>,
5408 #[serde(rename = "scopes_supported", skip_serializing_if = "Option::is_none")]
5409 pub scopes_supported: Option<Vec<String>>,
5410 #[serde(rename = "bearer_methods_supported", skip_serializing_if = "Option::is_none")]
5411 pub bearer_methods_supported: Option<Vec<String>>,
5412 #[serde(rename = "resource_documentation", skip_serializing_if = "Option::is_none")]
5413 pub resource_documentation: Option<String>,
5414}
5415
5416impl McpProtectedResourceMetadata {
5417 pub fn new() -> McpProtectedResourceMetadata {
5418 McpProtectedResourceMetadata {
5419 resource: None,
5420 authorization_servers: None,
5421 scopes_supported: None,
5422 bearer_methods_supported: None,
5423 resource_documentation: None,
5424 }
5425 }
5426}
5427
5428#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5440pub struct McpQuarantineRecord {
5441 #[serde(rename = "server_id")]
5442 pub server_id: String,
5443 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5444 pub name: Option<String>,
5445 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
5446 pub transport: Option<String>,
5447 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
5448 pub endpoint: Option<String>,
5449 #[serde(rename = "tool_names", skip_serializing_if = "Option::is_none")]
5450 pub tool_names: Option<Vec<String>>,
5451 #[serde(rename = "risk")]
5452 pub risk: McpQuarantineRecordRisk,
5453 #[serde(rename = "state")]
5454 pub state: McpQuarantineRecordState,
5455 #[serde(rename = "discovered_at")]
5456 pub discovered_at: String,
5457 #[serde(rename = "approved_at", skip_serializing_if = "Option::is_none")]
5458 pub approved_at: Option<String>,
5459 #[serde(rename = "approved_by", skip_serializing_if = "Option::is_none")]
5460 pub approved_by: Option<String>,
5461 #[serde(rename = "approval_receipt_id", skip_serializing_if = "Option::is_none")]
5462 pub approval_receipt_id: Option<String>,
5463 #[serde(rename = "revoked_at", skip_serializing_if = "Option::is_none")]
5464 pub revoked_at: Option<String>,
5465 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
5466 pub expires_at: Option<String>,
5467 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
5468 pub reason: Option<String>,
5469}
5470
5471impl McpQuarantineRecord {
5472 pub fn new(server_id: String, risk: McpQuarantineRecordRisk, state: McpQuarantineRecordState, discovered_at: String) -> McpQuarantineRecord {
5473 McpQuarantineRecord {
5474 server_id,
5475 name: None,
5476 transport: None,
5477 endpoint: None,
5478 tool_names: None,
5479 risk,
5480 state,
5481 discovered_at,
5482 approved_at: None,
5483 approved_by: None,
5484 approval_receipt_id: None,
5485 revoked_at: None,
5486 expires_at: None,
5487 reason: None,
5488 }
5489 }
5490}
5491#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5493pub enum McpQuarantineRecordRisk {
5494 #[serde(rename = "unknown")]
5495 Unknown,
5496 #[serde(rename = "low")]
5497 Low,
5498 #[serde(rename = "medium")]
5499 Medium,
5500 #[serde(rename = "high")]
5501 High,
5502 #[serde(rename = "critical")]
5503 Critical,
5504}
5505
5506impl Default for McpQuarantineRecordRisk {
5507 fn default() -> McpQuarantineRecordRisk {
5508 Self::Unknown
5509 }
5510}
5511#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5513pub enum McpQuarantineRecordState {
5514 #[serde(rename = "discovered")]
5515 Discovered,
5516 #[serde(rename = "quarantined")]
5517 Quarantined,
5518 #[serde(rename = "approved")]
5519 Approved,
5520 #[serde(rename = "revoked")]
5521 Revoked,
5522 #[serde(rename = "expired")]
5523 Expired,
5524}
5525
5526impl Default for McpQuarantineRecordState {
5527 fn default() -> McpQuarantineRecordState {
5528 Self::Discovered
5529 }
5530}
5531
5532#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5544pub struct McpRegistryApprovalRequest {
5545 #[serde(rename = "server_id")]
5546 pub server_id: String,
5547 #[serde(rename = "approver_id")]
5548 pub approver_id: String,
5549 #[serde(rename = "approval_receipt_id")]
5550 pub approval_receipt_id: String,
5551 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
5552 pub reason: Option<String>,
5553}
5554
5555impl McpRegistryApprovalRequest {
5556 pub fn new(server_id: String, approver_id: String, approval_receipt_id: String) -> McpRegistryApprovalRequest {
5557 McpRegistryApprovalRequest {
5558 server_id,
5559 approver_id,
5560 approval_receipt_id,
5561 reason: None,
5562 }
5563 }
5564}
5565
5566#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5578pub struct McpRegistryDiscoverRequest {
5579 #[serde(rename = "server_id")]
5580 pub server_id: String,
5581 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5582 pub name: Option<String>,
5583 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
5584 pub transport: Option<String>,
5585 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
5586 pub endpoint: Option<String>,
5587 #[serde(rename = "tool_names", skip_serializing_if = "Option::is_none")]
5588 pub tool_names: Option<Vec<String>>,
5589 #[serde(rename = "risk", skip_serializing_if = "Option::is_none")]
5590 pub risk: Option<McpRegistryDiscoverRequestRisk>,
5591 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
5592 pub reason: Option<String>,
5593}
5594
5595impl McpRegistryDiscoverRequest {
5596 pub fn new(server_id: String) -> McpRegistryDiscoverRequest {
5597 McpRegistryDiscoverRequest {
5598 server_id,
5599 name: None,
5600 transport: None,
5601 endpoint: None,
5602 tool_names: None,
5603 risk: None,
5604 reason: None,
5605 }
5606 }
5607}
5608#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5610pub enum McpRegistryDiscoverRequestRisk {
5611 #[serde(rename = "unknown")]
5612 Unknown,
5613 #[serde(rename = "low")]
5614 Low,
5615 #[serde(rename = "medium")]
5616 Medium,
5617 #[serde(rename = "high")]
5618 High,
5619 #[serde(rename = "critical")]
5620 Critical,
5621}
5622
5623impl Default for McpRegistryDiscoverRequestRisk {
5624 fn default() -> McpRegistryDiscoverRequestRisk {
5625 Self::Unknown
5626 }
5627}
5628
5629#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5641pub struct McpRemoteDiscovery {
5642 #[serde(rename = "server_name", skip_serializing_if = "Option::is_none")]
5643 pub server_name: Option<String>,
5644 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
5645 pub version: Option<String>,
5646 #[serde(rename = "capabilities_url", skip_serializing_if = "Option::is_none")]
5647 pub capabilities_url: Option<String>,
5648 #[serde(rename = "execute_url", skip_serializing_if = "Option::is_none")]
5649 pub execute_url: Option<String>,
5650 #[serde(rename = "mcp_endpoint", skip_serializing_if = "Option::is_none")]
5651 pub mcp_endpoint: Option<String>,
5652 #[serde(rename = "supported_protocol_versions", skip_serializing_if = "Option::is_none")]
5653 pub supported_protocol_versions: Option<Vec<String>>,
5654 #[serde(rename = "auth_mode", skip_serializing_if = "Option::is_none")]
5655 pub auth_mode: Option<String>,
5656 #[serde(rename = "governance", skip_serializing_if = "Option::is_none")]
5657 pub governance: Option<String>,
5658}
5659
5660impl McpRemoteDiscovery {
5661 pub fn new() -> McpRemoteDiscovery {
5662 McpRemoteDiscovery {
5663 server_name: None,
5664 version: None,
5665 capabilities_url: None,
5666 execute_url: None,
5667 mcp_endpoint: None,
5668 supported_protocol_versions: None,
5669 auth_mode: None,
5670 governance: None,
5671 }
5672 }
5673}
5674
5675#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5687pub struct McpScanRequest {
5688 #[serde(rename = "server_id")]
5689 pub server_id: String,
5690 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5691 pub name: Option<String>,
5692 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
5693 pub transport: Option<String>,
5694 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
5695 pub endpoint: Option<String>,
5696 #[serde(rename = "tool_names", skip_serializing_if = "Option::is_none")]
5697 pub tool_names: Option<Vec<String>>,
5698 #[serde(rename = "manifest", skip_serializing_if = "Option::is_none")]
5699 pub manifest: Option<std::collections::HashMap<String, serde_json::Value>>,
5700}
5701
5702impl McpScanRequest {
5703 pub fn new(server_id: String) -> McpScanRequest {
5704 McpScanRequest {
5705 server_id,
5706 name: None,
5707 transport: None,
5708 endpoint: None,
5709 tool_names: None,
5710 manifest: None,
5711 }
5712 }
5713}
5714
5715#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5727pub struct McpScanResult {
5728 #[serde(rename = "server_id", skip_serializing_if = "Option::is_none")]
5729 pub server_id: Option<String>,
5730 #[serde(rename = "risk", skip_serializing_if = "Option::is_none")]
5731 pub risk: Option<String>,
5732 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
5733 pub state: Option<String>,
5734 #[serde(rename = "tool_count", skip_serializing_if = "Option::is_none")]
5735 pub tool_count: Option<i32>,
5736 #[serde(rename = "findings", skip_serializing_if = "Option::is_none")]
5737 pub findings: Option<Vec<String>>,
5738 #[serde(rename = "recommended_action", skip_serializing_if = "Option::is_none")]
5739 pub recommended_action: Option<String>,
5740 #[serde(rename = "quarantine_record_id", skip_serializing_if = "Option::is_none")]
5741 pub quarantine_record_id: Option<String>,
5742 #[serde(rename = "requires_approval", skip_serializing_if = "Option::is_none")]
5743 pub requires_approval: Option<bool>,
5744 #[serde(rename = "schema_pin_required", skip_serializing_if = "Option::is_none")]
5745 pub schema_pin_required: Option<bool>,
5746 #[serde(rename = "authorization_needed", skip_serializing_if = "Option::is_none")]
5747 pub authorization_needed: Option<bool>,
5748 #[serde(rename = "scanned_at", skip_serializing_if = "Option::is_none")]
5749 pub scanned_at: Option<String>,
5750}
5751
5752impl McpScanResult {
5753 pub fn new() -> McpScanResult {
5754 McpScanResult {
5755 server_id: None,
5756 risk: None,
5757 state: None,
5758 tool_count: None,
5759 findings: None,
5760 recommended_action: None,
5761 quarantine_record_id: None,
5762 requires_approval: None,
5763 schema_pin_required: None,
5764 authorization_needed: None,
5765 scanned_at: None,
5766 }
5767 }
5768}
5769
5770#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5782pub struct McpToolCallRequest {
5783 #[serde(rename = "method")]
5784 pub method: String,
5785 #[serde(rename = "params", skip_serializing_if = "Option::is_none")]
5786 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
5787}
5788
5789impl McpToolCallRequest {
5790 pub fn new(method: String) -> McpToolCallRequest {
5791 McpToolCallRequest {
5792 method,
5793 params: None,
5794 }
5795 }
5796}
5797
5798#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5810pub struct McpToolCallResponse {
5811 #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
5812 pub result: Option<Box<McpToolCallResponseResult>>,
5813 #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
5814 pub error: Option<String>,
5815 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
5816 pub reason_code: Option<String>,
5817 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
5818 pub args_hash: Option<String>,
5819 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
5820 pub proofgraph_node: Option<String>,
5821 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
5822 pub receipt_id: Option<String>,
5823}
5824
5825impl McpToolCallResponse {
5826 pub fn new() -> McpToolCallResponse {
5827 McpToolCallResponse {
5828 result: None,
5829 error: None,
5830 reason_code: None,
5831 args_hash: None,
5832 proofgraph_node: None,
5833 receipt_id: None,
5834 }
5835 }
5836}
5837
5838#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
5852#[serde(untagged)]
5853pub enum McpToolCallResponseResult {
5854 String(String),
5855 Object(std::collections::HashMap<String, serde_json::Value>),
5856}
5857
5858impl Default for McpToolCallResponseResult {
5859 fn default() -> Self {
5860 Self::String(Default::default())
5861 }
5862}
5863
5864#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5876pub struct McpToolRef {
5877 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5878 pub name: Option<String>,
5879 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
5880 pub description: Option<String>,
5881 #[serde(rename = "server_id", skip_serializing_if = "Option::is_none")]
5882 pub server_id: Option<String>,
5883 #[serde(rename = "schema", skip_serializing_if = "Option::is_none")]
5884 pub schema: Option<std::collections::HashMap<String, serde_json::Value>>,
5885}
5886
5887impl McpToolRef {
5888 pub fn new() -> McpToolRef {
5889 McpToolRef {
5890 name: None,
5891 description: None,
5892 server_id: None,
5893 schema: None,
5894 }
5895 }
5896}
5897
5898#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5910pub struct McpjsonrpcError {
5911 #[serde(rename = "code", skip_serializing_if = "Option::is_none")]
5912 pub code: Option<i32>,
5913 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
5914 pub message: Option<String>,
5915}
5916
5917impl McpjsonrpcError {
5918 pub fn new() -> McpjsonrpcError {
5919 McpjsonrpcError {
5920 code: None,
5921 message: None,
5922 }
5923 }
5924}
5925
5926#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5938pub struct McpjsonrpcRequest {
5939 #[serde(rename = "jsonrpc")]
5940 pub jsonrpc: McpjsonrpcRequestJsonrpc,
5941 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
5942 pub id: Option<Box<McpjsonrpcRequestId>>,
5943 #[serde(rename = "method")]
5944 pub method: String,
5945 #[serde(rename = "params", skip_serializing_if = "Option::is_none")]
5946 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
5947}
5948
5949impl McpjsonrpcRequest {
5950 pub fn new(jsonrpc: McpjsonrpcRequestJsonrpc, method: String) -> McpjsonrpcRequest {
5951 McpjsonrpcRequest {
5952 jsonrpc,
5953 id: None,
5954 method,
5955 params: None,
5956 }
5957 }
5958}
5959#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5961pub enum McpjsonrpcRequestJsonrpc {
5962 #[serde(rename = "2.0")]
5963 Variant2Period0,
5964}
5965
5966impl Default for McpjsonrpcRequestJsonrpc {
5967 fn default() -> McpjsonrpcRequestJsonrpc {
5968 Self::Variant2Period0
5969 }
5970}
5971
5972#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
5986#[serde(untagged)]
5987pub enum McpjsonrpcRequestId {
5988 String(String),
5989 Integer(i32),
5990}
5991
5992impl Default for McpjsonrpcRequestId {
5993 fn default() -> Self {
5994 Self::String(Default::default())
5995 }
5996}
5997
5998#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6010pub struct McpjsonrpcResponse {
6011 #[serde(rename = "jsonrpc", skip_serializing_if = "Option::is_none")]
6012 pub jsonrpc: Option<McpjsonrpcResponseJsonrpc>,
6013 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
6014 pub id: Option<Box<McpjsonrpcResponseId>>,
6015 #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
6016 pub result: Option<std::collections::HashMap<String, serde_json::Value>>,
6017 #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
6018 pub error: Option<Box<McpjsonrpcError>>,
6019}
6020
6021impl McpjsonrpcResponse {
6022 pub fn new() -> McpjsonrpcResponse {
6023 McpjsonrpcResponse {
6024 jsonrpc: None,
6025 id: None,
6026 result: None,
6027 error: None,
6028 }
6029 }
6030}
6031#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6033pub enum McpjsonrpcResponseJsonrpc {
6034 #[serde(rename = "2.0")]
6035 Variant2Period0,
6036}
6037
6038impl Default for McpjsonrpcResponseJsonrpc {
6039 fn default() -> McpjsonrpcResponseJsonrpc {
6040 Self::Variant2Period0
6041 }
6042}
6043
6044#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
6056#[serde(untagged)]
6057pub enum McpjsonrpcResponseId {
6058 String(String),
6059 Integer(i32),
6060}
6061
6062impl Default for McpjsonrpcResponseId {
6063 fn default() -> Self {
6064 Self::String(Default::default())
6065 }
6066}
6067
6068#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6080pub struct NegativeBoundaryVector {
6081 #[serde(rename = "id")]
6082 pub id: String,
6083 #[serde(rename = "category")]
6084 pub category: String,
6085 #[serde(rename = "trigger")]
6086 pub trigger: String,
6087 #[serde(rename = "expected_verdict")]
6088 pub expected_verdict: NegativeBoundaryVectorExpectedVerdict,
6089 #[serde(rename = "expected_reason_code")]
6090 pub expected_reason_code: String,
6091 #[serde(rename = "must_emit_receipt")]
6092 pub must_emit_receipt: bool,
6093 #[serde(rename = "must_not_dispatch")]
6094 pub must_not_dispatch: bool,
6095 #[serde(rename = "must_bind_evidence", skip_serializing_if = "Option::is_none")]
6096 pub must_bind_evidence: Option<Vec<String>>,
6097}
6098
6099impl NegativeBoundaryVector {
6100 pub fn new(id: String, category: String, trigger: String, expected_verdict: NegativeBoundaryVectorExpectedVerdict, expected_reason_code: String, must_emit_receipt: bool, must_not_dispatch: bool) -> NegativeBoundaryVector {
6101 NegativeBoundaryVector {
6102 id,
6103 category,
6104 trigger,
6105 expected_verdict,
6106 expected_reason_code,
6107 must_emit_receipt,
6108 must_not_dispatch,
6109 must_bind_evidence: None,
6110 }
6111 }
6112}
6113#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6115pub enum NegativeBoundaryVectorExpectedVerdict {
6116 #[serde(rename = "ALLOW")]
6117 Allow,
6118 #[serde(rename = "DENY")]
6119 Deny,
6120 #[serde(rename = "ESCALATE")]
6121 Escalate,
6122}
6123
6124impl Default for NegativeBoundaryVectorExpectedVerdict {
6125 fn default() -> NegativeBoundaryVectorExpectedVerdict {
6126 Self::Allow
6127 }
6128}
6129
6130#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6142pub struct NetworkGrant {
6143 #[serde(rename = "mode")]
6144 pub mode: NetworkGrantMode,
6145 #[serde(rename = "destinations", skip_serializing_if = "Option::is_none")]
6146 pub destinations: Option<Vec<String>>,
6147 #[serde(rename = "cidrs", skip_serializing_if = "Option::is_none")]
6148 pub cidrs: Option<Vec<String>>,
6149}
6150
6151impl NetworkGrant {
6152 pub fn new(mode: NetworkGrantMode) -> NetworkGrant {
6153 NetworkGrant {
6154 mode,
6155 destinations: None,
6156 cidrs: None,
6157 }
6158 }
6159}
6160#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6162pub enum NetworkGrantMode {
6163 #[serde(rename = "deny-all")]
6164 DenyAll,
6165 #[serde(rename = "allowlist")]
6166 Allowlist,
6167}
6168
6169impl Default for NetworkGrantMode {
6170 fn default() -> NetworkGrantMode {
6171 Self::DenyAll
6172 }
6173}
6174
6175#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6187pub struct OAuthRequirement {
6188 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
6189 pub provider: Option<String>,
6190 #[serde(rename = "scopes", skip_serializing_if = "Option::is_none")]
6191 pub scopes: Option<Vec<String>>,
6192 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
6193 pub source: Option<String>,
6194}
6195
6196impl OAuthRequirement {
6197 pub fn new() -> OAuthRequirement {
6198 OAuthRequirement {
6199 provider: None,
6200 scopes: None,
6201 source: None,
6202 }
6203 }
6204}
6205
6206#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6218pub struct OnboardingEvidenceExport {
6219 #[serde(rename = "evidence_pack_ref")]
6220 pub evidence_pack_ref: String,
6221 #[serde(rename = "sha256")]
6222 pub sha256: String,
6223 #[serde(rename = "receipt_refs")]
6224 pub receipt_refs: std::collections::HashMap<String, String>,
6225 #[serde(rename = "steps")]
6226 pub steps: Vec<OnboardingStep>,
6227}
6228
6229impl OnboardingEvidenceExport {
6230 pub fn new(evidence_pack_ref: String, sha256: String, receipt_refs: std::collections::HashMap<String, String>, steps: Vec<OnboardingStep>) -> OnboardingEvidenceExport {
6231 OnboardingEvidenceExport {
6232 evidence_pack_ref,
6233 sha256,
6234 receipt_refs,
6235 steps,
6236 }
6237 }
6238}
6239
6240#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6252pub struct OnboardingRunStepRequest {
6253 #[serde(rename = "step_id")]
6254 pub step_id: OnboardingRunStepRequestStepId,
6255}
6256
6257impl OnboardingRunStepRequest {
6258 pub fn new(step_id: OnboardingRunStepRequestStepId) -> OnboardingRunStepRequest {
6259 OnboardingRunStepRequest {
6260 step_id,
6261 }
6262 }
6263}
6264#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6266pub enum OnboardingRunStepRequestStepId {
6267 #[serde(rename = "health")]
6268 Health,
6269 #[serde(rename = "policy")]
6270 Policy,
6271 #[serde(rename = "allow")]
6272 Allow,
6273 #[serde(rename = "deny")]
6274 Deny,
6275 #[serde(rename = "mcp")]
6276 Mcp,
6277 #[serde(rename = "verify")]
6278 Verify,
6279}
6280
6281impl Default for OnboardingRunStepRequestStepId {
6282 fn default() -> OnboardingRunStepRequestStepId {
6283 Self::Health
6284 }
6285}
6286
6287#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6299pub struct OnboardingState {
6300 #[serde(rename = "mode")]
6301 pub mode: OnboardingStateMode,
6302 #[serde(rename = "entitlements")]
6303 pub entitlements: Vec<OnboardingStateEntitlements>,
6304 #[serde(rename = "profile")]
6305 pub profile: String,
6306 #[serde(rename = "policy_path", skip_serializing_if = "Option::is_none")]
6307 pub policy_path: Option<String>,
6308 #[serde(rename = "evidence_pack_ref", skip_serializing_if = "Option::is_none")]
6309 pub evidence_pack_ref: Option<String>,
6310 #[serde(rename = "steps")]
6311 pub steps: Vec<OnboardingStep>,
6312}
6313
6314impl OnboardingState {
6315 pub fn new(mode: OnboardingStateMode, entitlements: Vec<OnboardingStateEntitlements>, profile: String, steps: Vec<OnboardingStep>) -> OnboardingState {
6316 OnboardingState {
6317 mode,
6318 entitlements,
6319 profile,
6320 policy_path: None,
6321 evidence_pack_ref: None,
6322 steps,
6323 }
6324 }
6325}
6326#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6328pub enum OnboardingStateMode {
6329 #[serde(rename = "self-hosted-oss")]
6330 SelfHostedOss,
6331}
6332
6333impl Default for OnboardingStateMode {
6334 fn default() -> OnboardingStateMode {
6335 Self::SelfHostedOss
6336 }
6337}
6338#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6340pub enum OnboardingStateEntitlements {
6341 #[serde(rename = "OSS_CORE")]
6342 OssCore,
6343}
6344
6345impl Default for OnboardingStateEntitlements {
6346 fn default() -> OnboardingStateEntitlements {
6347 Self::OssCore
6348 }
6349}
6350
6351#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6363pub struct OnboardingStep {
6364 #[serde(rename = "id")]
6365 pub id: OnboardingStepId,
6366 #[serde(rename = "title")]
6367 pub title: String,
6368 #[serde(rename = "description")]
6369 pub description: String,
6370 #[serde(rename = "status")]
6371 pub status: OnboardingStepStatus,
6372 #[serde(rename = "verdict")]
6373 pub verdict: OnboardingStepVerdict,
6374 #[serde(rename = "reason_code")]
6375 pub reason_code: String,
6376 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
6377 pub receipt_ref: Option<String>,
6378}
6379
6380impl OnboardingStep {
6381 pub fn new(id: OnboardingStepId, title: String, description: String, status: OnboardingStepStatus, verdict: OnboardingStepVerdict, reason_code: String) -> OnboardingStep {
6382 OnboardingStep {
6383 id,
6384 title,
6385 description,
6386 status,
6387 verdict,
6388 reason_code,
6389 receipt_ref: None,
6390 }
6391 }
6392}
6393#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6395pub enum OnboardingStepId {
6396 #[serde(rename = "health")]
6397 Health,
6398 #[serde(rename = "policy")]
6399 Policy,
6400 #[serde(rename = "allow")]
6401 Allow,
6402 #[serde(rename = "deny")]
6403 Deny,
6404 #[serde(rename = "mcp")]
6405 Mcp,
6406 #[serde(rename = "verify")]
6407 Verify,
6408}
6409
6410impl Default for OnboardingStepId {
6411 fn default() -> OnboardingStepId {
6412 Self::Health
6413 }
6414}
6415#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6417pub enum OnboardingStepStatus {
6418 #[serde(rename = "pending")]
6419 Pending,
6420 #[serde(rename = "pass")]
6421 Pass,
6422}
6423
6424impl Default for OnboardingStepStatus {
6425 fn default() -> OnboardingStepStatus {
6426 Self::Pending
6427 }
6428}
6429#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6431pub enum OnboardingStepVerdict {
6432 #[serde(rename = "ALLOW")]
6433 Allow,
6434 #[serde(rename = "DENY")]
6435 Deny,
6436 #[serde(rename = "ESCALATE")]
6437 Escalate,
6438}
6439
6440impl Default for OnboardingStepVerdict {
6441 fn default() -> OnboardingStepVerdict {
6442 Self::Allow
6443 }
6444}
6445
6446#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6459pub struct PdpRequest {
6460 #[serde(rename = "boundary")]
6461 pub boundary: Box<EffectBoundary>,
6462}
6463
6464impl PdpRequest {
6465 pub fn new(boundary: EffectBoundary) -> PdpRequest {
6467 PdpRequest {
6468 boundary: Box::new(boundary),
6469 }
6470 }
6471}
6472
6473#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6486pub struct PdpResponse {
6487 #[serde(rename = "decision")]
6488 pub decision: Box<GovernanceDecision>,
6489}
6490
6491impl PdpResponse {
6492 pub fn new(decision: GovernanceDecision) -> PdpResponse {
6494 PdpResponse {
6495 decision: Box::new(decision),
6496 }
6497 }
6498}
6499
6500#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6512pub struct PlanTransaction {
6513 #[serde(rename = "plan_transaction_id")]
6514 pub plan_transaction_id: String,
6515 #[serde(rename = "plan_hash")]
6516 pub plan_hash: String,
6517 #[serde(rename = "read_set")]
6518 pub read_set: Vec<String>,
6519 #[serde(rename = "write_set")]
6520 pub write_set: Vec<String>,
6521 #[serde(rename = "assumption_set")]
6522 pub assumption_set: Vec<String>,
6523 #[serde(rename = "version_dependencies", skip_serializing_if = "Option::is_none")]
6524 pub version_dependencies: Option<Vec<String>>,
6525 #[serde(rename = "verification_obligations")]
6526 pub verification_obligations: Vec<String>,
6527 #[serde(rename = "conflict_policy")]
6528 pub conflict_policy: PlanTransactionConflictPolicy,
6529 #[serde(rename = "rollback_policy", skip_serializing_if = "Option::is_none")]
6530 pub rollback_policy: Option<std::collections::HashMap<String, serde_json::Value>>,
6531 #[serde(rename = "rollback_or_compensation_policy", skip_serializing_if = "Option::is_none")]
6532 pub rollback_or_compensation_policy: Option<String>,
6533 #[serde(rename = "approval_state", skip_serializing_if = "Option::is_none")]
6534 pub approval_state: Option<PlanTransactionApprovalState>,
6535 #[serde(rename = "human_review_state", skip_serializing_if = "Option::is_none")]
6536 pub human_review_state: Option<String>,
6537 #[serde(rename = "transaction_hash", skip_serializing_if = "Option::is_none")]
6538 pub transaction_hash: Option<String>,
6539}
6540
6541impl PlanTransaction {
6542 pub fn new(plan_transaction_id: String, plan_hash: String, read_set: Vec<String>, write_set: Vec<String>, assumption_set: Vec<String>, verification_obligations: Vec<String>, conflict_policy: PlanTransactionConflictPolicy) -> PlanTransaction {
6543 PlanTransaction {
6544 plan_transaction_id,
6545 plan_hash,
6546 read_set,
6547 write_set,
6548 assumption_set,
6549 version_dependencies: None,
6550 verification_obligations,
6551 conflict_policy,
6552 rollback_policy: None,
6553 rollback_or_compensation_policy: None,
6554 approval_state: None,
6555 human_review_state: None,
6556 transaction_hash: None,
6557 }
6558 }
6559}
6560#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6562pub enum PlanTransactionConflictPolicy {
6563 #[serde(rename = "deny")]
6564 Deny,
6565 #[serde(rename = "escalate")]
6566 Escalate,
6567 #[serde(rename = "last_writer_forbidden")]
6568 LastWriterForbidden,
6569}
6570
6571impl Default for PlanTransactionConflictPolicy {
6572 fn default() -> PlanTransactionConflictPolicy {
6573 Self::Deny
6574 }
6575}
6576#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6578pub enum PlanTransactionApprovalState {
6579 #[serde(rename = "none")]
6580 None,
6581 #[serde(rename = "required")]
6582 Required,
6583 #[serde(rename = "approved")]
6584 Approved,
6585 #[serde(rename = "denied")]
6586 Denied,
6587 #[serde(rename = "expired")]
6588 Expired,
6589}
6590
6591impl Default for PlanTransactionApprovalState {
6592 fn default() -> PlanTransactionApprovalState {
6593 Self::None
6594 }
6595}
6596
6597#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6610pub struct PolicyBundle {
6611 #[serde(rename = "name")]
6612 pub name: String,
6613 #[serde(rename = "version")]
6614 pub version: String,
6615 #[serde(rename = "content_hash")]
6617 pub content_hash: String,
6618 #[serde(rename = "signature", default, skip_serializing_if = "Option::is_none")]
6620 pub signature: Option<Option<String>>,
6621 #[serde(rename = "pack_type", skip_serializing_if = "Option::is_none")]
6622 pub pack_type: Option<PolicyBundlePackType>,
6623}
6624
6625impl PolicyBundle {
6626 pub fn new(name: String, version: String, content_hash: String) -> PolicyBundle {
6628 PolicyBundle {
6629 name,
6630 version,
6631 content_hash,
6632 signature: None,
6633 pack_type: None,
6634 }
6635 }
6636}
6637#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6639pub enum PolicyBundlePackType {
6640 #[serde(rename = "jurisdiction")]
6641 Jurisdiction,
6642 #[serde(rename = "industry")]
6643 Industry,
6644 #[serde(rename = "business")]
6645 Business,
6646 #[serde(rename = "custom")]
6647 Custom,
6648}
6649
6650impl Default for PolicyBundlePackType {
6651 fn default() -> PolicyBundlePackType {
6652 Self::Jurisdiction
6653 }
6654}
6655
6656#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6668pub struct PreflightCheck {
6669 #[serde(rename = "id")]
6670 pub id: String,
6671 #[serde(rename = "status")]
6672 pub status: String,
6673 #[serde(rename = "summary")]
6674 pub summary: String,
6675 #[serde(rename = "evidence_ref", skip_serializing_if = "Option::is_none")]
6676 pub evidence_ref: Option<String>,
6677 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
6678 pub fix_actions: Option<Vec<String>>,
6679}
6680
6681impl PreflightCheck {
6682 pub fn new(id: String, status: String, summary: String) -> PreflightCheck {
6683 PreflightCheck {
6684 id,
6685 status,
6686 summary,
6687 evidence_ref: None,
6688 fix_actions: None,
6689 }
6690 }
6691}
6692
6693#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6705pub struct PreflightLaunchpadImport202Response {
6706 #[serde(rename = "import")]
6707 pub import: Box<LaunchpadImportRecord>,
6708 #[serde(rename = "preflight")]
6709 pub preflight: Box<ImportPreflightResult>,
6710 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
6711 pub cli_equivalent: Option<String>,
6712}
6713
6714impl PreflightLaunchpadImport202Response {
6715 pub fn new(import: LaunchpadImportRecord, preflight: ImportPreflightResult) -> PreflightLaunchpadImport202Response {
6716 PreflightLaunchpadImport202Response {
6717 import: Box::new(import),
6718 preflight: Box::new(preflight),
6719 cli_equivalent: None,
6720 }
6721 }
6722}
6723
6724#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6736pub struct Receipt {
6737 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
6738 pub receipt_id: Option<String>,
6739 #[serde(rename = "decision_id", skip_serializing_if = "Option::is_none")]
6740 pub decision_id: Option<String>,
6741 #[serde(rename = "effect_id", skip_serializing_if = "Option::is_none")]
6742 pub effect_id: Option<String>,
6743 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
6744 pub status: Option<String>,
6745 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
6746 pub reason_code: Option<String>,
6747 #[serde(rename = "output_hash", skip_serializing_if = "Option::is_none")]
6748 pub output_hash: Option<String>,
6749 #[serde(rename = "blob_hash", skip_serializing_if = "Option::is_none")]
6750 pub blob_hash: Option<String>,
6751 #[serde(rename = "prev_hash", skip_serializing_if = "Option::is_none")]
6752 pub prev_hash: Option<String>,
6753 #[serde(rename = "lamport_clock", skip_serializing_if = "Option::is_none")]
6754 pub lamport_clock: Option<i32>,
6755 #[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
6756 pub signature: Option<String>,
6757 #[serde(rename = "timestamp", skip_serializing_if = "Option::is_none")]
6758 pub timestamp: Option<String>,
6759 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
6760 pub principal: Option<String>,
6761 #[serde(rename = "executor_id", skip_serializing_if = "Option::is_none")]
6762 pub executor_id: Option<String>,
6763 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
6764 pub args_hash: Option<String>,
6765 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
6766 pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
6767}
6768
6769impl Receipt {
6770 pub fn new() -> Receipt {
6771 Receipt {
6772 receipt_id: None,
6773 decision_id: None,
6774 effect_id: None,
6775 status: None,
6776 reason_code: None,
6777 output_hash: None,
6778 blob_hash: None,
6779 prev_hash: None,
6780 lamport_clock: None,
6781 signature: None,
6782 timestamp: None,
6783 principal: None,
6784 executor_id: None,
6785 args_hash: None,
6786 metadata: None,
6787 }
6788 }
6789}
6790
6791#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6803pub struct ReceiptListResponse {
6804 #[serde(rename = "receipts", skip_serializing_if = "Option::is_none")]
6805 pub receipts: Option<Vec<Receipt>>,
6806 #[serde(rename = "count", skip_serializing_if = "Option::is_none")]
6807 pub count: Option<i32>,
6808 #[serde(rename = "next_cursor", skip_serializing_if = "Option::is_none")]
6809 pub next_cursor: Option<String>,
6810 #[serde(rename = "has_more", skip_serializing_if = "Option::is_none")]
6811 pub has_more: Option<bool>,
6812}
6813
6814impl ReceiptListResponse {
6815 pub fn new() -> ReceiptListResponse {
6816 ReceiptListResponse {
6817 receipts: None,
6818 count: None,
6819 next_cursor: None,
6820 has_more: None,
6821 }
6822 }
6823}
6824
6825#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6837pub struct RevokeMcpRegistryRecordRequest {
6838 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
6839 pub reason: Option<String>,
6840}
6841
6842impl RevokeMcpRegistryRecordRequest {
6843 pub fn new() -> RevokeMcpRegistryRecordRequest {
6844 RevokeMcpRegistryRecordRequest {
6845 reason: None,
6846 }
6847 }
6848}
6849
6850#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6862pub struct RevokeTrustKeyRequest {
6863 #[serde(rename = "tenant_id")]
6864 pub tenant_id: String,
6865 #[serde(rename = "key_id")]
6866 pub key_id: String,
6867}
6868
6869impl RevokeTrustKeyRequest {
6870 pub fn new(tenant_id: String, key_id: String) -> RevokeTrustKeyRequest {
6871 RevokeTrustKeyRequest {
6872 tenant_id,
6873 key_id,
6874 }
6875 }
6876}
6877
6878#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6890pub struct RunAgentUiRuntimeRequest {
6891 #[serde(rename = "threadId", skip_serializing_if = "Option::is_none")]
6892 pub thread_id: Option<String>,
6893 #[serde(rename = "runId", skip_serializing_if = "Option::is_none")]
6894 pub run_id: Option<String>,
6895 #[serde(rename = "workspaceId", skip_serializing_if = "Option::is_none")]
6896 pub workspace_id: Option<String>,
6897 #[serde(rename = "currentSurface", skip_serializing_if = "Option::is_none")]
6898 pub current_surface: Option<String>,
6899 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
6900 pub state: Option<std::collections::HashMap<String, serde_json::Value>>,
6901 #[serde(rename = "messages", default, skip_serializing_if = "Option::is_none")]
6902 pub messages: Option<Option<serde_json::Value>>,
6903}
6904
6905impl RunAgentUiRuntimeRequest {
6906 pub fn new() -> RunAgentUiRuntimeRequest {
6907 RunAgentUiRuntimeRequest {
6908 thread_id: None,
6909 run_id: None,
6910 workspace_id: None,
6911 current_surface: None,
6912 state: None,
6913 messages: None,
6914 }
6915 }
6916}
6917
6918#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6930pub struct RunPublicDemo200Response {
6931 #[serde(rename = "verdict")]
6932 pub verdict: RunPublicDemo200ResponseVerdict,
6933 #[serde(rename = "reason_code")]
6934 pub reason_code: String,
6935 #[serde(rename = "receipt")]
6936 pub receipt: Box<Receipt>,
6937 #[serde(rename = "proof_refs")]
6938 pub proof_refs: Box<RunPublicDemo200ResponseProofRefs>,
6939 #[serde(rename = "verification_hint")]
6940 pub verification_hint: String,
6941 #[serde(rename = "sandbox_label")]
6942 pub sandbox_label: String,
6943 #[serde(rename = "helm_ai_kernel_version")]
6944 pub helm_ai_kernel_version: String,
6945}
6946
6947impl RunPublicDemo200Response {
6948 pub fn new(verdict: RunPublicDemo200ResponseVerdict, reason_code: String, receipt: Receipt, proof_refs: RunPublicDemo200ResponseProofRefs, verification_hint: String, sandbox_label: String, helm_ai_kernel_version: String) -> RunPublicDemo200Response {
6949 RunPublicDemo200Response {
6950 verdict,
6951 reason_code,
6952 receipt: Box::new(receipt),
6953 proof_refs: Box::new(proof_refs),
6954 verification_hint,
6955 sandbox_label,
6956 helm_ai_kernel_version,
6957 }
6958 }
6959}
6960#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6962pub enum RunPublicDemo200ResponseVerdict {
6963 #[serde(rename = "ALLOW")]
6964 Allow,
6965 #[serde(rename = "DENY")]
6966 Deny,
6967 #[serde(rename = "ESCALATE")]
6968 Escalate,
6969}
6970
6971impl Default for RunPublicDemo200ResponseVerdict {
6972 fn default() -> RunPublicDemo200ResponseVerdict {
6973 Self::Allow
6974 }
6975}
6976
6977#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6989pub struct RunPublicDemo200ResponseProofRefs {
6990 #[serde(rename = "decision_id")]
6991 pub decision_id: String,
6992 #[serde(rename = "receipt_id")]
6993 pub receipt_id: String,
6994 #[serde(rename = "receipt_hash")]
6995 pub receipt_hash: String,
6996}
6997
6998impl RunPublicDemo200ResponseProofRefs {
6999 pub fn new(decision_id: String, receipt_id: String, receipt_hash: String) -> RunPublicDemo200ResponseProofRefs {
7000 RunPublicDemo200ResponseProofRefs {
7001 decision_id,
7002 receipt_id,
7003 receipt_hash,
7004 }
7005 }
7006}
7007
7008#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7020pub struct RunPublicDemoRequest {
7021 #[serde(rename = "action_id")]
7022 pub action_id: RunPublicDemoRequestActionId,
7023 #[serde(rename = "policy_id", skip_serializing_if = "Option::is_none")]
7024 pub policy_id: Option<String>,
7025 #[serde(rename = "args", skip_serializing_if = "Option::is_none")]
7026 pub args: Option<std::collections::HashMap<String, serde_json::Value>>,
7027}
7028
7029impl RunPublicDemoRequest {
7030 pub fn new(action_id: RunPublicDemoRequestActionId) -> RunPublicDemoRequest {
7031 RunPublicDemoRequest {
7032 action_id,
7033 policy_id: None,
7034 args: None,
7035 }
7036 }
7037}
7038#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7040pub enum RunPublicDemoRequestActionId {
7041 #[serde(rename = "read_ticket")]
7042 ReadTicket,
7043 #[serde(rename = "draft_reply")]
7044 DraftReply,
7045 #[serde(rename = "small_refund")]
7046 SmallRefund,
7047 #[serde(rename = "large_refund")]
7048 LargeRefund,
7049 #[serde(rename = "dangerous_shell")]
7050 DangerousShell,
7051 #[serde(rename = "export_customer_list")]
7052 ExportCustomerList,
7053 #[serde(rename = "modify_policy")]
7054 ModifyPolicy,
7055}
7056
7057impl Default for RunPublicDemoRequestActionId {
7058 fn default() -> RunPublicDemoRequestActionId {
7059 Self::ReadTicket
7060 }
7061}
7062
7063#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7075pub struct SandboxBackendProfile {
7076 #[serde(rename = "name")]
7077 pub name: String,
7078 #[serde(rename = "kind")]
7079 pub kind: SandboxBackendProfileKind,
7080 #[serde(rename = "runtime")]
7081 pub runtime: String,
7082 #[serde(rename = "hosted")]
7083 pub hosted: bool,
7084 #[serde(rename = "deny_network_by_default")]
7085 pub deny_network_by_default: bool,
7086 #[serde(rename = "native_isolation")]
7087 pub native_isolation: bool,
7088 #[serde(rename = "experimental", skip_serializing_if = "Option::is_none")]
7089 pub experimental: Option<bool>,
7090}
7091
7092impl SandboxBackendProfile {
7093 pub fn new(name: String, kind: SandboxBackendProfileKind, runtime: String, hosted: bool, deny_network_by_default: bool, native_isolation: bool) -> SandboxBackendProfile {
7094 SandboxBackendProfile {
7095 name,
7096 kind,
7097 runtime,
7098 hosted,
7099 deny_network_by_default,
7100 native_isolation,
7101 experimental: None,
7102 }
7103 }
7104}
7105#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7107pub enum SandboxBackendProfileKind {
7108 #[serde(rename = "wasi-wazero")]
7109 WasiWazero,
7110 #[serde(rename = "wasi-wasmtime")]
7111 WasiWasmtime,
7112 #[serde(rename = "native-nsjail")]
7113 NativeNsjail,
7114 #[serde(rename = "native-gvisor")]
7115 NativeGvisor,
7116 #[serde(rename = "native-firecracker")]
7117 NativeFirecracker,
7118 #[serde(rename = "hosted-adapter")]
7119 HostedAdapter,
7120}
7121
7122impl Default for SandboxBackendProfileKind {
7123 fn default() -> SandboxBackendProfileKind {
7124 Self::WasiWazero
7125 }
7126}
7127
7128#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7140pub struct SandboxGrant {
7141 #[serde(rename = "grant_id")]
7142 pub grant_id: String,
7143 #[serde(rename = "runtime")]
7144 pub runtime: String,
7145 #[serde(rename = "runtime_version", skip_serializing_if = "Option::is_none")]
7146 pub runtime_version: Option<String>,
7147 #[serde(rename = "profile")]
7148 pub profile: String,
7149 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
7150 pub image_digest: Option<String>,
7151 #[serde(rename = "template_digest", skip_serializing_if = "Option::is_none")]
7152 pub template_digest: Option<String>,
7153 #[serde(rename = "filesystem_preopens", skip_serializing_if = "Option::is_none")]
7154 pub filesystem_preopens: Option<Vec<FilesystemPreopen>>,
7155 #[serde(rename = "env")]
7156 pub env: Box<EnvExposurePolicy>,
7157 #[serde(rename = "network")]
7158 pub network: Box<NetworkGrant>,
7159 #[serde(rename = "limits", skip_serializing_if = "Option::is_none")]
7160 pub limits: Option<Box<SandboxGrantLimits>>,
7161 #[serde(rename = "declared_at")]
7162 pub declared_at: String,
7163 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
7164 pub policy_epoch: Option<String>,
7165 #[serde(rename = "grant_hash", skip_serializing_if = "Option::is_none")]
7166 pub grant_hash: Option<String>,
7167}
7168
7169impl SandboxGrant {
7170 pub fn new(grant_id: String, runtime: String, profile: String, env: EnvExposurePolicy, network: NetworkGrant, declared_at: String) -> SandboxGrant {
7171 SandboxGrant {
7172 grant_id,
7173 runtime,
7174 runtime_version: None,
7175 profile,
7176 image_digest: None,
7177 template_digest: None,
7178 filesystem_preopens: None,
7179 env: Box::new(env),
7180 network: Box::new(network),
7181 limits: None,
7182 declared_at,
7183 policy_epoch: None,
7184 grant_hash: None,
7185 }
7186 }
7187}
7188
7189#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
7201#[serde(untagged)]
7202pub enum SandboxGrantInspection {
7203 SandboxBackendProfileList(Vec<SandboxBackendProfile>),
7204 SandboxGrant(Box<SandboxGrant>),
7205}
7206
7207impl Default for SandboxGrantInspection {
7208 fn default() -> Self {
7209 Self::SandboxBackendProfileList(Default::default())
7210 }
7211}
7212
7213#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7225pub struct SandboxGrantLimits {
7226 #[serde(rename = "memory_bytes", skip_serializing_if = "Option::is_none")]
7227 pub memory_bytes: Option<i64>,
7228 #[serde(rename = "cpu_time", skip_serializing_if = "Option::is_none")]
7230 pub cpu_time: Option<i64>,
7231 #[serde(rename = "output_bytes", skip_serializing_if = "Option::is_none")]
7232 pub output_bytes: Option<i64>,
7233 #[serde(rename = "open_files", skip_serializing_if = "Option::is_none")]
7234 pub open_files: Option<i32>,
7235}
7236
7237impl SandboxGrantLimits {
7238 pub fn new() -> SandboxGrantLimits {
7239 SandboxGrantLimits {
7240 memory_bytes: None,
7241 cpu_time: None,
7242 output_bytes: None,
7243 open_files: None,
7244 }
7245 }
7246}
7247
7248#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7260pub struct SandboxPreflightRequest {
7261 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
7262 pub runtime: Option<String>,
7263 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
7264 pub profile: Option<String>,
7265 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
7266 pub image_digest: Option<String>,
7267 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
7268 pub policy_epoch: Option<String>,
7269 #[serde(rename = "requested_grant", skip_serializing_if = "Option::is_none")]
7270 pub requested_grant: Option<Box<SandboxGrant>>,
7271 #[serde(rename = "expected_grant_hash", skip_serializing_if = "Option::is_none")]
7272 pub expected_grant_hash: Option<String>,
7273}
7274
7275impl SandboxPreflightRequest {
7276 pub fn new() -> SandboxPreflightRequest {
7277 SandboxPreflightRequest {
7278 runtime: None,
7279 profile: None,
7280 image_digest: None,
7281 policy_epoch: None,
7282 requested_grant: None,
7283 expected_grant_hash: None,
7284 }
7285 }
7286}
7287
7288#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7300pub struct SandboxPreflightResult {
7301 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
7302 pub verdict: Option<SandboxPreflightResultVerdict>,
7303 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
7304 pub reason_code: Option<String>,
7305 #[serde(rename = "grant_id", skip_serializing_if = "Option::is_none")]
7306 pub grant_id: Option<String>,
7307 #[serde(rename = "grant_hash", skip_serializing_if = "Option::is_none")]
7308 pub grant_hash: Option<String>,
7309 #[serde(rename = "dispatch_ready", skip_serializing_if = "Option::is_none")]
7310 pub dispatch_ready: Option<bool>,
7311 #[serde(rename = "findings", skip_serializing_if = "Option::is_none")]
7312 pub findings: Option<Vec<String>>,
7313 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
7314 pub checked_at: Option<String>,
7315}
7316
7317impl SandboxPreflightResult {
7318 pub fn new() -> SandboxPreflightResult {
7319 SandboxPreflightResult {
7320 verdict: None,
7321 reason_code: None,
7322 grant_id: None,
7323 grant_hash: None,
7324 dispatch_ready: None,
7325 findings: None,
7326 checked_at: None,
7327 }
7328 }
7329}
7330#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7332pub enum SandboxPreflightResultVerdict {
7333 #[serde(rename = "ALLOW")]
7334 Allow,
7335 #[serde(rename = "DENY")]
7336 Deny,
7337 #[serde(rename = "ESCALATE")]
7338 Escalate,
7339}
7340
7341impl Default for SandboxPreflightResultVerdict {
7342 fn default() -> SandboxPreflightResultVerdict {
7343 Self::Allow
7344 }
7345}
7346
7347#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7359pub struct SecretContract {
7360 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
7361 pub name: Option<String>,
7362 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
7363 pub source: Option<String>,
7364 #[serde(rename = "required", skip_serializing_if = "Option::is_none")]
7365 pub required: Option<bool>,
7366 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
7367 pub reason: Option<String>,
7368 #[serde(rename = "targets", skip_serializing_if = "Option::is_none")]
7369 pub targets: Option<Vec<String>>,
7370}
7371
7372impl SecretContract {
7373 pub fn new() -> SecretContract {
7374 SecretContract {
7375 name: None,
7376 source: None,
7377 required: None,
7378 reason: None,
7379 targets: None,
7380 }
7381 }
7382}
7383
7384#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7396pub struct Session {
7397 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
7398 pub session_id: Option<String>,
7399 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
7400 pub created_at: Option<String>,
7401 #[serde(rename = "receipt_count", skip_serializing_if = "Option::is_none")]
7402 pub receipt_count: Option<i32>,
7403 #[serde(rename = "last_lamport_clock", skip_serializing_if = "Option::is_none")]
7404 pub last_lamport_clock: Option<i32>,
7405}
7406
7407impl Session {
7408 pub fn new() -> Session {
7409 Session {
7410 session_id: None,
7411 created_at: None,
7412 receipt_count: None,
7413 last_lamport_clock: None,
7414 }
7415 }
7416}
7417
7418#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7430pub struct SourceFileSummary {
7431 #[serde(rename = "path")]
7432 pub path: String,
7433 #[serde(rename = "kind")]
7434 pub kind: String,
7435 #[serde(rename = "size", skip_serializing_if = "Option::is_none")]
7436 pub size: Option<i32>,
7437 #[serde(rename = "sha", skip_serializing_if = "Option::is_none")]
7438 pub sha: Option<String>,
7439 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
7440 pub language: Option<String>,
7441 #[serde(rename = "content", skip_serializing_if = "Option::is_none")]
7442 pub content: Option<String>,
7443}
7444
7445impl SourceFileSummary {
7446 pub fn new(path: String, kind: String) -> SourceFileSummary {
7447 SourceFileSummary {
7448 path,
7449 kind,
7450 size: None,
7451 sha: None,
7452 language: None,
7453 content: None,
7454 }
7455 }
7456}
7457
7458#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7470pub struct SourceSnapshot {
7471 #[serde(rename = "repo_url")]
7472 pub repo_url: String,
7473 #[serde(rename = "provider")]
7474 pub provider: String,
7475 #[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
7476 pub owner: Option<String>,
7477 #[serde(rename = "repo", skip_serializing_if = "Option::is_none")]
7478 pub repo: Option<String>,
7479 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
7480 pub r#ref: Option<String>,
7481 #[serde(rename = "commit", skip_serializing_if = "Option::is_none")]
7482 pub commit: Option<String>,
7483 #[serde(rename = "license_spdx", skip_serializing_if = "Option::is_none")]
7484 pub license_spdx: Option<String>,
7485 #[serde(rename = "license_state")]
7486 pub license_state: String,
7487 #[serde(rename = "fetched_at", skip_serializing_if = "Option::is_none")]
7488 pub fetched_at: Option<String>,
7489 #[serde(rename = "files")]
7490 pub files: Vec<SourceFileSummary>,
7491 #[serde(rename = "api_source", skip_serializing_if = "Option::is_none")]
7492 pub api_source: Option<String>,
7493}
7494
7495impl SourceSnapshot {
7496 pub fn new(repo_url: String, provider: String, license_state: String, files: Vec<SourceFileSummary>) -> SourceSnapshot {
7497 SourceSnapshot {
7498 repo_url,
7499 provider,
7500 owner: None,
7501 repo: None,
7502 r#ref: None,
7503 commit: None,
7504 license_spdx: None,
7505 license_state,
7506 fetched_at: None,
7507 files,
7508 api_source: None,
7509 }
7510 }
7511}
7512
7513#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7525pub struct TamperPublicDemoReceipt200Response {
7526 #[serde(rename = "valid")]
7527 pub valid: bool,
7528 #[serde(rename = "signature_valid")]
7529 pub signature_valid: bool,
7530 #[serde(rename = "hash_matches")]
7531 pub hash_matches: bool,
7532 #[serde(rename = "reason")]
7533 pub reason: String,
7534 #[serde(rename = "receipt_hash")]
7535 pub receipt_hash: String,
7536 #[serde(rename = "expected_receipt_hash")]
7537 pub expected_receipt_hash: String,
7538 #[serde(rename = "original_hash")]
7539 pub original_hash: String,
7540 #[serde(rename = "tampered_hash")]
7541 pub tampered_hash: String,
7542}
7543
7544impl TamperPublicDemoReceipt200Response {
7545 pub fn new(valid: bool, signature_valid: bool, hash_matches: bool, reason: String, receipt_hash: String, expected_receipt_hash: String, original_hash: String, tampered_hash: String) -> TamperPublicDemoReceipt200Response {
7546 TamperPublicDemoReceipt200Response {
7547 valid,
7548 signature_valid,
7549 hash_matches,
7550 reason,
7551 receipt_hash,
7552 expected_receipt_hash,
7553 original_hash,
7554 tampered_hash,
7555 }
7556 }
7557}
7558
7559#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7571pub struct TamperPublicDemoReceiptRequest {
7572 #[serde(rename = "receipt")]
7573 pub receipt: Box<Receipt>,
7574 #[serde(rename = "expected_receipt_hash")]
7576 pub expected_receipt_hash: String,
7577 #[serde(rename = "mutation", skip_serializing_if = "Option::is_none")]
7578 pub mutation: Option<String>,
7579}
7580
7581impl TamperPublicDemoReceiptRequest {
7582 pub fn new(receipt: Receipt, expected_receipt_hash: String) -> TamperPublicDemoReceiptRequest {
7583 TamperPublicDemoReceiptRequest {
7584 receipt: Box::new(receipt),
7585 expected_receipt_hash,
7586 mutation: None,
7587 }
7588 }
7589}
7590
7591#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7603pub struct TargetPlan {
7604 #[serde(rename = "target_id")]
7605 pub target_id: String,
7606 #[serde(rename = "kind")]
7607 pub kind: String,
7608 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
7609 pub substrate_id: Option<String>,
7610 #[serde(rename = "deployable")]
7611 pub deployable: bool,
7612 #[serde(rename = "requires_approval", skip_serializing_if = "Option::is_none")]
7613 pub requires_approval: Option<bool>,
7614 #[serde(rename = "commands", skip_serializing_if = "Option::is_none")]
7615 pub commands: Option<Vec<Vec<String>>>,
7616 #[serde(rename = "artifacts", skip_serializing_if = "Option::is_none")]
7617 pub artifacts: Option<Vec<String>>,
7618 #[serde(rename = "secrets_backend", skip_serializing_if = "Option::is_none")]
7619 pub secrets_backend: Option<String>,
7620 #[serde(rename = "healthcheck", skip_serializing_if = "Option::is_none")]
7621 pub healthcheck: Option<std::collections::HashMap<String, String>>,
7622 #[serde(rename = "rollback", skip_serializing_if = "Option::is_none")]
7623 pub rollback: Option<Vec<String>>,
7624 #[serde(rename = "risk")]
7625 pub risk: String,
7626 #[serde(rename = "reason")]
7627 pub reason: String,
7628}
7629
7630impl TargetPlan {
7631 pub fn new(target_id: String, kind: String, deployable: bool, risk: String, reason: String) -> TargetPlan {
7632 TargetPlan {
7633 target_id,
7634 kind,
7635 substrate_id: None,
7636 deployable,
7637 requires_approval: None,
7638 commands: None,
7639 artifacts: None,
7640 secrets_backend: None,
7641 healthcheck: None,
7642 rollback: None,
7643 risk,
7644 reason,
7645 }
7646 }
7647}
7648
7649#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7661pub struct TeardownLaunchpadRuntimeRunRequest {
7662 #[serde(rename = "cascade", skip_serializing_if = "Option::is_none")]
7663 pub cascade: Option<bool>,
7664}
7665
7666impl TeardownLaunchpadRuntimeRunRequest {
7667 pub fn new() -> TeardownLaunchpadRuntimeRunRequest {
7668 TeardownLaunchpadRuntimeRunRequest {
7669 cascade: None,
7670 }
7671 }
7672}
7673
7674#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7686pub struct TelemetryExportRequest {
7687 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
7688 pub format: Option<String>,
7689 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
7690 pub receipt_id: Option<String>,
7691 #[serde(rename = "record_hash", skip_serializing_if = "Option::is_none")]
7692 pub record_hash: Option<String>,
7693 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
7694 pub policy_epoch: Option<String>,
7695 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
7696 pub verdict: Option<String>,
7697 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
7698 pub reason_code: Option<String>,
7699 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
7700 pub sandbox_grant_hash: Option<String>,
7701 #[serde(rename = "authz_snapshot_hash", skip_serializing_if = "Option::is_none")]
7702 pub authz_snapshot_hash: Option<String>,
7703 #[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
7704 pub attributes: Option<std::collections::HashMap<String, String>>,
7705}
7706
7707impl TelemetryExportRequest {
7708 pub fn new() -> TelemetryExportRequest {
7709 TelemetryExportRequest {
7710 format: None,
7711 receipt_id: None,
7712 record_hash: None,
7713 policy_epoch: None,
7714 verdict: None,
7715 reason_code: None,
7716 sandbox_grant_hash: None,
7717 authz_snapshot_hash: None,
7718 attributes: None,
7719 }
7720 }
7721}
7722
7723#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7735pub struct TelemetryExportResult {
7736 #[serde(rename = "export_id", skip_serializing_if = "Option::is_none")]
7737 pub export_id: Option<String>,
7738 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
7739 pub format: Option<String>,
7740 #[serde(rename = "authoritative", skip_serializing_if = "Option::is_none")]
7741 pub authoritative: Option<bool>,
7742 #[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
7743 pub attributes: Option<std::collections::HashMap<String, String>>,
7744 #[serde(rename = "exported_at", skip_serializing_if = "Option::is_none")]
7745 pub exported_at: Option<String>,
7746}
7747
7748impl TelemetryExportResult {
7749 pub fn new() -> TelemetryExportResult {
7750 TelemetryExportResult {
7751 export_id: None,
7752 format: None,
7753 authoritative: None,
7754 attributes: None,
7755 exported_at: None,
7756 }
7757 }
7758}
7759
7760#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7772pub struct TelemetryOTelConfig {
7773 #[serde(rename = "service_name", skip_serializing_if = "Option::is_none")]
7774 pub service_name: Option<String>,
7775 #[serde(rename = "signal_type", skip_serializing_if = "Option::is_none")]
7776 pub signal_type: Option<String>,
7777 #[serde(rename = "authoritative", skip_serializing_if = "Option::is_none")]
7778 pub authoritative: Option<bool>,
7779 #[serde(rename = "span_attributes", skip_serializing_if = "Option::is_none")]
7780 pub span_attributes: Option<std::collections::HashMap<String, String>>,
7781 #[serde(rename = "exported_signals", skip_serializing_if = "Option::is_none")]
7782 pub exported_signals: Option<Vec<String>>,
7783}
7784
7785impl TelemetryOTelConfig {
7786 pub fn new() -> TelemetryOTelConfig {
7787 TelemetryOTelConfig {
7788 service_name: None,
7789 signal_type: None,
7790 authoritative: None,
7791 span_attributes: None,
7792 exported_signals: None,
7793 }
7794 }
7795}
7796
7797#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7809pub struct TransitionApprovalCeremonyRequest {
7810 #[serde(rename = "actor", skip_serializing_if = "Option::is_none")]
7811 pub actor: Option<String>,
7812 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
7813 pub receipt_id: Option<String>,
7814 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
7815 pub reason: Option<String>,
7816}
7817
7818impl TransitionApprovalCeremonyRequest {
7819 pub fn new() -> TransitionApprovalCeremonyRequest {
7820 TransitionApprovalCeremonyRequest {
7821 actor: None,
7822 receipt_id: None,
7823 reason: None,
7824 }
7825 }
7826}
7827
7828#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7840pub struct VerificationResult {
7841 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
7842 pub verdict: Option<VerificationResultVerdict>,
7843 #[serde(rename = "checks", skip_serializing_if = "Option::is_none")]
7844 pub checks: Option<Box<VerificationResultChecks>>,
7845 #[serde(rename = "roots", skip_serializing_if = "Option::is_none")]
7846 pub roots: Option<Box<VerificationResultRoots>>,
7847 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
7848 pub errors: Option<Vec<String>>,
7849}
7850
7851impl VerificationResult {
7852 pub fn new() -> VerificationResult {
7853 VerificationResult {
7854 verdict: None,
7855 checks: None,
7856 roots: None,
7857 errors: None,
7858 }
7859 }
7860}
7861#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7863pub enum VerificationResultVerdict {
7864 #[serde(rename = "PASS")]
7865 Pass,
7866 #[serde(rename = "FAIL")]
7867 Fail,
7868}
7869
7870impl Default for VerificationResultVerdict {
7871 fn default() -> VerificationResultVerdict {
7872 Self::Pass
7873 }
7874}
7875
7876#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7888pub struct VerificationResultChecks {
7889 #[serde(rename = "signatures", skip_serializing_if = "Option::is_none")]
7890 pub signatures: Option<VerificationResultChecksSignatures>,
7891 #[serde(rename = "causal_chain", skip_serializing_if = "Option::is_none")]
7892 pub causal_chain: Option<VerificationResultChecksCausalChain>,
7893 #[serde(rename = "policy_compliance", skip_serializing_if = "Option::is_none")]
7894 pub policy_compliance: Option<VerificationResultChecksPolicyCompliance>,
7895}
7896
7897impl VerificationResultChecks {
7898 pub fn new() -> VerificationResultChecks {
7899 VerificationResultChecks {
7900 signatures: None,
7901 causal_chain: None,
7902 policy_compliance: None,
7903 }
7904 }
7905}
7906#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7908pub enum VerificationResultChecksSignatures {
7909 #[serde(rename = "PASS")]
7910 Pass,
7911 #[serde(rename = "FAIL")]
7912 Fail,
7913}
7914
7915impl Default for VerificationResultChecksSignatures {
7916 fn default() -> VerificationResultChecksSignatures {
7917 Self::Pass
7918 }
7919}
7920#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7922pub enum VerificationResultChecksCausalChain {
7923 #[serde(rename = "PASS")]
7924 Pass,
7925 #[serde(rename = "FAIL")]
7926 Fail,
7927}
7928
7929impl Default for VerificationResultChecksCausalChain {
7930 fn default() -> VerificationResultChecksCausalChain {
7931 Self::Pass
7932 }
7933}
7934#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7936pub enum VerificationResultChecksPolicyCompliance {
7937 #[serde(rename = "PASS")]
7938 Pass,
7939 #[serde(rename = "FAIL")]
7940 Fail,
7941}
7942
7943impl Default for VerificationResultChecksPolicyCompliance {
7944 fn default() -> VerificationResultChecksPolicyCompliance {
7945 Self::Pass
7946 }
7947}
7948
7949#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7961pub struct VerificationResultRoots {
7962 #[serde(rename = "manifest_root_hash", skip_serializing_if = "Option::is_none")]
7963 pub manifest_root_hash: Option<String>,
7964 #[serde(rename = "merkle_root", skip_serializing_if = "Option::is_none")]
7965 pub merkle_root: Option<String>,
7966 #[serde(rename = "entry_count", skip_serializing_if = "Option::is_none")]
7967 pub entry_count: Option<i32>,
7968}
7969
7970impl VerificationResultRoots {
7971 pub fn new() -> VerificationResultRoots {
7972 VerificationResultRoots {
7973 manifest_root_hash: None,
7974 merkle_root: None,
7975 entry_count: None,
7976 }
7977 }
7978}
7979
7980#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7992pub struct VerificationScope {
7993 #[serde(rename = "verification_scope_id")]
7994 pub verification_scope_id: String,
7995 #[serde(rename = "subject_hash")]
7996 pub subject_hash: String,
7997 #[serde(rename = "risk_class", skip_serializing_if = "Option::is_none")]
7998 pub risk_class: Option<VerificationScopeRiskClass>,
7999 #[serde(rename = "checks_performed")]
8000 pub checks_performed: Vec<String>,
8001 #[serde(rename = "assumptions", skip_serializing_if = "Option::is_none")]
8002 pub assumptions: Option<Vec<String>>,
8003 #[serde(rename = "untested_regions", skip_serializing_if = "Option::is_none")]
8004 pub untested_regions: Option<Vec<String>>,
8005 #[serde(rename = "known_limits", skip_serializing_if = "Option::is_none")]
8006 pub known_limits: Option<Vec<String>>,
8007 #[serde(rename = "remaining_risks", skip_serializing_if = "Option::is_none")]
8008 pub remaining_risks: Option<Vec<String>>,
8009 #[serde(rename = "required_followup", skip_serializing_if = "Option::is_none")]
8010 pub required_followup: Option<Vec<String>>,
8011 #[serde(rename = "verifier_hash")]
8012 pub verifier_hash: String,
8013 #[serde(rename = "policy_hash")]
8014 pub policy_hash: String,
8015 #[serde(rename = "created_at")]
8016 pub created_at: String,
8017 #[serde(rename = "scope_hash", skip_serializing_if = "Option::is_none")]
8018 pub scope_hash: Option<String>,
8019}
8020
8021impl VerificationScope {
8022 pub fn new(verification_scope_id: String, subject_hash: String, checks_performed: Vec<String>, verifier_hash: String, policy_hash: String, created_at: String) -> VerificationScope {
8023 VerificationScope {
8024 verification_scope_id,
8025 subject_hash,
8026 risk_class: None,
8027 checks_performed,
8028 assumptions: None,
8029 untested_regions: None,
8030 known_limits: None,
8031 remaining_risks: None,
8032 required_followup: None,
8033 verifier_hash,
8034 policy_hash,
8035 created_at,
8036 scope_hash: None,
8037 }
8038 }
8039}
8040#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
8042pub enum VerificationScopeRiskClass {
8043 #[serde(rename = "T0")]
8044 T0,
8045 #[serde(rename = "T1")]
8046 T1,
8047 #[serde(rename = "T2")]
8048 T2,
8049 #[serde(rename = "T3")]
8050 T3,
8051}
8052
8053impl Default for VerificationScopeRiskClass {
8054 fn default() -> VerificationScopeRiskClass {
8055 Self::T0
8056 }
8057}
8058
8059#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8071pub struct VerifyPublicDemoReceipt200Response {
8072 #[serde(rename = "valid")]
8073 pub valid: bool,
8074 #[serde(rename = "signature_valid")]
8075 pub signature_valid: bool,
8076 #[serde(rename = "hash_matches")]
8077 pub hash_matches: bool,
8078 #[serde(rename = "reason")]
8079 pub reason: String,
8080 #[serde(rename = "verified_fields")]
8081 pub verified_fields: Vec<String>,
8082 #[serde(rename = "receipt_hash")]
8083 pub receipt_hash: String,
8084 #[serde(rename = "expected_receipt_hash")]
8085 pub expected_receipt_hash: String,
8086}
8087
8088impl VerifyPublicDemoReceipt200Response {
8089 pub fn new(valid: bool, signature_valid: bool, hash_matches: bool, reason: String, verified_fields: Vec<String>, receipt_hash: String, expected_receipt_hash: String) -> VerifyPublicDemoReceipt200Response {
8090 VerifyPublicDemoReceipt200Response {
8091 valid,
8092 signature_valid,
8093 hash_matches,
8094 reason,
8095 verified_fields,
8096 receipt_hash,
8097 expected_receipt_hash,
8098 }
8099 }
8100}
8101
8102#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8114pub struct VerifyPublicDemoReceiptRequest {
8115 #[serde(rename = "receipt")]
8116 pub receipt: Box<Receipt>,
8117 #[serde(rename = "expected_receipt_hash")]
8119 pub expected_receipt_hash: String,
8120}
8121
8122impl VerifyPublicDemoReceiptRequest {
8123 pub fn new(receipt: Receipt, expected_receipt_hash: String) -> VerifyPublicDemoReceiptRequest {
8124 VerifyPublicDemoReceiptRequest {
8125 receipt: Box::new(receipt),
8126 expected_receipt_hash,
8127 }
8128 }
8129}
8130
8131#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8143pub struct VersionInfo {
8144 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
8145 pub version: Option<String>,
8146 #[serde(rename = "commit", skip_serializing_if = "Option::is_none")]
8147 pub commit: Option<String>,
8148 #[serde(rename = "build_time", skip_serializing_if = "Option::is_none")]
8149 pub build_time: Option<String>,
8150 #[serde(rename = "go_version", skip_serializing_if = "Option::is_none")]
8151 pub go_version: Option<String>,
8152}
8153
8154impl VersionInfo {
8155 pub fn new() -> VersionInfo {
8156 VersionInfo {
8157 version: None,
8158 commit: None,
8159 build_time: None,
8160 go_version: None,
8161 }
8162 }
8163}
8164
8165
8166pub type ReasonCode = HelmErrorErrorReasonCode;