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_alias", skip_serializing_if = "Option::is_none")]
196 pub plan_alias: 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_alias: 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 = "enterprise")]
230 Enterprise,
231}
232
233impl Default for AccountEntitlementsPlan {
234 fn default() -> AccountEntitlementsPlan {
235 Self::Free
236 }
237}
238
239#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
251pub struct AccountSession {
252 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
253 pub session_id: Option<String>,
254 #[serde(rename = "principal_id", skip_serializing_if = "Option::is_none")]
255 pub principal_id: Option<String>,
256 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
257 pub tenant_id: Option<String>,
258 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
259 pub workspace_id: Option<String>,
260 #[serde(rename = "plan", default, skip_serializing_if = "Option::is_none")]
261 pub plan: Option<Option<AccountSessionPlan>>,
262 #[serde(rename = "plan_alias", skip_serializing_if = "Option::is_none")]
263 pub plan_alias: Option<String>,
264 #[serde(rename = "edition", skip_serializing_if = "Option::is_none")]
265 pub edition: Option<String>,
266 #[serde(rename = "deployment_mode", skip_serializing_if = "Option::is_none")]
267 pub deployment_mode: Option<String>,
268 #[serde(rename = "account_lifecycle", skip_serializing_if = "Option::is_none")]
269 pub account_lifecycle: Option<String>,
270 #[serde(rename = "offer_code", skip_serializing_if = "Option::is_none")]
271 pub offer_code: Option<String>,
272 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
273 pub source: Option<String>,
274 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
275 pub expires_at: Option<String>,
276}
277
278impl AccountSession {
279 pub fn new() -> AccountSession {
280 AccountSession {
281 session_id: None,
282 principal_id: None,
283 tenant_id: None,
284 workspace_id: None,
285 plan: None,
286 plan_alias: None,
287 edition: None,
288 deployment_mode: None,
289 account_lifecycle: None,
290 offer_code: None,
291 source: None,
292 expires_at: None,
293 }
294 }
295}
296#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
298pub enum AccountSessionPlan {
299 #[serde(rename = "free")]
300 Free,
301 #[serde(rename = "individual")]
302 Individual,
303 #[serde(rename = "enterprise")]
304 Enterprise,
305}
306
307impl Default for AccountSessionPlan {
308 fn default() -> AccountSessionPlan {
309 Self::Free
310 }
311}
312
313#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
325pub struct AdapterMatch {
326 #[serde(rename = "adapter_id", skip_serializing_if = "Option::is_none")]
327 pub adapter_id: Option<String>,
328 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
329 pub confidence: Option<f64>,
330 #[serde(rename = "evidence", skip_serializing_if = "Option::is_none")]
331 pub evidence: Option<Vec<String>>,
332}
333
334impl AdapterMatch {
335 pub fn new() -> AdapterMatch {
336 AdapterMatch {
337 adapter_id: None,
338 confidence: None,
339 evidence: None,
340 }
341 }
342}
343
344#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
356pub struct AddTrustKey200Response {
357 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
358 pub status: Option<String>,
359 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
360 pub tenant_id: Option<String>,
361 #[serde(rename = "key_id", skip_serializing_if = "Option::is_none")]
362 pub key_id: Option<String>,
363}
364
365impl AddTrustKey200Response {
366 pub fn new() -> AddTrustKey200Response {
367 AddTrustKey200Response {
368 status: None,
369 tenant_id: None,
370 key_id: None,
371 }
372 }
373}
374
375#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
387pub struct AddTrustKeyRequest {
388 #[serde(rename = "tenant_id")]
389 pub tenant_id: String,
390 #[serde(rename = "key_id")]
391 pub key_id: String,
392 #[serde(rename = "public_key")]
394 pub public_key: String,
395}
396
397impl AddTrustKeyRequest {
398 pub fn new(tenant_id: String, key_id: String, public_key: String) -> AddTrustKeyRequest {
399 AddTrustKeyRequest {
400 tenant_id,
401 key_id,
402 public_key,
403 }
404 }
405}
406
407#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
419pub struct AgentIdentityProfile {
420 #[serde(rename = "agent_id", skip_serializing_if = "Option::is_none")]
421 pub agent_id: Option<String>,
422 #[serde(rename = "identity_type", skip_serializing_if = "Option::is_none")]
423 pub identity_type: Option<String>,
424 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
425 pub subject: Option<String>,
426 #[serde(rename = "issuer", skip_serializing_if = "Option::is_none")]
427 pub issuer: Option<String>,
428 #[serde(rename = "jwks_uri", skip_serializing_if = "Option::is_none")]
429 pub jwks_uri: Option<String>,
430 #[serde(rename = "spiffe_id", skip_serializing_if = "Option::is_none")]
431 pub spiffe_id: Option<String>,
432 #[serde(rename = "scopes", skip_serializing_if = "Option::is_none")]
433 pub scopes: Option<Vec<String>>,
434 #[serde(rename = "anonymous_dev_mode", skip_serializing_if = "Option::is_none")]
435 pub anonymous_dev_mode: Option<bool>,
436 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
437 pub created_at: Option<String>,
438}
439
440impl AgentIdentityProfile {
441 pub fn new() -> AgentIdentityProfile {
442 AgentIdentityProfile {
443 agent_id: None,
444 identity_type: None,
445 subject: None,
446 issuer: None,
447 jwks_uri: None,
448 spiffe_id: None,
449 scopes: None,
450 anonymous_dev_mode: None,
451 created_at: None,
452 }
453 }
454}
455
456#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
468pub struct ApprovalCeremony {
469 #[serde(rename = "approval_id", skip_serializing_if = "Option::is_none")]
470 pub approval_id: Option<String>,
471 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
472 pub subject: Option<String>,
473 #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
474 pub action: Option<String>,
475 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
476 pub state: Option<ApprovalCeremonyState>,
477 #[serde(rename = "requested_by", skip_serializing_if = "Option::is_none")]
478 pub requested_by: Option<String>,
479 #[serde(rename = "approvers", skip_serializing_if = "Option::is_none")]
480 pub approvers: Option<Vec<String>>,
481 #[serde(rename = "quorum", skip_serializing_if = "Option::is_none")]
482 pub quorum: Option<i32>,
483 #[serde(rename = "timelock_until", skip_serializing_if = "Option::is_none")]
484 pub timelock_until: Option<String>,
485 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
486 pub expires_at: Option<String>,
487 #[serde(rename = "break_glass", skip_serializing_if = "Option::is_none")]
488 pub break_glass: Option<bool>,
489 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
490 pub reason: Option<String>,
491 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
492 pub receipt_id: Option<String>,
493 #[serde(rename = "ceremony_hash", skip_serializing_if = "Option::is_none")]
494 pub ceremony_hash: Option<String>,
495 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
496 pub created_at: Option<String>,
497 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
498 pub updated_at: Option<String>,
499}
500
501impl ApprovalCeremony {
502 pub fn new() -> ApprovalCeremony {
503 ApprovalCeremony {
504 approval_id: None,
505 subject: None,
506 action: None,
507 state: None,
508 requested_by: None,
509 approvers: None,
510 quorum: None,
511 timelock_until: None,
512 expires_at: None,
513 break_glass: None,
514 reason: None,
515 receipt_id: None,
516 ceremony_hash: None,
517 created_at: None,
518 updated_at: None,
519 }
520 }
521}
522#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
524pub enum ApprovalCeremonyState {
525 #[serde(rename = "pending")]
526 Pending,
527 #[serde(rename = "approved")]
528 Approved,
529 #[serde(rename = "denied")]
530 Denied,
531 #[serde(rename = "revoked")]
532 Revoked,
533 #[serde(rename = "expired")]
534 Expired,
535}
536
537impl Default for ApprovalCeremonyState {
538 fn default() -> ApprovalCeremonyState {
539 Self::Pending
540 }
541}
542
543#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
555pub struct ApprovalRequest {
556 #[serde(rename = "intent_hash")]
558 pub intent_hash: String,
559 #[serde(rename = "signature_b64")]
561 pub signature_b64: String,
562 #[serde(rename = "public_key_b64")]
564 pub public_key_b64: String,
565 #[serde(rename = "challenge_response", skip_serializing_if = "Option::is_none")]
567 pub challenge_response: Option<String>,
568}
569
570impl ApprovalRequest {
571 pub fn new(intent_hash: String, signature_b64: String, public_key_b64: String) -> ApprovalRequest {
572 ApprovalRequest {
573 intent_hash,
574 signature_b64,
575 public_key_b64,
576 challenge_response: None,
577 }
578 }
579}
580
581#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
593pub struct ApproveLaunchpadMcpToolsRequest {
594 #[serde(rename = "server_id")]
595 pub server_id: String,
596 #[serde(rename = "tools")]
597 pub tools: Vec<String>,
598 #[serde(rename = "ttl", skip_serializing_if = "Option::is_none")]
599 pub ttl: Option<String>,
600 #[serde(rename = "reason")]
601 pub reason: String,
602 #[serde(rename = "approver", skip_serializing_if = "Option::is_none")]
603 pub approver: Option<String>,
604}
605
606impl ApproveLaunchpadMcpToolsRequest {
607 pub fn new(server_id: String, tools: Vec<String>, reason: String) -> ApproveLaunchpadMcpToolsRequest {
608 ApproveLaunchpadMcpToolsRequest {
609 server_id,
610 tools,
611 ttl: None,
612 reason,
613 approver: None,
614 }
615 }
616}
617
618#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
630pub struct AssertApprovalWebAuthnChallengeRequest {
631 #[serde(rename = "challenge_id")]
632 pub challenge_id: String,
633 #[serde(rename = "actor")]
634 pub actor: String,
635 #[serde(rename = "assertion")]
636 pub assertion: String,
637 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
638 pub receipt_id: Option<String>,
639 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
640 pub reason: Option<String>,
641}
642
643impl AssertApprovalWebAuthnChallengeRequest {
644 pub fn new(challenge_id: String, actor: String, assertion: String) -> AssertApprovalWebAuthnChallengeRequest {
645 AssertApprovalWebAuthnChallengeRequest {
646 challenge_id,
647 actor,
648 assertion,
649 receipt_id: None,
650 reason: None,
651 }
652 }
653}
654
655#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
667pub struct AuthzHealth {
668 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
669 pub status: Option<String>,
670 #[serde(rename = "resolver", skip_serializing_if = "Option::is_none")]
671 pub resolver: Option<String>,
672 #[serde(rename = "model_id", skip_serializing_if = "Option::is_none")]
673 pub model_id: Option<String>,
674 #[serde(rename = "relationship_hash", skip_serializing_if = "Option::is_none")]
675 pub relationship_hash: Option<String>,
676 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
677 pub checked_at: Option<String>,
678}
679
680impl AuthzHealth {
681 pub fn new() -> AuthzHealth {
682 AuthzHealth {
683 status: None,
684 resolver: None,
685 model_id: None,
686 relationship_hash: None,
687 checked_at: None,
688 }
689 }
690}
691
692#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
704pub struct AuthzSnapshot {
705 #[serde(rename = "snapshot_id", skip_serializing_if = "Option::is_none")]
706 pub snapshot_id: Option<String>,
707 #[serde(rename = "model_id", skip_serializing_if = "Option::is_none")]
708 pub model_id: Option<String>,
709 #[serde(rename = "relationship_hash", skip_serializing_if = "Option::is_none")]
710 pub relationship_hash: Option<String>,
711 #[serde(rename = "tuple_count", skip_serializing_if = "Option::is_none")]
712 pub tuple_count: Option<i32>,
713 #[serde(rename = "resolver", skip_serializing_if = "Option::is_none")]
714 pub resolver: Option<String>,
715 #[serde(rename = "stale", skip_serializing_if = "Option::is_none")]
716 pub stale: Option<bool>,
717 #[serde(rename = "snapshot_token", skip_serializing_if = "Option::is_none")]
718 pub snapshot_token: Option<String>,
719 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
720 pub checked_at: Option<String>,
721 #[serde(rename = "snapshot_hash", skip_serializing_if = "Option::is_none")]
722 pub snapshot_hash: Option<String>,
723}
724
725impl AuthzSnapshot {
726 pub fn new() -> AuthzSnapshot {
727 AuthzSnapshot {
728 snapshot_id: None,
729 model_id: None,
730 relationship_hash: None,
731 tuple_count: None,
732 resolver: None,
733 stale: None,
734 snapshot_token: None,
735 checked_at: None,
736 snapshot_hash: None,
737 }
738 }
739}
740
741#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
753pub struct BindLaunchpadSecretGrantRequest {
754 #[serde(rename = "name")]
755 pub name: String,
756 #[serde(rename = "provider")]
757 pub provider: String,
758 #[serde(rename = "value_env")]
759 pub value_env: String,
760}
761
762impl BindLaunchpadSecretGrantRequest {
763 pub fn new(name: String, provider: String, value_env: String) -> BindLaunchpadSecretGrantRequest {
764 BindLaunchpadSecretGrantRequest {
765 name,
766 provider,
767 value_env,
768 }
769 }
770}
771
772#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
784pub struct BoundaryCapabilitySummary {
785 #[serde(rename = "capability_id", skip_serializing_if = "Option::is_none")]
786 pub capability_id: Option<String>,
787 #[serde(rename = "category", skip_serializing_if = "Option::is_none")]
788 pub category: Option<String>,
789 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
790 pub status: Option<String>,
791 #[serde(rename = "authority", skip_serializing_if = "Option::is_none")]
792 pub authority: Option<String>,
793 #[serde(rename = "public_routes", skip_serializing_if = "Option::is_none")]
794 pub public_routes: Option<Vec<String>>,
795 #[serde(rename = "cli_commands", skip_serializing_if = "Option::is_none")]
796 pub cli_commands: Option<Vec<String>>,
797 #[serde(rename = "receipt_bindings", skip_serializing_if = "Option::is_none")]
798 pub receipt_bindings: Option<Vec<String>>,
799 #[serde(rename = "conformance_level", skip_serializing_if = "Option::is_none")]
800 pub conformance_level: Option<String>,
801}
802
803impl BoundaryCapabilitySummary {
804 pub fn new() -> BoundaryCapabilitySummary {
805 BoundaryCapabilitySummary {
806 capability_id: None,
807 category: None,
808 status: None,
809 authority: None,
810 public_routes: None,
811 cli_commands: None,
812 receipt_bindings: None,
813 conformance_level: None,
814 }
815 }
816}
817
818#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
830pub struct BoundaryCheckpoint {
831 #[serde(rename = "checkpoint_id", skip_serializing_if = "Option::is_none")]
832 pub checkpoint_id: Option<String>,
833 #[serde(rename = "sequence", skip_serializing_if = "Option::is_none")]
834 pub sequence: Option<i64>,
835 #[serde(rename = "previous_checkpoint_hash", skip_serializing_if = "Option::is_none")]
836 pub previous_checkpoint_hash: Option<String>,
837 #[serde(rename = "receipt_count", skip_serializing_if = "Option::is_none")]
838 pub receipt_count: Option<i32>,
839 #[serde(rename = "record_count", skip_serializing_if = "Option::is_none")]
840 pub record_count: Option<i32>,
841 #[serde(rename = "root_hash", skip_serializing_if = "Option::is_none")]
842 pub root_hash: Option<String>,
843 #[serde(rename = "checkpoint_hash", skip_serializing_if = "Option::is_none")]
844 pub checkpoint_hash: Option<String>,
845 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
846 pub created_at: Option<String>,
847}
848
849impl BoundaryCheckpoint {
850 pub fn new() -> BoundaryCheckpoint {
851 BoundaryCheckpoint {
852 checkpoint_id: None,
853 sequence: None,
854 previous_checkpoint_hash: None,
855 receipt_count: None,
856 record_count: None,
857 root_hash: None,
858 checkpoint_hash: None,
859 created_at: None,
860 }
861 }
862}
863
864#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
876pub struct BoundaryRecordVerification {
877 #[serde(rename = "record_id", skip_serializing_if = "Option::is_none")]
878 pub record_id: Option<String>,
879 #[serde(rename = "record_hash", skip_serializing_if = "Option::is_none")]
880 pub record_hash: Option<String>,
881 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
882 pub receipt_id: Option<String>,
883 #[serde(rename = "verified", skip_serializing_if = "Option::is_none")]
884 pub verified: Option<bool>,
885 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
886 pub errors: Option<Vec<String>>,
887 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
888 pub checked_at: Option<String>,
889}
890
891impl BoundaryRecordVerification {
892 pub fn new() -> BoundaryRecordVerification {
893 BoundaryRecordVerification {
894 record_id: None,
895 record_hash: None,
896 receipt_id: None,
897 verified: None,
898 errors: None,
899 checked_at: None,
900 }
901 }
902}
903
904#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
916pub struct BoundaryStatus {
917 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
918 pub version: Option<String>,
919 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
920 pub status: Option<String>,
921 #[serde(rename = "receipt_store_ready", skip_serializing_if = "Option::is_none")]
922 pub receipt_store_ready: Option<bool>,
923 #[serde(rename = "signer_ready", skip_serializing_if = "Option::is_none")]
924 pub signer_ready: Option<bool>,
925 #[serde(rename = "open_approvals", skip_serializing_if = "Option::is_none")]
926 pub open_approvals: Option<i32>,
927 #[serde(rename = "quarantined_mcp_servers", skip_serializing_if = "Option::is_none")]
928 pub quarantined_mcp_servers: Option<i32>,
929 #[serde(rename = "last_checkpoint_id", skip_serializing_if = "Option::is_none")]
930 pub last_checkpoint_id: Option<String>,
931 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
932 pub checked_at: Option<String>,
933}
934
935impl BoundaryStatus {
936 pub fn new() -> BoundaryStatus {
937 BoundaryStatus {
938 version: None,
939 status: None,
940 receipt_store_ready: None,
941 signer_ready: None,
942 open_approvals: None,
943 quarantined_mcp_servers: None,
944 last_checkpoint_id: None,
945 checked_at: None,
946 }
947 }
948}
949
950#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
962pub struct BudgetCeiling {
963 #[serde(rename = "budget_id", skip_serializing_if = "Option::is_none")]
964 pub budget_id: Option<String>,
965 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
966 pub subject: Option<String>,
967 #[serde(rename = "window", skip_serializing_if = "Option::is_none")]
968 pub window: Option<String>,
969 #[serde(rename = "max_tool_calls", skip_serializing_if = "Option::is_none")]
970 pub max_tool_calls: Option<i32>,
971 #[serde(rename = "max_spend_minor", skip_serializing_if = "Option::is_none")]
972 pub max_spend_minor: Option<i64>,
973 #[serde(rename = "max_egress_bytes", skip_serializing_if = "Option::is_none")]
974 pub max_egress_bytes: Option<i64>,
975 #[serde(rename = "max_write_ops", skip_serializing_if = "Option::is_none")]
976 pub max_write_ops: Option<i32>,
977 #[serde(rename = "approval_required_after", skip_serializing_if = "Option::is_none")]
978 pub approval_required_after: Option<i32>,
979 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
980 pub policy_epoch: Option<String>,
981}
982
983impl BudgetCeiling {
984 pub fn new() -> BudgetCeiling {
985 BudgetCeiling {
986 budget_id: None,
987 subject: None,
988 window: None,
989 max_tool_calls: None,
990 max_spend_minor: None,
991 max_egress_bytes: None,
992 max_write_ops: None,
993 approval_required_after: None,
994 policy_epoch: None,
995 }
996 }
997}
998
999#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1011pub struct BuildStrategy {
1012 #[serde(rename = "strategy", skip_serializing_if = "Option::is_none")]
1013 pub strategy: Option<String>,
1014 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
1015 pub confidence: Option<f64>,
1016 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
1017 pub reason: Option<String>,
1018 #[serde(rename = "commands", skip_serializing_if = "Option::is_none")]
1019 pub commands: Option<Vec<Vec<String>>>,
1020 #[serde(rename = "manifest_sources", skip_serializing_if = "Option::is_none")]
1021 pub manifest_sources: Option<Vec<String>>,
1022}
1023
1024impl BuildStrategy {
1025 pub fn new() -> BuildStrategy {
1026 BuildStrategy {
1027 strategy: None,
1028 confidence: None,
1029 reason: None,
1030 commands: None,
1031 manifest_sources: None,
1032 }
1033 }
1034}
1035
1036#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1048pub struct CapabilityGraph {
1049 #[serde(rename = "capabilities", skip_serializing_if = "Option::is_none")]
1050 pub capabilities: Option<Vec<String>>,
1051 #[serde(rename = "modules", skip_serializing_if = "Option::is_none")]
1052 pub modules: Option<Vec<DetectedModule>>,
1053 #[serde(rename = "frameworks", skip_serializing_if = "Option::is_none")]
1054 pub frameworks: Option<Vec<DetectedFramework>>,
1055 #[serde(rename = "secrets", skip_serializing_if = "Option::is_none")]
1056 pub secrets: Option<Vec<SecretContract>>,
1057 #[serde(rename = "oauth", skip_serializing_if = "Option::is_none")]
1058 pub oauth: Option<Vec<OAuthRequirement>>,
1059 #[serde(rename = "ports", skip_serializing_if = "Option::is_none")]
1060 pub ports: Option<Vec<i32>>,
1061 #[serde(rename = "build_signals", skip_serializing_if = "Option::is_none")]
1062 pub build_signals: Option<Vec<String>>,
1063 #[serde(rename = "runtime_signals", skip_serializing_if = "Option::is_none")]
1064 pub runtime_signals: Option<Vec<String>>,
1065 #[serde(rename = "policy_signals", skip_serializing_if = "Option::is_none")]
1066 pub policy_signals: Option<Vec<String>>,
1067 #[serde(rename = "security_signals", skip_serializing_if = "Option::is_none")]
1068 pub security_signals: Option<Vec<String>>,
1069 #[serde(rename = "adapter_matches", skip_serializing_if = "Option::is_none")]
1070 pub adapter_matches: Option<Vec<AdapterMatch>>,
1071 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
1072 pub confidence: Option<f64>,
1073 #[serde(rename = "confidence_reason", skip_serializing_if = "Option::is_none")]
1074 pub confidence_reason: Option<String>,
1075}
1076
1077impl CapabilityGraph {
1078 pub fn new() -> CapabilityGraph {
1079 CapabilityGraph {
1080 capabilities: None,
1081 modules: None,
1082 frameworks: None,
1083 secrets: None,
1084 oauth: None,
1085 ports: None,
1086 build_signals: None,
1087 runtime_signals: None,
1088 policy_signals: None,
1089 security_signals: None,
1090 adapter_matches: None,
1091 confidence: None,
1092 confidence_reason: None,
1093 }
1094 }
1095}
1096
1097#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1109pub struct ChatCompletionRequest {
1110 #[serde(rename = "model")]
1111 pub model: String,
1112 #[serde(rename = "messages")]
1113 pub messages: Vec<ChatCompletionRequestMessagesInner>,
1114 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
1115 pub tools: Option<Vec<ChatCompletionRequestToolsInner>>,
1116 #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
1117 pub temperature: Option<f64>,
1118 #[serde(rename = "max_tokens", skip_serializing_if = "Option::is_none")]
1119 pub max_tokens: Option<i32>,
1120 #[serde(rename = "stream", skip_serializing_if = "Option::is_none")]
1121 pub stream: Option<bool>,
1122}
1123
1124impl ChatCompletionRequest {
1125 pub fn new(model: String, messages: Vec<ChatCompletionRequestMessagesInner>) -> ChatCompletionRequest {
1126 ChatCompletionRequest {
1127 model,
1128 messages,
1129 tools: None,
1130 temperature: None,
1131 max_tokens: None,
1132 stream: None,
1133 }
1134 }
1135}
1136
1137#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1149pub struct ChatCompletionRequestMessagesInner {
1150 #[serde(rename = "role")]
1151 pub role: ChatCompletionRequestMessagesInnerRole,
1152 #[serde(rename = "content")]
1153 pub content: String,
1154 #[serde(rename = "tool_call_id", skip_serializing_if = "Option::is_none")]
1155 pub tool_call_id: Option<String>,
1156}
1157
1158impl ChatCompletionRequestMessagesInner {
1159 pub fn new(role: ChatCompletionRequestMessagesInnerRole, content: String) -> ChatCompletionRequestMessagesInner {
1160 ChatCompletionRequestMessagesInner {
1161 role,
1162 content,
1163 tool_call_id: None,
1164 }
1165 }
1166}
1167#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1169pub enum ChatCompletionRequestMessagesInnerRole {
1170 #[serde(rename = "system")]
1171 System,
1172 #[serde(rename = "user")]
1173 User,
1174 #[serde(rename = "assistant")]
1175 Assistant,
1176 #[serde(rename = "tool")]
1177 Tool,
1178}
1179
1180impl Default for ChatCompletionRequestMessagesInnerRole {
1181 fn default() -> ChatCompletionRequestMessagesInnerRole {
1182 Self::System
1183 }
1184}
1185
1186#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1198pub struct ChatCompletionRequestToolsInner {
1199 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
1200 pub r#type: Option<ChatCompletionRequestToolsInnerType>,
1201 #[serde(rename = "function", skip_serializing_if = "Option::is_none")]
1202 pub function: Option<Box<ChatCompletionRequestToolsInnerFunction>>,
1203}
1204
1205impl ChatCompletionRequestToolsInner {
1206 pub fn new() -> ChatCompletionRequestToolsInner {
1207 ChatCompletionRequestToolsInner {
1208 r#type: None,
1209 function: None,
1210 }
1211 }
1212}
1213#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1215pub enum ChatCompletionRequestToolsInnerType {
1216 #[serde(rename = "function")]
1217 Function,
1218}
1219
1220impl Default for ChatCompletionRequestToolsInnerType {
1221 fn default() -> ChatCompletionRequestToolsInnerType {
1222 Self::Function
1223 }
1224}
1225
1226#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1238pub struct ChatCompletionRequestToolsInnerFunction {
1239 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
1240 pub name: Option<String>,
1241 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
1242 pub description: Option<String>,
1243 #[serde(rename = "parameters", skip_serializing_if = "Option::is_none")]
1244 pub parameters: Option<serde_json::Value>,
1245}
1246
1247impl ChatCompletionRequestToolsInnerFunction {
1248 pub fn new() -> ChatCompletionRequestToolsInnerFunction {
1249 ChatCompletionRequestToolsInnerFunction {
1250 name: None,
1251 description: None,
1252 parameters: None,
1253 }
1254 }
1255}
1256
1257#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1269pub struct ChatCompletionResponse {
1270 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
1271 pub id: Option<String>,
1272 #[serde(rename = "object", skip_serializing_if = "Option::is_none")]
1273 pub object: Option<String>,
1274 #[serde(rename = "created", skip_serializing_if = "Option::is_none")]
1275 pub created: Option<i32>,
1276 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
1277 pub model: Option<String>,
1278 #[serde(rename = "choices", skip_serializing_if = "Option::is_none")]
1279 pub choices: Option<Vec<ChatCompletionResponseChoicesInner>>,
1280 #[serde(rename = "usage", skip_serializing_if = "Option::is_none")]
1281 pub usage: Option<Box<ChatCompletionResponseUsage>>,
1282}
1283
1284impl ChatCompletionResponse {
1285 pub fn new() -> ChatCompletionResponse {
1286 ChatCompletionResponse {
1287 id: None,
1288 object: None,
1289 created: None,
1290 model: None,
1291 choices: None,
1292 usage: None,
1293 }
1294 }
1295}
1296
1297#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1309pub struct ChatCompletionResponseChoicesInner {
1310 #[serde(rename = "index", skip_serializing_if = "Option::is_none")]
1311 pub index: Option<i32>,
1312 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
1313 pub message: Option<Box<ChatCompletionResponseChoicesInnerMessage>>,
1314 #[serde(rename = "finish_reason", skip_serializing_if = "Option::is_none")]
1315 pub finish_reason: Option<String>,
1316}
1317
1318impl ChatCompletionResponseChoicesInner {
1319 pub fn new() -> ChatCompletionResponseChoicesInner {
1320 ChatCompletionResponseChoicesInner {
1321 index: None,
1322 message: None,
1323 finish_reason: None,
1324 }
1325 }
1326}
1327
1328#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1340pub struct ChatCompletionResponseChoicesInnerMessage {
1341 #[serde(rename = "role", skip_serializing_if = "Option::is_none")]
1342 pub role: Option<String>,
1343 #[serde(rename = "content", default, skip_serializing_if = "Option::is_none")]
1344 pub content: Option<Option<String>>,
1345 #[serde(rename = "tool_calls", skip_serializing_if = "Option::is_none")]
1346 pub tool_calls: Option<Vec<ChatCompletionResponseChoicesInnerMessageToolCallsInner>>,
1347}
1348
1349impl ChatCompletionResponseChoicesInnerMessage {
1350 pub fn new() -> ChatCompletionResponseChoicesInnerMessage {
1351 ChatCompletionResponseChoicesInnerMessage {
1352 role: None,
1353 content: None,
1354 tool_calls: None,
1355 }
1356 }
1357}
1358
1359#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1371pub struct ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1372 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
1373 pub id: Option<String>,
1374 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
1375 pub r#type: Option<String>,
1376 #[serde(rename = "function", skip_serializing_if = "Option::is_none")]
1377 pub function: Option<Box<ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction>>,
1378}
1379
1380impl ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1381 pub fn new() -> ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1382 ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1383 id: None,
1384 r#type: None,
1385 function: None,
1386 }
1387 }
1388}
1389
1390#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1402pub struct ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1403 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
1404 pub name: Option<String>,
1405 #[serde(rename = "arguments", skip_serializing_if = "Option::is_none")]
1406 pub arguments: Option<String>,
1407}
1408
1409impl ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1410 pub fn new() -> ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1411 ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1412 name: None,
1413 arguments: None,
1414 }
1415 }
1416}
1417
1418#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1430pub struct ChatCompletionResponseUsage {
1431 #[serde(rename = "prompt_tokens", skip_serializing_if = "Option::is_none")]
1432 pub prompt_tokens: Option<i32>,
1433 #[serde(rename = "completion_tokens", skip_serializing_if = "Option::is_none")]
1434 pub completion_tokens: Option<i32>,
1435 #[serde(rename = "total_tokens", skip_serializing_if = "Option::is_none")]
1436 pub total_tokens: Option<i32>,
1437}
1438
1439impl ChatCompletionResponseUsage {
1440 pub fn new() -> ChatCompletionResponseUsage {
1441 ChatCompletionResponseUsage {
1442 prompt_tokens: None,
1443 completion_tokens: None,
1444 total_tokens: None,
1445 }
1446 }
1447}
1448
1449#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1461pub struct CoexistenceCapabilityManifest {
1462 #[serde(rename = "manifest_id", skip_serializing_if = "Option::is_none")]
1463 pub manifest_id: Option<String>,
1464 #[serde(rename = "authority", skip_serializing_if = "Option::is_none")]
1465 pub authority: Option<String>,
1466 #[serde(rename = "boundary_role", skip_serializing_if = "Option::is_none")]
1467 pub boundary_role: Option<String>,
1468 #[serde(rename = "supported_inputs", skip_serializing_if = "Option::is_none")]
1469 pub supported_inputs: Option<Vec<String>>,
1470 #[serde(rename = "export_surfaces", skip_serializing_if = "Option::is_none")]
1471 pub export_surfaces: Option<Vec<String>>,
1472 #[serde(rename = "receipt_bindings", skip_serializing_if = "Option::is_none")]
1473 pub receipt_bindings: Option<Vec<String>>,
1474 #[serde(rename = "generated_at", skip_serializing_if = "Option::is_none")]
1475 pub generated_at: Option<String>,
1476}
1477
1478impl CoexistenceCapabilityManifest {
1479 pub fn new() -> CoexistenceCapabilityManifest {
1480 CoexistenceCapabilityManifest {
1481 manifest_id: None,
1482 authority: None,
1483 boundary_role: None,
1484 supported_inputs: None,
1485 export_surfaces: None,
1486 receipt_bindings: None,
1487 generated_at: None,
1488 }
1489 }
1490}
1491
1492#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1504pub struct ConformanceRequest {
1505 #[serde(rename = "level")]
1506 pub level: ConformanceRequestLevel,
1507 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
1508 pub profile: Option<String>,
1509}
1510
1511impl ConformanceRequest {
1512 pub fn new(level: ConformanceRequestLevel) -> ConformanceRequest {
1513 ConformanceRequest {
1514 level,
1515 profile: None,
1516 }
1517 }
1518}
1519#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1521pub enum ConformanceRequestLevel {
1522 #[serde(rename = "L1")]
1523 L1,
1524 #[serde(rename = "L2")]
1525 L2,
1526}
1527
1528impl Default for ConformanceRequestLevel {
1529 fn default() -> ConformanceRequestLevel {
1530 Self::L1
1531 }
1532}
1533
1534#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1546pub struct ConformanceResult {
1547 #[serde(rename = "report_id", skip_serializing_if = "Option::is_none")]
1548 pub report_id: Option<String>,
1549 #[serde(rename = "level", skip_serializing_if = "Option::is_none")]
1550 pub level: Option<String>,
1551 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
1552 pub verdict: Option<ConformanceResultVerdict>,
1553 #[serde(rename = "gates", skip_serializing_if = "Option::is_none")]
1554 pub gates: Option<i32>,
1555 #[serde(rename = "failed", skip_serializing_if = "Option::is_none")]
1556 pub failed: Option<i32>,
1557 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
1558 pub details: Option<std::collections::HashMap<String, String>>,
1559}
1560
1561impl ConformanceResult {
1562 pub fn new() -> ConformanceResult {
1563 ConformanceResult {
1564 report_id: None,
1565 level: None,
1566 verdict: None,
1567 gates: None,
1568 failed: None,
1569 details: None,
1570 }
1571 }
1572}
1573#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1575pub enum ConformanceResultVerdict {
1576 #[serde(rename = "PASS")]
1577 Pass,
1578 #[serde(rename = "FAIL")]
1579 Fail,
1580}
1581
1582impl Default for ConformanceResultVerdict {
1583 fn default() -> ConformanceResultVerdict {
1584 Self::Pass
1585 }
1586}
1587
1588#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1600pub struct ConsoleBootstrap {
1601 #[serde(rename = "version")]
1602 pub version: Box<VersionInfo>,
1603 #[serde(rename = "workspace")]
1604 pub workspace: Box<ConsoleBootstrapWorkspace>,
1605 #[serde(rename = "health")]
1606 pub health: Box<ConsoleBootstrapHealth>,
1607 #[serde(rename = "counts")]
1608 pub counts: Box<ConsoleBootstrapCounts>,
1609 #[serde(rename = "receipts")]
1610 pub receipts: Vec<Receipt>,
1611 #[serde(rename = "conformance")]
1612 pub conformance: Box<ConsoleBootstrapConformance>,
1613 #[serde(rename = "mcp")]
1614 pub mcp: Box<ConsoleBootstrapMcp>,
1615}
1616
1617impl ConsoleBootstrap {
1618 pub fn new(version: VersionInfo, workspace: ConsoleBootstrapWorkspace, health: ConsoleBootstrapHealth, counts: ConsoleBootstrapCounts, receipts: Vec<Receipt>, conformance: ConsoleBootstrapConformance, mcp: ConsoleBootstrapMcp) -> ConsoleBootstrap {
1619 ConsoleBootstrap {
1620 version: Box::new(version),
1621 workspace: Box::new(workspace),
1622 health: Box::new(health),
1623 counts: Box::new(counts),
1624 receipts,
1625 conformance: Box::new(conformance),
1626 mcp: Box::new(mcp),
1627 }
1628 }
1629}
1630
1631#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1643pub struct ConsoleBootstrapConformance {
1644 #[serde(rename = "level")]
1645 pub level: String,
1646 #[serde(rename = "status")]
1647 pub status: String,
1648 #[serde(rename = "report_id", skip_serializing_if = "Option::is_none")]
1649 pub report_id: Option<String>,
1650}
1651
1652impl ConsoleBootstrapConformance {
1653 pub fn new(level: String, status: String) -> ConsoleBootstrapConformance {
1654 ConsoleBootstrapConformance {
1655 level,
1656 status,
1657 report_id: None,
1658 }
1659 }
1660}
1661
1662#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1674pub struct ConsoleBootstrapCounts {
1675 #[serde(rename = "receipts")]
1676 pub receipts: i32,
1677 #[serde(rename = "pending_approvals")]
1678 pub pending_approvals: i32,
1679 #[serde(rename = "open_incidents")]
1680 pub open_incidents: i32,
1681 #[serde(rename = "mcp_tools")]
1682 pub mcp_tools: i32,
1683}
1684
1685impl ConsoleBootstrapCounts {
1686 pub fn new(receipts: i32, pending_approvals: i32, open_incidents: i32, mcp_tools: i32) -> ConsoleBootstrapCounts {
1687 ConsoleBootstrapCounts {
1688 receipts,
1689 pending_approvals,
1690 open_incidents,
1691 mcp_tools,
1692 }
1693 }
1694}
1695
1696#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1708pub struct ConsoleBootstrapHealth {
1709 #[serde(rename = "kernel")]
1710 pub kernel: String,
1711 #[serde(rename = "policy")]
1712 pub policy: String,
1713 #[serde(rename = "store")]
1714 pub store: String,
1715 #[serde(rename = "conformance")]
1716 pub conformance: String,
1717}
1718
1719impl ConsoleBootstrapHealth {
1720 pub fn new(kernel: String, policy: String, store: String, conformance: String) -> ConsoleBootstrapHealth {
1721 ConsoleBootstrapHealth {
1722 kernel,
1723 policy,
1724 store,
1725 conformance,
1726 }
1727 }
1728}
1729
1730#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1742pub struct ConsoleBootstrapMcp {
1743 #[serde(rename = "authorization")]
1744 pub authorization: String,
1745 #[serde(rename = "scopes")]
1746 pub scopes: Vec<String>,
1747}
1748
1749impl ConsoleBootstrapMcp {
1750 pub fn new(authorization: String, scopes: Vec<String>) -> ConsoleBootstrapMcp {
1751 ConsoleBootstrapMcp {
1752 authorization,
1753 scopes,
1754 }
1755 }
1756}
1757
1758#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1770pub struct ConsoleBootstrapWorkspace {
1771 #[serde(rename = "organization")]
1772 pub organization: String,
1773 #[serde(rename = "project")]
1774 pub project: String,
1775 #[serde(rename = "environment")]
1776 pub environment: String,
1777 #[serde(rename = "mode")]
1778 pub mode: String,
1779}
1780
1781impl ConsoleBootstrapWorkspace {
1782 pub fn new(organization: String, project: String, environment: String, mode: String) -> ConsoleBootstrapWorkspace {
1783 ConsoleBootstrapWorkspace {
1784 organization,
1785 project,
1786 environment,
1787 mode,
1788 }
1789 }
1790}
1791
1792#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1804pub struct ConsoleCapabilities {
1805 #[serde(rename = "entitlements")]
1806 pub entitlements: Vec<String>,
1807 #[serde(rename = "version")]
1808 pub version: String,
1809 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
1810 pub source: Option<String>,
1811 #[serde(rename = "tier_gate", skip_serializing_if = "Option::is_none")]
1812 pub tier_gate: Option<String>,
1813}
1814
1815impl ConsoleCapabilities {
1816 pub fn new(entitlements: Vec<String>, version: String) -> ConsoleCapabilities {
1817 ConsoleCapabilities {
1818 entitlements,
1819 version,
1820 source: None,
1821 tier_gate: None,
1822 }
1823 }
1824}
1825
1826#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1838pub struct ConsoleDiagnostics {
1839 #[serde(rename = "generated_at")]
1840 pub generated_at: String,
1841 #[serde(rename = "runtime")]
1842 pub runtime: std::collections::HashMap<String, serde_json::Value>,
1843 #[serde(rename = "access")]
1844 pub access: std::collections::HashMap<String, serde_json::Value>,
1845 #[serde(rename = "stores")]
1846 pub stores: Vec<ConsoleStoreDiagnostic>,
1847 #[serde(rename = "routes")]
1848 pub routes: Vec<ConsoleRouteDiagnostic>,
1849}
1850
1851impl ConsoleDiagnostics {
1852 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 {
1853 ConsoleDiagnostics {
1854 generated_at,
1855 runtime,
1856 access,
1857 stores,
1858 routes,
1859 }
1860 }
1861}
1862
1863#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1875pub struct ConsoleRouteDiagnostic {
1876 #[serde(rename = "method")]
1877 pub method: String,
1878 #[serde(rename = "path")]
1879 pub path: String,
1880 #[serde(rename = "mux_pattern", skip_serializing_if = "Option::is_none")]
1881 pub mux_pattern: Option<String>,
1882 #[serde(rename = "auth")]
1883 pub auth: String,
1884 #[serde(rename = "rate_limit", skip_serializing_if = "Option::is_none")]
1885 pub rate_limit: Option<String>,
1886 #[serde(rename = "contract_status")]
1887 pub contract_status: String,
1888 #[serde(rename = "operation_id")]
1889 pub operation_id: String,
1890 #[serde(rename = "owner")]
1891 pub owner: String,
1892 #[serde(rename = "group")]
1893 pub group: String,
1894 #[serde(rename = "ui_coverage", skip_serializing_if = "Option::is_none")]
1895 pub ui_coverage: Option<String>,
1896 #[serde(rename = "unsupported_reason", skip_serializing_if = "Option::is_none")]
1897 pub unsupported_reason: Option<String>,
1898}
1899
1900impl ConsoleRouteDiagnostic {
1901 pub fn new(method: String, path: String, auth: String, contract_status: String, operation_id: String, owner: String, group: String) -> ConsoleRouteDiagnostic {
1902 ConsoleRouteDiagnostic {
1903 method,
1904 path,
1905 mux_pattern: None,
1906 auth,
1907 rate_limit: None,
1908 contract_status,
1909 operation_id,
1910 owner,
1911 group,
1912 ui_coverage: None,
1913 unsupported_reason: None,
1914 }
1915 }
1916}
1917
1918#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1930pub struct ConsoleStoreDiagnostic {
1931 #[serde(rename = "id")]
1932 pub id: String,
1933 #[serde(rename = "label")]
1934 pub label: String,
1935 #[serde(rename = "status")]
1936 pub status: String,
1937 #[serde(rename = "backend")]
1938 pub backend: String,
1939 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
1940 pub source: Option<String>,
1941 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
1942 pub path: Option<String>,
1943 #[serde(rename = "detail", skip_serializing_if = "Option::is_none")]
1944 pub detail: Option<String>,
1945}
1946
1947impl ConsoleStoreDiagnostic {
1948 pub fn new(id: String, label: String, status: String, backend: String) -> ConsoleStoreDiagnostic {
1949 ConsoleStoreDiagnostic {
1950 id,
1951 label,
1952 status,
1953 backend,
1954 source: None,
1955 path: None,
1956 detail: None,
1957 }
1958 }
1959}
1960
1961#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1973pub struct ConsoleSurfaceRef {
1974 #[serde(rename = "id")]
1975 pub id: String,
1976 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
1977 pub label: Option<String>,
1978 #[serde(rename = "group", skip_serializing_if = "Option::is_none")]
1979 pub group: Option<String>,
1980 #[serde(rename = "source")]
1981 pub source: String,
1982 #[serde(rename = "auth", skip_serializing_if = "Option::is_none")]
1983 pub auth: Option<String>,
1984 #[serde(rename = "contract_status", skip_serializing_if = "Option::is_none")]
1985 pub contract_status: Option<String>,
1986 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
1987 pub status: Option<String>,
1988 #[serde(rename = "unsupported_reason", skip_serializing_if = "Option::is_none")]
1989 pub unsupported_reason: Option<String>,
1990 #[serde(rename = "routes", skip_serializing_if = "Option::is_none")]
1991 pub routes: Option<Vec<ConsoleRouteDiagnostic>>,
1992}
1993
1994impl ConsoleSurfaceRef {
1995 pub fn new(id: String, source: String) -> ConsoleSurfaceRef {
1996 ConsoleSurfaceRef {
1997 id,
1998 label: None,
1999 group: None,
2000 source,
2001 auth: None,
2002 contract_status: None,
2003 status: None,
2004 unsupported_reason: None,
2005 routes: None,
2006 }
2007 }
2008}
2009
2010#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2022pub struct ConsoleSurfaceState {
2023 #[serde(rename = "id")]
2024 pub id: String,
2025 #[serde(rename = "status")]
2026 pub status: String,
2027 #[serde(rename = "source")]
2028 pub source: String,
2029 #[serde(rename = "generated_at")]
2030 pub generated_at: String,
2031 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
2032 pub summary: Option<std::collections::HashMap<String, serde_json::Value>>,
2033 #[serde(rename = "records", skip_serializing_if = "Option::is_none")]
2034 pub records: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
2035}
2036
2037impl ConsoleSurfaceState {
2038 pub fn new(id: String, status: String, source: String, generated_at: String) -> ConsoleSurfaceState {
2039 ConsoleSurfaceState {
2040 id,
2041 status,
2042 source,
2043 generated_at,
2044 summary: None,
2045 records: None,
2046 }
2047 }
2048}
2049
2050#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2062pub struct CreateApprovalWebAuthnChallengeRequest {
2063 #[serde(rename = "method", skip_serializing_if = "Option::is_none")]
2064 pub method: Option<String>,
2065 #[serde(rename = "ttl_ms", skip_serializing_if = "Option::is_none")]
2066 pub ttl_ms: Option<i32>,
2067}
2068
2069impl CreateApprovalWebAuthnChallengeRequest {
2070 pub fn new() -> CreateApprovalWebAuthnChallengeRequest {
2071 CreateApprovalWebAuthnChallengeRequest {
2072 method: None,
2073 ttl_ms: None,
2074 }
2075 }
2076}
2077
2078#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2090pub struct CreateLaunchpadImport202Response {
2091 #[serde(rename = "import")]
2092 pub import: Box<LaunchpadImportRecord>,
2093 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
2094 pub cli_equivalent: Option<String>,
2095}
2096
2097impl CreateLaunchpadImport202Response {
2098 pub fn new(import: LaunchpadImportRecord) -> CreateLaunchpadImport202Response {
2099 CreateLaunchpadImport202Response {
2100 import: Box::new(import),
2101 cli_equivalent: None,
2102 }
2103 }
2104}
2105
2106#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2118pub struct CreateSandboxGrantRequest {
2119 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
2120 pub runtime: Option<String>,
2121 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
2122 pub profile: Option<String>,
2123 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
2124 pub image_digest: Option<String>,
2125 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
2126 pub policy_epoch: Option<String>,
2127}
2128
2129impl CreateSandboxGrantRequest {
2130 pub fn new() -> CreateSandboxGrantRequest {
2131 CreateSandboxGrantRequest {
2132 runtime: None,
2133 profile: None,
2134 image_digest: None,
2135 policy_epoch: None,
2136 }
2137 }
2138}
2139
2140#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2152pub struct DecisionRecord {
2153 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
2154 pub id: Option<String>,
2155 #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
2156 pub action: Option<String>,
2157 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
2158 pub resource: Option<String>,
2159 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
2160 pub verdict: Option<String>,
2161 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
2162 pub reason: Option<String>,
2163 #[serde(rename = "policy_version", skip_serializing_if = "Option::is_none")]
2164 pub policy_version: Option<String>,
2165 #[serde(rename = "policy_decision_hash", skip_serializing_if = "Option::is_none")]
2166 pub policy_decision_hash: Option<String>,
2167 #[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
2168 pub signature: Option<String>,
2169}
2170
2171impl DecisionRecord {
2172 pub fn new() -> DecisionRecord {
2173 DecisionRecord {
2174 id: None,
2175 action: None,
2176 resource: None,
2177 verdict: None,
2178 reason: None,
2179 policy_version: None,
2180 policy_decision_hash: None,
2181 signature: None,
2182 }
2183 }
2184}
2185
2186#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2198pub struct DecisionRequest {
2199 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
2200 pub principal: Option<String>,
2201 #[serde(rename = "action")]
2202 pub action: String,
2203 #[serde(rename = "resource")]
2204 pub resource: String,
2205 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
2206 pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
2207}
2208
2209impl DecisionRequest {
2210 pub fn new(action: String, resource: String) -> DecisionRequest {
2211 DecisionRequest {
2212 principal: None,
2213 action,
2214 resource,
2215 context: None,
2216 }
2217 }
2218}
2219
2220#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2232pub struct DetectedFramework {
2233 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
2234 pub id: Option<String>,
2235 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
2236 pub name: Option<String>,
2237 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
2238 pub confidence: Option<f64>,
2239 #[serde(rename = "evidence", skip_serializing_if = "Option::is_none")]
2240 pub evidence: Option<Vec<String>>,
2241}
2242
2243impl DetectedFramework {
2244 pub fn new() -> DetectedFramework {
2245 DetectedFramework {
2246 id: None,
2247 name: None,
2248 confidence: None,
2249 evidence: None,
2250 }
2251 }
2252}
2253
2254#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2266pub struct DetectedModule {
2267 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
2268 pub path: Option<String>,
2269 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
2270 pub kind: Option<String>,
2271 #[serde(rename = "manifests", skip_serializing_if = "Option::is_none")]
2272 pub manifests: Option<Vec<String>>,
2273 #[serde(rename = "entrypoints", skip_serializing_if = "Option::is_none")]
2274 pub entrypoints: Option<Vec<String>>,
2275 #[serde(rename = "build_strategy", skip_serializing_if = "Option::is_none")]
2276 pub build_strategy: Option<String>,
2277}
2278
2279impl DetectedModule {
2280 pub fn new() -> DetectedModule {
2281 DetectedModule {
2282 path: None,
2283 kind: None,
2284 manifests: None,
2285 entrypoints: None,
2286 build_strategy: None,
2287 }
2288 }
2289}
2290
2291#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2304pub struct Effect {
2305 #[serde(rename = "effect_type")]
2307 pub effect_type: String,
2308 #[serde(rename = "effect_id")]
2310 pub effect_id: String,
2311 #[serde(rename = "params")]
2313 pub params: std::collections::HashMap<String, serde_json::Value>,
2314 #[serde(rename = "budget_id", skip_serializing_if = "Option::is_none")]
2316 pub budget_id: Option<String>,
2317}
2318
2319impl Effect {
2320 pub fn new(effect_type: String, effect_id: String, params: std::collections::HashMap<String, serde_json::Value>) -> Effect {
2322 Effect {
2323 effect_type,
2324 effect_id,
2325 params,
2326 budget_id: None,
2327 }
2328 }
2329}
2330
2331#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2344pub struct EffectBoundary {
2345 #[serde(rename = "effect")]
2346 pub effect: Box<Effect>,
2347 #[serde(rename = "principal")]
2349 pub principal: String,
2350 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
2352 pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
2353}
2354
2355impl EffectBoundary {
2356 pub fn new(effect: Effect, principal: String) -> EffectBoundary {
2358 EffectBoundary {
2359 effect: Box::new(effect),
2360 principal,
2361 context: None,
2362 }
2363 }
2364}
2365
2366#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2378pub struct EntitlementCapabilities {
2379 #[serde(rename = "demo_launch", skip_serializing_if = "Option::is_none")]
2380 pub demo_launch: Option<bool>,
2381 #[serde(rename = "local_launch", skip_serializing_if = "Option::is_none")]
2382 pub local_launch: Option<bool>,
2383 #[serde(rename = "cloud_launch", skip_serializing_if = "Option::is_none")]
2384 pub cloud_launch: Option<bool>,
2385 #[serde(rename = "custom_policy", skip_serializing_if = "Option::is_none")]
2386 pub custom_policy: Option<bool>,
2387 #[serde(rename = "bring_own_secrets", skip_serializing_if = "Option::is_none")]
2388 pub bring_own_secrets: Option<bool>,
2389 #[serde(rename = "evidence_export", skip_serializing_if = "Option::is_none")]
2390 pub evidence_export: Option<bool>,
2391 #[serde(rename = "offline_verify", skip_serializing_if = "Option::is_none")]
2392 pub offline_verify: Option<bool>,
2393 #[serde(rename = "team_admin", skip_serializing_if = "Option::is_none")]
2394 pub team_admin: Option<bool>,
2395 #[serde(rename = "sso", skip_serializing_if = "Option::is_none")]
2396 pub sso: Option<bool>,
2397 #[serde(rename = "legal_hold", skip_serializing_if = "Option::is_none")]
2398 pub legal_hold: Option<bool>,
2399 #[serde(rename = "certified_connectors", skip_serializing_if = "Option::is_none")]
2400 pub certified_connectors: Option<bool>,
2401 #[serde(rename = "enterprise_retention", skip_serializing_if = "Option::is_none")]
2402 pub enterprise_retention: Option<bool>,
2403}
2404
2405impl EntitlementCapabilities {
2406 pub fn new() -> EntitlementCapabilities {
2407 EntitlementCapabilities {
2408 demo_launch: None,
2409 local_launch: None,
2410 cloud_launch: None,
2411 custom_policy: None,
2412 bring_own_secrets: None,
2413 evidence_export: None,
2414 offline_verify: None,
2415 team_admin: None,
2416 sso: None,
2417 legal_hold: None,
2418 certified_connectors: None,
2419 enterprise_retention: None,
2420 }
2421 }
2422}
2423
2424#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2436pub struct EntitlementDecision {
2437 #[serde(rename = "allowed", skip_serializing_if = "Option::is_none")]
2438 pub allowed: Option<bool>,
2439 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
2440 pub user_state: Option<EntitlementDecisionUserState>,
2441 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
2442 pub required_capability: Option<String>,
2443 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
2444 pub reason_code: Option<String>,
2445 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
2446 pub reason: Option<String>,
2447 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
2448 pub upgrade_reason: Option<String>,
2449 #[serde(rename = "limit", skip_serializing_if = "Option::is_none")]
2450 pub limit: Option<i64>,
2451 #[serde(rename = "used", skip_serializing_if = "Option::is_none")]
2452 pub used: Option<i64>,
2453 #[serde(rename = "remaining", skip_serializing_if = "Option::is_none")]
2454 pub remaining: Option<i64>,
2455 #[serde(rename = "decision_ref", skip_serializing_if = "Option::is_none")]
2456 pub decision_ref: Option<String>,
2457 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
2458 pub source: Option<String>,
2459 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
2460 pub expires_at: Option<String>,
2461}
2462
2463impl EntitlementDecision {
2464 pub fn new() -> EntitlementDecision {
2465 EntitlementDecision {
2466 allowed: None,
2467 user_state: None,
2468 required_capability: None,
2469 reason_code: None,
2470 reason: None,
2471 upgrade_reason: None,
2472 limit: None,
2473 used: None,
2474 remaining: None,
2475 decision_ref: None,
2476 source: None,
2477 expires_at: None,
2478 }
2479 }
2480}
2481#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2483pub enum EntitlementDecisionUserState {
2484 #[serde(rename = "available")]
2485 Available,
2486 #[serde(rename = "needs_setup")]
2487 NeedsSetup,
2488 #[serde(rename = "upgrade_required")]
2489 UpgradeRequired,
2490 #[serde(rename = "enterprise_controlled")]
2491 EnterpriseControlled,
2492 #[serde(rename = "blocked")]
2493 Blocked,
2494 #[serde(rename = "unsupported")]
2495 Unsupported,
2496}
2497
2498impl Default for EntitlementDecisionUserState {
2499 fn default() -> EntitlementDecisionUserState {
2500 Self::Available
2501 }
2502}
2503
2504#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2516pub struct EntitlementDecisionRequest {
2517 #[serde(rename = "principal_id", skip_serializing_if = "Option::is_none")]
2518 pub principal_id: Option<String>,
2519 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
2520 pub tenant_id: Option<String>,
2521 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
2522 pub workspace_id: Option<String>,
2523 #[serde(rename = "action")]
2524 pub action: String,
2525 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
2526 pub app_id: Option<String>,
2527 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
2528 pub substrate_id: Option<String>,
2529 #[serde(rename = "target", skip_serializing_if = "Option::is_none")]
2530 pub target: Option<String>,
2531 #[serde(rename = "current_usage", skip_serializing_if = "Option::is_none")]
2532 pub current_usage: Option<Box<EntitlementDecisionRequestCurrentUsage>>,
2533 #[serde(rename = "run_id", skip_serializing_if = "Option::is_none")]
2534 pub run_id: Option<String>,
2535}
2536
2537impl EntitlementDecisionRequest {
2538 pub fn new(action: String) -> EntitlementDecisionRequest {
2539 EntitlementDecisionRequest {
2540 principal_id: None,
2541 tenant_id: None,
2542 workspace_id: None,
2543 action,
2544 app_id: None,
2545 substrate_id: None,
2546 target: None,
2547 current_usage: None,
2548 run_id: None,
2549 }
2550 }
2551}
2552
2553#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2565pub struct EntitlementDecisionRequestCurrentUsage {
2566 #[serde(rename = "monthly_launches", default, skip_serializing_if = "Option::is_none")]
2567 pub monthly_launches: Option<Option<serde_json::Value>>,
2568 #[serde(rename = "concurrent_runs", default, skip_serializing_if = "Option::is_none")]
2569 pub concurrent_runs: Option<Option<serde_json::Value>>,
2570 #[serde(rename = "cloud_targets", default, skip_serializing_if = "Option::is_none")]
2571 pub cloud_targets: Option<Option<serde_json::Value>>,
2572}
2573
2574impl EntitlementDecisionRequestCurrentUsage {
2575 pub fn new() -> EntitlementDecisionRequestCurrentUsage {
2576 EntitlementDecisionRequestCurrentUsage {
2577 monthly_launches: None,
2578 concurrent_runs: None,
2579 cloud_targets: None,
2580 }
2581 }
2582}
2583
2584#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2596pub struct EntitlementLimits {
2597 #[serde(rename = "monthly_launches", default, skip_serializing_if = "Option::is_none")]
2598 pub monthly_launches: Option<Option<serde_json::Value>>,
2599 #[serde(rename = "concurrent_runs", default, skip_serializing_if = "Option::is_none")]
2600 pub concurrent_runs: Option<Option<serde_json::Value>>,
2601 #[serde(rename = "retention_days", default, skip_serializing_if = "Option::is_none")]
2602 pub retention_days: Option<Option<serde_json::Value>>,
2603 #[serde(rename = "max_cloud_targets", default, skip_serializing_if = "Option::is_none")]
2604 pub max_cloud_targets: Option<Option<serde_json::Value>>,
2605 #[serde(rename = "evidence_export_mb", default, skip_serializing_if = "Option::is_none")]
2606 pub evidence_export_mb: Option<Option<serde_json::Value>>,
2607 #[serde(rename = "connector_certification_scope", skip_serializing_if = "Option::is_none")]
2608 pub connector_certification_scope: Option<String>,
2609}
2610
2611impl EntitlementLimits {
2612 pub fn new() -> EntitlementLimits {
2613 EntitlementLimits {
2614 monthly_launches: None,
2615 concurrent_runs: None,
2616 retention_days: None,
2617 max_cloud_targets: None,
2618 evidence_export_mb: None,
2619 connector_certification_scope: None,
2620 }
2621 }
2622}
2623
2624#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2636pub struct EnvExposurePolicy {
2637 #[serde(rename = "mode")]
2638 pub mode: EnvExposurePolicyMode,
2639 #[serde(rename = "names", skip_serializing_if = "Option::is_none")]
2640 pub names: Option<Vec<String>>,
2641 #[serde(rename = "names_hash", skip_serializing_if = "Option::is_none")]
2642 pub names_hash: Option<String>,
2643 #[serde(rename = "redacted", skip_serializing_if = "Option::is_none")]
2644 pub redacted: Option<bool>,
2645}
2646
2647impl EnvExposurePolicy {
2648 pub fn new(mode: EnvExposurePolicyMode) -> EnvExposurePolicy {
2649 EnvExposurePolicy {
2650 mode,
2651 names: None,
2652 names_hash: None,
2653 redacted: None,
2654 }
2655 }
2656}
2657#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2659pub enum EnvExposurePolicyMode {
2660 #[serde(rename = "deny-all")]
2661 DenyAll,
2662 #[serde(rename = "allowlist")]
2663 Allowlist,
2664 #[serde(rename = "redacted")]
2665 Redacted,
2666}
2667
2668impl Default for EnvExposurePolicyMode {
2669 fn default() -> EnvExposurePolicyMode {
2670 Self::DenyAll
2671 }
2672}
2673
2674#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2686pub struct EvidenceEnvelopeExportRequest {
2687 #[serde(rename = "manifest_id")]
2688 pub manifest_id: String,
2689 #[serde(rename = "envelope")]
2690 pub envelope: EvidenceEnvelopeExportRequestEnvelope,
2691 #[serde(rename = "native_evidence_hash")]
2693 pub native_evidence_hash: String,
2694 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
2695 pub subject: Option<String>,
2696 #[serde(rename = "experimental", skip_serializing_if = "Option::is_none")]
2698 pub experimental: Option<bool>,
2699}
2700
2701impl EvidenceEnvelopeExportRequest {
2702 pub fn new(manifest_id: String, envelope: EvidenceEnvelopeExportRequestEnvelope, native_evidence_hash: String) -> EvidenceEnvelopeExportRequest {
2703 EvidenceEnvelopeExportRequest {
2704 manifest_id,
2705 envelope,
2706 native_evidence_hash,
2707 subject: None,
2708 experimental: None,
2709 }
2710 }
2711}
2712#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2714pub enum EvidenceEnvelopeExportRequestEnvelope {
2715 #[serde(rename = "dsse")]
2716 Dsse,
2717 #[serde(rename = "jws")]
2718 Jws,
2719 #[serde(rename = "in-toto")]
2720 InToto,
2721 #[serde(rename = "slsa")]
2722 Slsa,
2723 #[serde(rename = "sigstore")]
2724 Sigstore,
2725 #[serde(rename = "scitt")]
2726 Scitt,
2727 #[serde(rename = "cose")]
2728 Cose,
2729}
2730
2731impl Default for EvidenceEnvelopeExportRequestEnvelope {
2732 fn default() -> EvidenceEnvelopeExportRequestEnvelope {
2733 Self::Dsse
2734 }
2735}
2736
2737#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2749pub struct EvidenceEnvelopeManifest {
2750 #[serde(rename = "manifest_id")]
2751 pub manifest_id: String,
2752 #[serde(rename = "envelope")]
2753 pub envelope: EvidenceEnvelopeManifestEnvelope,
2754 #[serde(rename = "native_evidence_hash")]
2755 pub native_evidence_hash: String,
2756 #[serde(rename = "native_authority")]
2757 pub native_authority: bool,
2758 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
2759 pub subject: Option<String>,
2760 #[serde(rename = "statement_hash", skip_serializing_if = "Option::is_none")]
2761 pub statement_hash: Option<String>,
2762 #[serde(rename = "experimental", skip_serializing_if = "Option::is_none")]
2763 pub experimental: Option<bool>,
2764 #[serde(rename = "created_at")]
2765 pub created_at: String,
2766 #[serde(rename = "manifest_hash", skip_serializing_if = "Option::is_none")]
2767 pub manifest_hash: Option<String>,
2768}
2769
2770impl EvidenceEnvelopeManifest {
2771 pub fn new(manifest_id: String, envelope: EvidenceEnvelopeManifestEnvelope, native_evidence_hash: String, native_authority: bool, created_at: String) -> EvidenceEnvelopeManifest {
2772 EvidenceEnvelopeManifest {
2773 manifest_id,
2774 envelope,
2775 native_evidence_hash,
2776 native_authority,
2777 subject: None,
2778 statement_hash: None,
2779 experimental: None,
2780 created_at,
2781 manifest_hash: None,
2782 }
2783 }
2784}
2785#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2787pub enum EvidenceEnvelopeManifestEnvelope {
2788 #[serde(rename = "dsse")]
2789 Dsse,
2790 #[serde(rename = "jws")]
2791 Jws,
2792 #[serde(rename = "in-toto")]
2793 InToto,
2794 #[serde(rename = "slsa")]
2795 Slsa,
2796 #[serde(rename = "sigstore")]
2797 Sigstore,
2798 #[serde(rename = "scitt")]
2799 Scitt,
2800 #[serde(rename = "cose")]
2801 Cose,
2802}
2803
2804impl Default for EvidenceEnvelopeManifestEnvelope {
2805 fn default() -> EvidenceEnvelopeManifestEnvelope {
2806 Self::Dsse
2807 }
2808}
2809
2810#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2822pub struct EvidenceEnvelopeVerification {
2823 #[serde(rename = "manifest_id", skip_serializing_if = "Option::is_none")]
2824 pub manifest_id: Option<String>,
2825 #[serde(rename = "manifest_hash", skip_serializing_if = "Option::is_none")]
2826 pub manifest_hash: Option<String>,
2827 #[serde(rename = "native_evidence_hash", skip_serializing_if = "Option::is_none")]
2828 pub native_evidence_hash: Option<String>,
2829 #[serde(rename = "verified", skip_serializing_if = "Option::is_none")]
2830 pub verified: Option<bool>,
2831 #[serde(rename = "authoritative", skip_serializing_if = "Option::is_none")]
2832 pub authoritative: Option<bool>,
2833 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
2834 pub errors: Option<Vec<String>>,
2835 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
2836 pub checked_at: Option<String>,
2837}
2838
2839impl EvidenceEnvelopeVerification {
2840 pub fn new() -> EvidenceEnvelopeVerification {
2841 EvidenceEnvelopeVerification {
2842 manifest_id: None,
2843 manifest_hash: None,
2844 native_evidence_hash: None,
2845 verified: None,
2846 authoritative: None,
2847 errors: None,
2848 checked_at: None,
2849 }
2850 }
2851}
2852
2853#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2865pub struct ExecutionBoundaryRecord {
2866 #[serde(rename = "record_id", skip_serializing_if = "Option::is_none")]
2867 pub record_id: Option<String>,
2868 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
2869 pub verdict: Option<ExecutionBoundaryRecordVerdict>,
2870 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
2871 pub reason_code: Option<String>,
2872 #[serde(rename = "tool_name", skip_serializing_if = "Option::is_none")]
2873 pub tool_name: Option<String>,
2874 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
2875 pub args_hash: Option<String>,
2876 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
2877 pub policy_epoch: Option<String>,
2878 #[serde(rename = "mcp_server_id", skip_serializing_if = "Option::is_none")]
2879 pub mcp_server_id: Option<String>,
2880 #[serde(rename = "oauth_resource", skip_serializing_if = "Option::is_none")]
2881 pub oauth_resource: Option<String>,
2882 #[serde(rename = "oauth_scopes", skip_serializing_if = "Option::is_none")]
2883 pub oauth_scopes: Option<Vec<String>>,
2884 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
2885 pub sandbox_grant_hash: Option<String>,
2886 #[serde(rename = "authz_snapshot_hash", skip_serializing_if = "Option::is_none")]
2887 pub authz_snapshot_hash: Option<String>,
2888 #[serde(rename = "approval_receipt_id", skip_serializing_if = "Option::is_none")]
2889 pub approval_receipt_id: Option<String>,
2890 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
2891 pub receipt_id: Option<String>,
2892 #[serde(rename = "record_hash", skip_serializing_if = "Option::is_none")]
2893 pub record_hash: Option<String>,
2894 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
2895 pub created_at: Option<String>,
2896}
2897
2898impl ExecutionBoundaryRecord {
2899 pub fn new() -> ExecutionBoundaryRecord {
2900 ExecutionBoundaryRecord {
2901 record_id: None,
2902 verdict: None,
2903 reason_code: None,
2904 tool_name: None,
2905 args_hash: None,
2906 policy_epoch: None,
2907 mcp_server_id: None,
2908 oauth_resource: None,
2909 oauth_scopes: None,
2910 sandbox_grant_hash: None,
2911 authz_snapshot_hash: None,
2912 approval_receipt_id: None,
2913 receipt_id: None,
2914 record_hash: None,
2915 created_at: None,
2916 }
2917 }
2918}
2919#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2921pub enum ExecutionBoundaryRecordVerdict {
2922 #[serde(rename = "ALLOW")]
2923 Allow,
2924 #[serde(rename = "DENY")]
2925 Deny,
2926 #[serde(rename = "ESCALATE")]
2927 Escalate,
2928}
2929
2930impl Default for ExecutionBoundaryRecordVerdict {
2931 fn default() -> ExecutionBoundaryRecordVerdict {
2932 Self::Allow
2933 }
2934}
2935
2936#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2948pub struct ExportRequest {
2949 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
2951 pub session_id: Option<String>,
2952 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
2953 pub format: Option<ExportRequestFormat>,
2954}
2955
2956impl ExportRequest {
2957 pub fn new() -> ExportRequest {
2958 ExportRequest {
2959 session_id: None,
2960 format: None,
2961 }
2962 }
2963}
2964#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2966pub enum ExportRequestFormat {
2967 #[serde(rename = "tar.gz")]
2968 TarPeriodGz,
2969}
2970
2971impl Default for ExportRequestFormat {
2972 fn default() -> ExportRequestFormat {
2973 Self::TarPeriodGz
2974 }
2975}
2976
2977#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2989pub struct FilesystemPreopen {
2990 #[serde(rename = "path")]
2991 pub path: String,
2992 #[serde(rename = "mode")]
2993 pub mode: FilesystemPreopenMode,
2994 #[serde(rename = "content_hash", skip_serializing_if = "Option::is_none")]
2995 pub content_hash: Option<String>,
2996}
2997
2998impl FilesystemPreopen {
2999 pub fn new(path: String, mode: FilesystemPreopenMode) -> FilesystemPreopen {
3000 FilesystemPreopen {
3001 path,
3002 mode,
3003 content_hash: None,
3004 }
3005 }
3006}
3007#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3009pub enum FilesystemPreopenMode {
3010 #[serde(rename = "ro")]
3011 Ro,
3012 #[serde(rename = "rw")]
3013 Rw,
3014}
3015
3016impl Default for FilesystemPreopenMode {
3017 fn default() -> FilesystemPreopenMode {
3018 Self::Ro
3019 }
3020}
3021
3022#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3034pub struct FrameworkAdapter {
3035 #[serde(rename = "apiVersion", skip_serializing_if = "Option::is_none")]
3036 pub api_version: Option<String>,
3037 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
3038 pub kind: Option<String>,
3039 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
3040 pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
3041 #[serde(rename = "match", skip_serializing_if = "Option::is_none")]
3042 pub r#match: Option<std::collections::HashMap<String, serde_json::Value>>,
3043 #[serde(rename = "capabilities", default, skip_serializing_if = "Option::is_none")]
3044 pub capabilities: Option<Option<serde_json::Value>>,
3045 #[serde(rename = "entrypoints", skip_serializing_if = "Option::is_none")]
3046 pub entrypoints: Option<std::collections::HashMap<String, serde_json::Value>>,
3047 #[serde(rename = "build", skip_serializing_if = "Option::is_none")]
3048 pub build: Option<std::collections::HashMap<String, serde_json::Value>>,
3049}
3050
3051impl FrameworkAdapter {
3052 pub fn new() -> FrameworkAdapter {
3053 FrameworkAdapter {
3054 api_version: None,
3055 kind: None,
3056 metadata: None,
3057 r#match: None,
3058 capabilities: None,
3059 entrypoints: None,
3060 build: None,
3061 }
3062 }
3063}
3064
3065#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3077pub struct GeneratedAppSpecCandidate {
3078 #[serde(rename = "candidate_id")]
3079 pub candidate_id: String,
3080 #[serde(rename = "trusted")]
3081 pub trusted: bool,
3082 #[serde(rename = "app_spec")]
3083 pub app_spec: Box<LaunchpadApp>,
3084 #[serde(rename = "promotion_requirements")]
3085 pub promotion_requirements: Vec<String>,
3086}
3087
3088impl GeneratedAppSpecCandidate {
3089 pub fn new(candidate_id: String, trusted: bool, app_spec: LaunchpadApp, promotion_requirements: Vec<String>) -> GeneratedAppSpecCandidate {
3090 GeneratedAppSpecCandidate {
3091 candidate_id,
3092 trusted,
3093 app_spec: Box::new(app_spec),
3094 promotion_requirements,
3095 }
3096 }
3097}
3098
3099#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3111pub struct GetAgentUiRuntimeInfo200Response {
3112 #[serde(rename = "runtime")]
3113 pub runtime: String,
3114 #[serde(rename = "protocol", deserialize_with = "Option::deserialize")]
3115 pub protocol: Option<serde_json::Value>,
3116 #[serde(rename = "transport", deserialize_with = "Option::deserialize")]
3117 pub transport: Option<serde_json::Value>,
3118 #[serde(rename = "tools", deserialize_with = "Option::deserialize")]
3119 pub tools: Option<serde_json::Value>,
3120}
3121
3122impl GetAgentUiRuntimeInfo200Response {
3123 pub fn new(runtime: String, protocol: Option<serde_json::Value>, transport: Option<serde_json::Value>, tools: Option<serde_json::Value>) -> GetAgentUiRuntimeInfo200Response {
3124 GetAgentUiRuntimeInfo200Response {
3125 runtime,
3126 protocol,
3127 transport,
3128 tools,
3129 }
3130 }
3131}
3132
3133#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3145pub struct GetLaunchpadImport200Response {
3146 #[serde(rename = "import")]
3147 pub import: Box<LaunchpadImportRecord>,
3148}
3149
3150impl GetLaunchpadImport200Response {
3151 pub fn new(import: LaunchpadImportRecord) -> GetLaunchpadImport200Response {
3152 GetLaunchpadImport200Response {
3153 import: Box::new(import),
3154 }
3155 }
3156}
3157
3158#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3170pub struct GetLaunchpadMatrix200Response {
3171 #[serde(rename = "matrix")]
3172 pub matrix: Vec<LaunchpadMatrixCell>,
3173}
3174
3175impl GetLaunchpadMatrix200Response {
3176 pub fn new(matrix: Vec<LaunchpadMatrixCell>) -> GetLaunchpadMatrix200Response {
3177 GetLaunchpadMatrix200Response {
3178 matrix,
3179 }
3180 }
3181}
3182
3183#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3195pub struct GetPublicDemoHealth200Response {
3196 #[serde(rename = "version")]
3197 pub version: String,
3198 #[serde(rename = "commit")]
3199 pub commit: String,
3200 #[serde(rename = "helm_ai_kernel_version")]
3201 pub helm_ai_kernel_version: String,
3202 #[serde(rename = "status")]
3203 pub status: String,
3204 #[serde(rename = "build_time")]
3205 pub build_time: String,
3206 #[serde(rename = "git_sha")]
3207 pub git_sha: String,
3208 #[serde(rename = "deployment_id")]
3209 pub deployment_id: String,
3210}
3211
3212impl GetPublicDemoHealth200Response {
3213 pub fn new(version: String, commit: String, helm_ai_kernel_version: String, status: String, build_time: String, git_sha: String, deployment_id: String) -> GetPublicDemoHealth200Response {
3214 GetPublicDemoHealth200Response {
3215 version,
3216 commit,
3217 helm_ai_kernel_version,
3218 status,
3219 build_time,
3220 git_sha,
3221 deployment_id,
3222 }
3223 }
3224}
3225
3226#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3239pub struct GovernanceDecision {
3240 #[serde(rename = "decision_id")]
3241 pub decision_id: String,
3242 #[serde(rename = "effect_id")]
3243 pub effect_id: String,
3244 #[serde(rename = "verdict")]
3245 pub verdict: GovernanceDecisionVerdict,
3246 #[serde(rename = "reason_code", default, skip_serializing_if = "Option::is_none")]
3248 pub reason_code: Option<Option<String>>,
3249 #[serde(rename = "receipt", skip_serializing_if = "Option::is_none")]
3250 pub receipt: Option<Box<Receipt>>,
3251 #[serde(rename = "active_packs", skip_serializing_if = "Option::is_none")]
3253 pub active_packs: Option<Vec<String>>,
3254}
3255
3256impl GovernanceDecision {
3257 pub fn new(decision_id: String, effect_id: String, verdict: GovernanceDecisionVerdict) -> GovernanceDecision {
3259 GovernanceDecision {
3260 decision_id,
3261 effect_id,
3262 verdict,
3263 reason_code: None,
3264 receipt: None,
3265 active_packs: None,
3266 }
3267 }
3268}
3269#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3271pub enum GovernanceDecisionVerdict {
3272 #[serde(rename = "ALLOW")]
3273 Allow,
3274 #[serde(rename = "DENY")]
3275 Deny,
3276 #[serde(rename = "ESCALATE")]
3277 Escalate,
3278}
3279
3280impl Default for GovernanceDecisionVerdict {
3281 fn default() -> GovernanceDecisionVerdict {
3282 Self::Allow
3283 }
3284}
3285
3286#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3298pub struct GroundedActionRef {
3299 #[serde(rename = "grounded_action_id")]
3300 pub grounded_action_id: String,
3301 #[serde(rename = "screenshot_hash")]
3302 pub screenshot_hash: String,
3303 #[serde(rename = "dom_or_ax_snapshot_hash")]
3304 pub dom_or_ax_snapshot_hash: String,
3305 #[serde(rename = "target_ref")]
3306 pub target_ref: String,
3307 #[serde(rename = "bbox_or_element_id")]
3308 pub bbox_or_element_id: String,
3309 #[serde(rename = "action_type")]
3310 pub action_type: GroundedActionRefActionType,
3311 #[serde(rename = "precondition")]
3312 pub precondition: String,
3313 #[serde(rename = "postcondition")]
3314 pub postcondition: String,
3315 #[serde(rename = "verification_scope_ref")]
3316 pub verification_scope_ref: String,
3317 #[serde(rename = "policy_hash")]
3318 pub policy_hash: String,
3319 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3320 pub sandbox_grant_hash: Option<String>,
3321 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
3322 pub created_at: Option<String>,
3323 #[serde(rename = "grounding_hash", skip_serializing_if = "Option::is_none")]
3324 pub grounding_hash: Option<String>,
3325}
3326
3327impl GroundedActionRef {
3328 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, verification_scope_ref: String, policy_hash: String) -> GroundedActionRef {
3329 GroundedActionRef {
3330 grounded_action_id,
3331 screenshot_hash,
3332 dom_or_ax_snapshot_hash,
3333 target_ref,
3334 bbox_or_element_id,
3335 action_type,
3336 precondition,
3337 postcondition,
3338 verification_scope_ref,
3339 policy_hash,
3340 sandbox_grant_hash: None,
3341 created_at: None,
3342 grounding_hash: None,
3343 }
3344 }
3345}
3346#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3348pub enum GroundedActionRefActionType {
3349 #[serde(rename = "click")]
3350 Click,
3351 #[serde(rename = "type")]
3352 Type,
3353 #[serde(rename = "select")]
3354 Select,
3355 #[serde(rename = "submit")]
3356 Submit,
3357 #[serde(rename = "navigate")]
3358 Navigate,
3359}
3360
3361impl Default for GroundedActionRefActionType {
3362 fn default() -> GroundedActionRefActionType {
3363 Self::Click
3364 }
3365}
3366
3367#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3379pub struct GuiActionReceipt {
3380 #[serde(rename = "receipt_id")]
3381 pub receipt_id: String,
3382 #[serde(rename = "grounded_action_ref")]
3383 pub grounded_action_ref: String,
3384 #[serde(rename = "screenshot_hash")]
3385 pub screenshot_hash: String,
3386 #[serde(rename = "dom_or_ax_snapshot_hash")]
3387 pub dom_or_ax_snapshot_hash: String,
3388 #[serde(rename = "target_ref")]
3389 pub target_ref: String,
3390 #[serde(rename = "bbox_or_element_id")]
3391 pub bbox_or_element_id: String,
3392 #[serde(rename = "action_type")]
3393 pub action_type: GuiActionReceiptActionType,
3394 #[serde(rename = "precondition")]
3395 pub precondition: String,
3396 #[serde(rename = "postcondition")]
3397 pub postcondition: String,
3398 #[serde(rename = "postcondition_verified")]
3399 pub postcondition_verified: bool,
3400 #[serde(rename = "verification_scope_ref")]
3401 pub verification_scope_ref: String,
3402 #[serde(rename = "policy_hash")]
3403 pub policy_hash: String,
3404 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3405 pub sandbox_grant_hash: Option<String>,
3406 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
3407 pub created_at: Option<String>,
3408 #[serde(rename = "receipt_hash", skip_serializing_if = "Option::is_none")]
3409 pub receipt_hash: Option<String>,
3410}
3411
3412impl GuiActionReceipt {
3413 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_verified: bool, verification_scope_ref: String, policy_hash: String) -> GuiActionReceipt {
3414 GuiActionReceipt {
3415 receipt_id,
3416 grounded_action_ref,
3417 screenshot_hash,
3418 dom_or_ax_snapshot_hash,
3419 target_ref,
3420 bbox_or_element_id,
3421 action_type,
3422 precondition,
3423 postcondition,
3424 postcondition_verified,
3425 verification_scope_ref,
3426 policy_hash,
3427 sandbox_grant_hash: None,
3428 created_at: None,
3429 receipt_hash: None,
3430 }
3431 }
3432}
3433#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3435pub enum GuiActionReceiptActionType {
3436 #[serde(rename = "click")]
3437 Click,
3438 #[serde(rename = "type")]
3439 Type,
3440 #[serde(rename = "select")]
3441 Select,
3442 #[serde(rename = "submit")]
3443 Submit,
3444 #[serde(rename = "navigate")]
3445 Navigate,
3446}
3447
3448impl Default for GuiActionReceiptActionType {
3449 fn default() -> GuiActionReceiptActionType {
3450 Self::Click
3451 }
3452}
3453
3454#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3466pub struct HarnessChangeContract {
3467 #[serde(rename = "change_contract_id")]
3468 pub change_contract_id: String,
3469 #[serde(rename = "component_modified")]
3470 pub component_modified: HarnessChangeContractComponentModified,
3471 #[serde(rename = "failure_mode_targeted")]
3472 pub failure_mode_targeted: String,
3473 #[serde(rename = "predicted_improvement")]
3474 pub predicted_improvement: String,
3475 #[serde(rename = "invariants_preserved")]
3476 pub invariants_preserved: Vec<String>,
3477 #[serde(rename = "safety_properties")]
3478 pub safety_properties: Vec<String>,
3479 #[serde(rename = "regression_suite_refs")]
3480 pub regression_suite_refs: Vec<String>,
3481 #[serde(rename = "simulation_evidence_refs", skip_serializing_if = "Option::is_none")]
3482 pub simulation_evidence_refs: Option<Vec<String>>,
3483 #[serde(rename = "canary_scope", skip_serializing_if = "Option::is_none")]
3484 pub canary_scope: Option<std::collections::HashMap<String, serde_json::Value>>,
3485 #[serde(rename = "rollback_plan")]
3486 pub rollback_plan: std::collections::HashMap<String, serde_json::Value>,
3487 #[serde(rename = "approval_required")]
3488 pub approval_required: bool,
3489 #[serde(rename = "activation_receipt_ref", skip_serializing_if = "Option::is_none")]
3490 pub activation_receipt_ref: Option<String>,
3491 #[serde(rename = "created_at")]
3492 pub created_at: String,
3493 #[serde(rename = "contract_hash", skip_serializing_if = "Option::is_none")]
3494 pub contract_hash: Option<String>,
3495}
3496
3497impl HarnessChangeContract {
3498 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 {
3499 HarnessChangeContract {
3500 change_contract_id,
3501 component_modified,
3502 failure_mode_targeted,
3503 predicted_improvement,
3504 invariants_preserved,
3505 safety_properties,
3506 regression_suite_refs,
3507 simulation_evidence_refs: None,
3508 canary_scope: None,
3509 rollback_plan,
3510 approval_required,
3511 activation_receipt_ref: None,
3512 created_at,
3513 contract_hash: None,
3514 }
3515 }
3516}
3517#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3519pub enum HarnessChangeContractComponentModified {
3520 #[serde(rename = "connector_contract")]
3521 ConnectorContract,
3522 #[serde(rename = "tool_schema")]
3523 ToolSchema,
3524 #[serde(rename = "sandbox_grant")]
3525 SandboxGrant,
3526 #[serde(rename = "mcp_approval")]
3527 McpApproval,
3528 #[serde(rename = "policy_overlay")]
3529 PolicyOverlay,
3530 #[serde(rename = "verifier")]
3531 Verifier,
3532 #[serde(rename = "evidence_template")]
3533 EvidenceTemplate,
3534 #[serde(rename = "routing_rule")]
3535 RoutingRule,
3536}
3537
3538impl Default for HarnessChangeContractComponentModified {
3539 fn default() -> HarnessChangeContractComponentModified {
3540 Self::ConnectorContract
3541 }
3542}
3543
3544#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3556pub struct HarnessTrace {
3557 #[serde(rename = "trace_id")]
3558 pub trace_id: String,
3559 #[serde(rename = "plan_hash")]
3560 pub plan_hash: String,
3561 #[serde(rename = "context_refs", skip_serializing_if = "Option::is_none")]
3562 pub context_refs: Option<Vec<String>>,
3563 #[serde(rename = "memory_reads", skip_serializing_if = "Option::is_none")]
3564 pub memory_reads: Option<Vec<String>>,
3565 #[serde(rename = "memory_writes", skip_serializing_if = "Option::is_none")]
3566 pub memory_writes: Option<Vec<String>>,
3567 #[serde(rename = "tool_schema_hashes", skip_serializing_if = "Option::is_none")]
3568 pub tool_schema_hashes: Option<Vec<String>>,
3569 #[serde(rename = "permission_requests", skip_serializing_if = "Option::is_none")]
3570 pub permission_requests: Option<Vec<String>>,
3571 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3572 pub sandbox_grant_hash: Option<String>,
3573 #[serde(rename = "mcp_approval_ref", skip_serializing_if = "Option::is_none")]
3574 pub mcp_approval_ref: Option<String>,
3575 #[serde(rename = "connector_contract_hash", skip_serializing_if = "Option::is_none")]
3576 pub connector_contract_hash: Option<String>,
3577 #[serde(rename = "policy_hash")]
3578 pub policy_hash: String,
3579 #[serde(rename = "cpi_output_hash", skip_serializing_if = "Option::is_none")]
3580 pub cpi_output_hash: Option<String>,
3581 #[serde(rename = "verifier_outputs", skip_serializing_if = "Option::is_none")]
3582 pub verifier_outputs: Option<Vec<String>>,
3583 #[serde(rename = "human_interventions", skip_serializing_if = "Option::is_none")]
3584 pub human_interventions: Option<Vec<String>>,
3585 #[serde(rename = "state_updates", skip_serializing_if = "Option::is_none")]
3586 pub state_updates: Option<Vec<String>>,
3587 #[serde(rename = "receipt_refs")]
3588 pub receipt_refs: Vec<String>,
3589 #[serde(rename = "created_at")]
3590 pub created_at: String,
3591 #[serde(rename = "trace_hash", skip_serializing_if = "Option::is_none")]
3592 pub trace_hash: Option<String>,
3593}
3594
3595impl HarnessTrace {
3596 pub fn new(trace_id: String, plan_hash: String, policy_hash: String, receipt_refs: Vec<String>, created_at: String) -> HarnessTrace {
3597 HarnessTrace {
3598 trace_id,
3599 plan_hash,
3600 context_refs: None,
3601 memory_reads: None,
3602 memory_writes: None,
3603 tool_schema_hashes: None,
3604 permission_requests: None,
3605 sandbox_grant_hash: None,
3606 mcp_approval_ref: None,
3607 connector_contract_hash: None,
3608 policy_hash,
3609 cpi_output_hash: None,
3610 verifier_outputs: None,
3611 human_interventions: None,
3612 state_updates: None,
3613 receipt_refs,
3614 created_at,
3615 trace_hash: None,
3616 }
3617 }
3618}
3619
3620#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3632pub struct HealthCheck200Response {
3633 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
3634 pub status: Option<String>,
3635 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
3636 pub version: Option<String>,
3637}
3638
3639impl HealthCheck200Response {
3640 pub fn new() -> HealthCheck200Response {
3641 HealthCheck200Response {
3642 status: None,
3643 version: None,
3644 }
3645 }
3646}
3647
3648#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3660pub struct HelmError {
3661 #[serde(rename = "error")]
3662 pub error: Box<HelmErrorError>,
3663}
3664
3665impl HelmError {
3666 pub fn new(error: HelmErrorError) -> HelmError {
3667 HelmError {
3668 error: Box::new(error),
3669 }
3670 }
3671}
3672
3673#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3685pub struct HelmErrorError {
3686 #[serde(rename = "message")]
3688 pub message: String,
3689 #[serde(rename = "type")]
3690 pub r#type: HelmErrorErrorType,
3691 #[serde(rename = "code")]
3693 pub code: String,
3694 #[serde(rename = "reason_code")]
3696 pub reason_code: HelmErrorErrorReasonCode,
3697 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
3699 pub details: Option<std::collections::HashMap<String, serde_json::Value>>,
3700}
3701
3702impl HelmErrorError {
3703 pub fn new(message: String, r#type: HelmErrorErrorType, code: String, reason_code: HelmErrorErrorReasonCode) -> HelmErrorError {
3704 HelmErrorError {
3705 message,
3706 r#type,
3707 code,
3708 reason_code,
3709 details: None,
3710 }
3711 }
3712}
3713#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3715pub enum HelmErrorErrorType {
3716 #[serde(rename = "invalid_request")]
3717 InvalidRequest,
3718 #[serde(rename = "authentication_error")]
3719 AuthenticationError,
3720 #[serde(rename = "permission_denied")]
3721 PermissionDenied,
3722 #[serde(rename = "not_found")]
3723 NotFound,
3724 #[serde(rename = "internal_error")]
3725 InternalError,
3726}
3727
3728impl Default for HelmErrorErrorType {
3729 fn default() -> HelmErrorErrorType {
3730 Self::InvalidRequest
3731 }
3732}
3733#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3735pub enum HelmErrorErrorReasonCode {
3736 #[serde(rename = "DENY_TOOL_NOT_FOUND")]
3737 DenyToolNotFound,
3738 #[serde(rename = "DENY_SCHEMA_MISMATCH")]
3739 DenySchemaMismatch,
3740 #[serde(rename = "DENY_OUTPUT_DRIFT")]
3741 DenyOutputDrift,
3742 #[serde(rename = "DENY_BUDGET_EXCEEDED")]
3743 DenyBudgetExceeded,
3744 #[serde(rename = "DENY_APPROVAL_REQUIRED")]
3745 DenyApprovalRequired,
3746 #[serde(rename = "DENY_APPROVAL_TIMEOUT")]
3747 DenyApprovalTimeout,
3748 #[serde(rename = "DENY_SANDBOX_TRAP")]
3749 DenySandboxTrap,
3750 #[serde(rename = "DENY_GAS_EXHAUSTION")]
3751 DenyGasExhaustion,
3752 #[serde(rename = "DENY_TIME_LIMIT")]
3753 DenyTimeLimit,
3754 #[serde(rename = "DENY_MEMORY_LIMIT")]
3755 DenyMemoryLimit,
3756 #[serde(rename = "DENY_POLICY_VIOLATION")]
3757 DenyPolicyViolation,
3758 #[serde(rename = "DENY_TRUST_KEY_REVOKED")]
3759 DenyTrustKeyRevoked,
3760 #[serde(rename = "DENY_IDEMPOTENCY_DUPLICATE")]
3761 DenyIdempotencyDuplicate,
3762 #[serde(rename = "ERROR_INTERNAL")]
3763 ErrorInternal,
3764}
3765
3766impl Default for HelmErrorErrorReasonCode {
3767 fn default() -> HelmErrorErrorReasonCode {
3768 Self::DenyToolNotFound
3769 }
3770}
3771
3772#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3784pub struct ImportEvidenceLedger {
3785 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
3786 pub status: Option<String>,
3787 #[serde(rename = "receipt_refs", skip_serializing_if = "Option::is_none")]
3788 pub receipt_refs: Option<Vec<String>>,
3789 #[serde(rename = "evidence_pack_refs", skip_serializing_if = "Option::is_none")]
3790 pub evidence_pack_refs: Option<Vec<String>>,
3791 #[serde(rename = "sbom_ref", skip_serializing_if = "Option::is_none")]
3792 pub sbom_ref: Option<String>,
3793 #[serde(rename = "vulnerability_scan_ref", skip_serializing_if = "Option::is_none")]
3794 pub vulnerability_scan_ref: Option<String>,
3795 #[serde(rename = "provenance_ref", skip_serializing_if = "Option::is_none")]
3796 pub provenance_ref: Option<String>,
3797 #[serde(rename = "license_ref", skip_serializing_if = "Option::is_none")]
3798 pub license_ref: Option<String>,
3799 #[serde(rename = "policy_refs", skip_serializing_if = "Option::is_none")]
3800 pub policy_refs: Option<Vec<String>>,
3801 #[serde(rename = "offline_verify_command", skip_serializing_if = "Option::is_none")]
3802 pub offline_verify_command: Option<String>,
3803}
3804
3805impl ImportEvidenceLedger {
3806 pub fn new() -> ImportEvidenceLedger {
3807 ImportEvidenceLedger {
3808 status: None,
3809 receipt_refs: None,
3810 evidence_pack_refs: None,
3811 sbom_ref: None,
3812 vulnerability_scan_ref: None,
3813 provenance_ref: None,
3814 license_ref: None,
3815 policy_refs: None,
3816 offline_verify_command: None,
3817 }
3818 }
3819}
3820
3821#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3833pub struct ImportPreflightResult {
3834 #[serde(rename = "import_id")]
3835 pub import_id: String,
3836 #[serde(rename = "status")]
3837 pub status: String,
3838 #[serde(rename = "checks")]
3839 pub checks: Vec<PreflightCheck>,
3840 #[serde(rename = "blocked_reasons", skip_serializing_if = "Option::is_none")]
3841 pub blocked_reasons: Option<Vec<String>>,
3842 #[serde(rename = "evidence_ledger")]
3843 pub evidence_ledger: Box<ImportEvidenceLedger>,
3844}
3845
3846impl ImportPreflightResult {
3847 pub fn new(import_id: String, status: String, checks: Vec<PreflightCheck>, evidence_ledger: ImportEvidenceLedger) -> ImportPreflightResult {
3848 ImportPreflightResult {
3849 import_id,
3850 status,
3851 checks,
3852 blocked_reasons: None,
3853 evidence_ledger: Box::new(evidence_ledger),
3854 }
3855 }
3856}
3857
3858#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3870pub struct LaunchRecipe {
3871 #[serde(rename = "import_id")]
3872 pub import_id: String,
3873 #[serde(rename = "generated_at", skip_serializing_if = "Option::is_none")]
3874 pub generated_at: Option<String>,
3875 #[serde(rename = "detection_order")]
3876 pub detection_order: Vec<String>,
3877 #[serde(rename = "build_strategy")]
3878 pub build_strategy: Box<BuildStrategy>,
3879 #[serde(rename = "target_plans")]
3880 pub target_plans: Vec<TargetPlan>,
3881 #[serde(rename = "generated_app_specs")]
3882 pub generated_app_specs: Vec<GeneratedAppSpecCandidate>,
3883 #[serde(rename = "promotion_state")]
3884 pub promotion_state: String,
3885 #[serde(rename = "promotion_requirements", skip_serializing_if = "Option::is_none")]
3886 pub promotion_requirements: Option<Vec<String>>,
3887 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
3888 pub cli_equivalent: Option<String>,
3889}
3890
3891impl LaunchRecipe {
3892 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 {
3893 LaunchRecipe {
3894 import_id,
3895 generated_at: None,
3896 detection_order,
3897 build_strategy: Box::new(build_strategy),
3898 target_plans,
3899 generated_app_specs,
3900 promotion_state,
3901 promotion_requirements: None,
3902 cli_equivalent: None,
3903 }
3904 }
3905}
3906
3907#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3919pub struct LaunchpadApp {
3920 #[serde(rename = "id")]
3921 pub id: String,
3922 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
3923 pub app_id: Option<String>,
3924 #[serde(rename = "name")]
3925 pub name: String,
3926 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
3927 pub version: Option<String>,
3928 #[serde(rename = "oci_ref", skip_serializing_if = "Option::is_none")]
3929 pub oci_ref: Option<String>,
3930 #[serde(rename = "immutable_digest", skip_serializing_if = "Option::is_none")]
3931 pub immutable_digest: Option<String>,
3932 #[serde(rename = "oss_supported", skip_serializing_if = "Option::is_none")]
3933 pub oss_supported: Option<bool>,
3934 #[serde(rename = "availability", skip_serializing_if = "Option::is_none")]
3935 pub availability: Option<String>,
3936 #[serde(rename = "redistribution", skip_serializing_if = "Option::is_none")]
3937 pub redistribution: Option<String>,
3938 #[serde(rename = "install_strategy", skip_serializing_if = "Option::is_none")]
3939 pub install_strategy: Option<String>,
3940 #[serde(rename = "risk_class", skip_serializing_if = "Option::is_none")]
3941 pub risk_class: Option<String>,
3942 #[serde(rename = "blocked_reason", skip_serializing_if = "Option::is_none")]
3943 pub blocked_reason: Option<String>,
3944 #[serde(rename = "required_secrets", skip_serializing_if = "Option::is_none")]
3945 pub required_secrets: Option<Vec<String>>,
3946 #[serde(rename = "model_gateway_env", skip_serializing_if = "Option::is_none")]
3947 pub model_gateway_env: Option<Vec<String>>,
3948 #[serde(rename = "declared_capabilities", skip_serializing_if = "Option::is_none")]
3949 pub declared_capabilities: Option<Vec<String>>,
3950 #[serde(rename = "mcp_servers", skip_serializing_if = "Option::is_none")]
3951 pub mcp_servers: Option<Vec<LaunchpadMcpServer>>,
3952 #[serde(rename = "filesystem_needs", skip_serializing_if = "Option::is_none")]
3953 pub filesystem_needs: Option<Vec<String>>,
3954 #[serde(rename = "network_needs", skip_serializing_if = "Option::is_none")]
3955 pub network_needs: Option<Vec<String>>,
3956 #[serde(rename = "healthcheck", skip_serializing_if = "Option::is_none")]
3957 pub healthcheck: Option<std::collections::HashMap<String, serde_json::Value>>,
3958 #[serde(rename = "teardown_recipe", skip_serializing_if = "Option::is_none")]
3959 pub teardown_recipe: Option<std::collections::HashMap<String, serde_json::Value>>,
3960 #[serde(rename = "evidence_profile", skip_serializing_if = "Option::is_none")]
3961 pub evidence_profile: Option<std::collections::HashMap<String, serde_json::Value>>,
3962 #[serde(rename = "policy_ref", skip_serializing_if = "Option::is_none")]
3963 pub policy_ref: Option<String>,
3964 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
3965 pub user_state: Option<String>,
3966 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
3967 pub required_capability: Option<String>,
3968 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
3969 pub upgrade_reason: Option<String>,
3970 #[serde(rename = "entitlement_decision", skip_serializing_if = "Option::is_none")]
3971 pub entitlement_decision: Option<Box<EntitlementDecision>>,
3972 #[serde(rename = "action_states", skip_serializing_if = "Option::is_none")]
3973 pub action_states: Option<std::collections::HashMap<String, EntitlementDecision>>,
3974 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
3975 pub status: Option<Box<LaunchpadAppStatus>>,
3976}
3977
3978impl LaunchpadApp {
3979 pub fn new(id: String, name: String) -> LaunchpadApp {
3980 LaunchpadApp {
3981 id,
3982 app_id: None,
3983 name,
3984 version: None,
3985 oci_ref: None,
3986 immutable_digest: None,
3987 oss_supported: None,
3988 availability: None,
3989 redistribution: None,
3990 install_strategy: None,
3991 risk_class: None,
3992 blocked_reason: None,
3993 required_secrets: None,
3994 model_gateway_env: None,
3995 declared_capabilities: None,
3996 mcp_servers: None,
3997 filesystem_needs: None,
3998 network_needs: None,
3999 healthcheck: None,
4000 teardown_recipe: None,
4001 evidence_profile: None,
4002 policy_ref: None,
4003 user_state: None,
4004 required_capability: None,
4005 upgrade_reason: None,
4006 entitlement_decision: None,
4007 action_states: None,
4008 status: None,
4009 }
4010 }
4011}
4012
4013#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4025pub struct LaunchpadAppStatus {
4026 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
4027 pub state: Option<String>,
4028 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
4029 pub verdict: Option<String>,
4030 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4031 pub reason_code: Option<String>,
4032 #[serde(rename = "human_summary", skip_serializing_if = "Option::is_none")]
4033 pub human_summary: Option<String>,
4034 #[serde(rename = "missing_secrets", skip_serializing_if = "Option::is_none")]
4035 pub missing_secrets: Option<Vec<String>>,
4036 #[serde(rename = "quarantined_mcp", skip_serializing_if = "Option::is_none")]
4037 pub quarantined_mcp: Option<i32>,
4038 #[serde(rename = "last_run_id", skip_serializing_if = "Option::is_none")]
4039 pub last_run_id: Option<String>,
4040 #[serde(rename = "last_evidencepack_ref", skip_serializing_if = "Option::is_none")]
4041 pub last_evidencepack_ref: Option<String>,
4042 #[serde(rename = "proof_status", skip_serializing_if = "Option::is_none")]
4043 pub proof_status: Option<String>,
4044}
4045
4046impl LaunchpadAppStatus {
4047 pub fn new() -> LaunchpadAppStatus {
4048 LaunchpadAppStatus {
4049 state: None,
4050 verdict: None,
4051 reason_code: None,
4052 human_summary: None,
4053 missing_secrets: None,
4054 quarantined_mcp: None,
4055 last_run_id: None,
4056 last_evidencepack_ref: None,
4057 proof_status: None,
4058 }
4059 }
4060}
4061
4062#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4074pub struct LaunchpadFixAction {
4075 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
4076 pub label: Option<String>,
4077 #[serde(rename = "cli", skip_serializing_if = "Option::is_none")]
4078 pub cli: Option<String>,
4079 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
4080 pub description: Option<String>,
4081}
4082
4083impl LaunchpadFixAction {
4084 pub fn new() -> LaunchpadFixAction {
4085 LaunchpadFixAction {
4086 label: None,
4087 cli: None,
4088 description: None,
4089 }
4090 }
4091}
4092
4093#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4105pub struct LaunchpadGateResult {
4106 #[serde(rename = "id")]
4107 pub id: String,
4108 #[serde(rename = "group")]
4109 pub group: String,
4110 #[serde(rename = "label")]
4111 pub label: String,
4112 #[serde(rename = "verdict")]
4113 pub verdict: String,
4114 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4115 pub reason_code: Option<String>,
4116 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4117 pub receipt_ref: Option<String>,
4118 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
4119 pub proofgraph_node: Option<String>,
4120 #[serde(rename = "evidence_refs", skip_serializing_if = "Option::is_none")]
4121 pub evidence_refs: Option<Vec<String>>,
4122 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
4123 pub summary: Option<String>,
4124 #[serde(rename = "why", skip_serializing_if = "Option::is_none")]
4125 pub why: Option<String>,
4126 #[serde(rename = "proof_status")]
4127 pub proof_status: String,
4128 #[serde(rename = "raw_detail_ref", skip_serializing_if = "Option::is_none")]
4129 pub raw_detail_ref: Option<String>,
4130 #[serde(rename = "raw_proof_ref", skip_serializing_if = "Option::is_none")]
4131 pub raw_proof_ref: Option<String>,
4132 #[serde(rename = "receipt_required", skip_serializing_if = "Option::is_none")]
4133 pub receipt_required: Option<bool>,
4134 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4135 pub cli_equivalent: Option<String>,
4136 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
4137 pub fix_actions: Option<Vec<LaunchpadFixAction>>,
4138}
4139
4140impl LaunchpadGateResult {
4141 pub fn new(id: String, group: String, label: String, verdict: String, proof_status: String) -> LaunchpadGateResult {
4142 LaunchpadGateResult {
4143 id,
4144 group,
4145 label,
4146 verdict,
4147 reason_code: None,
4148 receipt_ref: None,
4149 proofgraph_node: None,
4150 evidence_refs: None,
4151 summary: None,
4152 why: None,
4153 proof_status,
4154 raw_detail_ref: None,
4155 raw_proof_ref: None,
4156 receipt_required: None,
4157 cli_equivalent: None,
4158 fix_actions: None,
4159 }
4160 }
4161}
4162
4163#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4175pub struct LaunchpadImportRecord {
4176 #[serde(rename = "id")]
4177 pub id: String,
4178 #[serde(rename = "state")]
4179 pub state: LaunchpadImportRecordState,
4180 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
4181 pub created_at: Option<String>,
4182 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
4183 pub updated_at: Option<String>,
4184 #[serde(rename = "request")]
4185 pub request: Box<LaunchpadImportRequest>,
4186 #[serde(rename = "source_snapshot")]
4187 pub source_snapshot: Box<SourceSnapshot>,
4188 #[serde(rename = "capability_graph")]
4189 pub capability_graph: Box<CapabilityGraph>,
4190 #[serde(rename = "launch_recipe")]
4191 pub launch_recipe: Box<LaunchRecipe>,
4192 #[serde(rename = "preflight", skip_serializing_if = "Option::is_none")]
4193 pub preflight: Option<Box<ImportPreflightResult>>,
4194 #[serde(rename = "evidence_ledger")]
4195 pub evidence_ledger: Box<ImportEvidenceLedger>,
4196}
4197
4198impl LaunchpadImportRecord {
4199 pub fn new(id: String, state: LaunchpadImportRecordState, request: LaunchpadImportRequest, source_snapshot: SourceSnapshot, capability_graph: CapabilityGraph, launch_recipe: LaunchRecipe, evidence_ledger: ImportEvidenceLedger) -> LaunchpadImportRecord {
4200 LaunchpadImportRecord {
4201 id,
4202 state,
4203 created_at: None,
4204 updated_at: None,
4205 request: Box::new(request),
4206 source_snapshot: Box::new(source_snapshot),
4207 capability_graph: Box::new(capability_graph),
4208 launch_recipe: Box::new(launch_recipe),
4209 preflight: None,
4210 evidence_ledger: Box::new(evidence_ledger),
4211 }
4212 }
4213}
4214#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
4216pub enum LaunchpadImportRecordState {
4217 #[serde(rename = "IMPORTED")]
4218 Imported,
4219 #[serde(rename = "PREFLIGHTED")]
4220 Preflighted,
4221 #[serde(rename = "PROMOTABLE")]
4222 Promotable,
4223 #[serde(rename = "BLOCKED")]
4224 Blocked,
4225 #[serde(rename = "LAUNCHED")]
4226 Launched,
4227 #[serde(rename = "TORN_DOWN")]
4228 TornDown,
4229}
4230
4231impl Default for LaunchpadImportRecordState {
4232 fn default() -> LaunchpadImportRecordState {
4233 Self::Imported
4234 }
4235}
4236
4237#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4249pub struct LaunchpadImportRequest {
4250 #[serde(rename = "repo_url")]
4251 pub repo_url: String,
4252 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
4253 pub r#ref: Option<String>,
4254 #[serde(rename = "desired_target", skip_serializing_if = "Option::is_none")]
4255 pub desired_target: Option<String>,
4256}
4257
4258impl LaunchpadImportRequest {
4259 pub fn new(repo_url: String) -> LaunchpadImportRequest {
4260 LaunchpadImportRequest {
4261 repo_url,
4262 r#ref: None,
4263 desired_target: None,
4264 }
4265 }
4266}
4267
4268#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4280pub struct LaunchpadMatrixCell {
4281 #[serde(rename = "app_id")]
4282 pub app_id: String,
4283 #[serde(rename = "substrate_id")]
4284 pub substrate_id: String,
4285 #[serde(rename = "launchable")]
4286 pub launchable: bool,
4287 #[serde(rename = "verdict")]
4288 pub verdict: String,
4289 #[serde(rename = "reason")]
4290 pub reason: String,
4291 #[serde(rename = "availability")]
4292 pub availability: String,
4293 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
4294 pub user_state: Option<String>,
4295 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
4296 pub required_capability: Option<String>,
4297 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
4298 pub upgrade_reason: Option<String>,
4299 #[serde(rename = "entitlement_decision", skip_serializing_if = "Option::is_none")]
4300 pub entitlement_decision: Option<Box<EntitlementDecision>>,
4301 #[serde(rename = "action_states", skip_serializing_if = "Option::is_none")]
4302 pub action_states: Option<std::collections::HashMap<String, EntitlementDecision>>,
4303}
4304
4305impl LaunchpadMatrixCell {
4306 pub fn new(app_id: String, substrate_id: String, launchable: bool, verdict: String, reason: String, availability: String) -> LaunchpadMatrixCell {
4307 LaunchpadMatrixCell {
4308 app_id,
4309 substrate_id,
4310 launchable,
4311 verdict,
4312 reason,
4313 availability,
4314 user_state: None,
4315 required_capability: None,
4316 upgrade_reason: None,
4317 entitlement_decision: None,
4318 action_states: None,
4319 }
4320 }
4321}
4322
4323#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4335pub struct LaunchpadMcpServer {
4336 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
4337 pub id: Option<String>,
4338 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
4339 pub endpoint: Option<String>,
4340 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
4341 pub transport: Option<String>,
4342 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
4343 pub status: Option<String>,
4344 #[serde(rename = "risk_class", skip_serializing_if = "Option::is_none")]
4345 pub risk_class: Option<String>,
4346 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
4347 pub tools: Option<Vec<String>>,
4348 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4349 pub receipt_ref: Option<String>,
4350}
4351
4352impl LaunchpadMcpServer {
4353 pub fn new() -> LaunchpadMcpServer {
4354 LaunchpadMcpServer {
4355 id: None,
4356 endpoint: None,
4357 transport: None,
4358 status: None,
4359 risk_class: None,
4360 tools: None,
4361 receipt_ref: None,
4362 }
4363 }
4364}
4365
4366#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4378pub struct LaunchpadPlanRequest {
4379 #[serde(rename = "app_id")]
4380 pub app_id: String,
4381 #[serde(rename = "substrate_id")]
4382 pub substrate_id: String,
4383 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
4384 pub principal: Option<String>,
4385}
4386
4387impl LaunchpadPlanRequest {
4388 pub fn new(app_id: String, substrate_id: String) -> LaunchpadPlanRequest {
4389 LaunchpadPlanRequest {
4390 app_id,
4391 substrate_id,
4392 principal: None,
4393 }
4394 }
4395}
4396
4397#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4409pub struct LaunchpadPlanResponse {
4410 #[serde(rename = "launch_id", skip_serializing_if = "Option::is_none")]
4411 pub launch_id: Option<String>,
4412 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4413 pub app_id: Option<String>,
4414 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
4415 pub substrate_id: Option<String>,
4416 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
4417 pub state: Option<String>,
4418 #[serde(rename = "kernel_verdict", skip_serializing_if = "Option::is_none")]
4419 pub kernel_verdict: Option<String>,
4420 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
4421 pub reason: Option<String>,
4422 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4423 pub reason_code: Option<String>,
4424 #[serde(rename = "plan_hash", skip_serializing_if = "Option::is_none")]
4425 pub plan_hash: Option<String>,
4426 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
4427 pub user_state: Option<String>,
4428 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
4429 pub required_capability: Option<String>,
4430 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
4431 pub upgrade_reason: Option<String>,
4432 #[serde(rename = "entitlement_decision", skip_serializing_if = "Option::is_none")]
4433 pub entitlement_decision: Option<Box<EntitlementDecision>>,
4434 #[serde(rename = "action_states", skip_serializing_if = "Option::is_none")]
4435 pub action_states: Option<std::collections::HashMap<String, EntitlementDecision>>,
4436}
4437
4438impl LaunchpadPlanResponse {
4439 pub fn new() -> LaunchpadPlanResponse {
4440 LaunchpadPlanResponse {
4441 launch_id: None,
4442 app_id: None,
4443 substrate_id: None,
4444 state: None,
4445 kernel_verdict: None,
4446 reason: None,
4447 reason_code: None,
4448 plan_hash: None,
4449 user_state: None,
4450 required_capability: None,
4451 upgrade_reason: None,
4452 entitlement_decision: None,
4453 action_states: None,
4454 }
4455 }
4456}
4457
4458#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4470pub struct LaunchpadPolicySimulation {
4471 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4472 pub app_id: Option<String>,
4473 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
4474 pub verdict: Option<String>,
4475 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4476 pub reason_code: Option<String>,
4477 #[serde(rename = "plain_english", skip_serializing_if = "Option::is_none")]
4478 pub plain_english: Option<String>,
4479 #[serde(rename = "structured", skip_serializing_if = "Option::is_none")]
4480 pub structured: Option<std::collections::HashMap<String, serde_json::Value>>,
4481 #[serde(rename = "diff", skip_serializing_if = "Option::is_none")]
4482 pub diff: Option<Vec<String>>,
4483 #[serde(rename = "raw", skip_serializing_if = "Option::is_none")]
4484 pub raw: Option<std::collections::HashMap<String, serde_json::Value>>,
4485 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4486 pub receipt_ref: Option<String>,
4487 #[serde(rename = "proof_status", skip_serializing_if = "Option::is_none")]
4488 pub proof_status: Option<String>,
4489 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4490 pub cli_equivalent: Option<String>,
4491 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
4492 pub fix_actions: Option<Vec<LaunchpadFixAction>>,
4493}
4494
4495impl LaunchpadPolicySimulation {
4496 pub fn new() -> LaunchpadPolicySimulation {
4497 LaunchpadPolicySimulation {
4498 app_id: None,
4499 verdict: None,
4500 reason_code: None,
4501 plain_english: None,
4502 structured: None,
4503 diff: None,
4504 raw: None,
4505 receipt_ref: None,
4506 proof_status: None,
4507 cli_equivalent: None,
4508 fix_actions: None,
4509 }
4510 }
4511}
4512
4513#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4525pub struct LaunchpadRun {
4526 #[serde(rename = "launch_id", skip_serializing_if = "Option::is_none")]
4527 pub launch_id: Option<String>,
4528 #[serde(rename = "run_id", skip_serializing_if = "Option::is_none")]
4529 pub run_id: Option<String>,
4530 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4531 pub app_id: Option<String>,
4532 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
4533 pub substrate_id: Option<String>,
4534 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
4535 pub state: Option<String>,
4536 #[serde(rename = "kernel_verdict", skip_serializing_if = "Option::is_none")]
4537 pub kernel_verdict: Option<String>,
4538 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
4539 pub reason: Option<String>,
4540 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4541 pub reason_code: Option<String>,
4542 #[serde(rename = "plan_hash", skip_serializing_if = "Option::is_none")]
4543 pub plan_hash: Option<String>,
4544 #[serde(rename = "launchplan_hash", skip_serializing_if = "Option::is_none")]
4545 pub launchplan_hash: Option<String>,
4546 #[serde(rename = "install_receipt_ref", skip_serializing_if = "Option::is_none")]
4547 pub install_receipt_ref: Option<String>,
4548 #[serde(rename = "launch_receipt_ref", skip_serializing_if = "Option::is_none")]
4549 pub launch_receipt_ref: Option<String>,
4550 #[serde(rename = "health_receipt_ref", skip_serializing_if = "Option::is_none")]
4551 pub health_receipt_ref: Option<String>,
4552 #[serde(rename = "teardown_receipt_ref", skip_serializing_if = "Option::is_none")]
4553 pub teardown_receipt_ref: Option<String>,
4554 #[serde(rename = "evidence_pack_refs", skip_serializing_if = "Option::is_none")]
4555 pub evidence_pack_refs: Option<Vec<String>>,
4556 #[serde(rename = "secret_grant_refs", skip_serializing_if = "Option::is_none")]
4557 pub secret_grant_refs: Option<Vec<String>>,
4558 #[serde(rename = "start_receipt_refs", skip_serializing_if = "Option::is_none")]
4559 pub start_receipt_refs: Option<Vec<String>>,
4560 #[serde(rename = "verification_command", skip_serializing_if = "Option::is_none")]
4561 pub verification_command: Option<String>,
4562 #[serde(rename = "teardown_command", skip_serializing_if = "Option::is_none")]
4563 pub teardown_command: Option<String>,
4564 #[serde(rename = "runtime_handles", skip_serializing_if = "Option::is_none")]
4565 pub runtime_handles: Option<std::collections::HashMap<String, serde_json::Value>>,
4566}
4567
4568impl LaunchpadRun {
4569 pub fn new() -> LaunchpadRun {
4570 LaunchpadRun {
4571 launch_id: None,
4572 run_id: None,
4573 app_id: None,
4574 substrate_id: None,
4575 state: None,
4576 kernel_verdict: None,
4577 reason: None,
4578 reason_code: None,
4579 plan_hash: None,
4580 launchplan_hash: None,
4581 install_receipt_ref: None,
4582 launch_receipt_ref: None,
4583 health_receipt_ref: None,
4584 teardown_receipt_ref: None,
4585 evidence_pack_refs: None,
4586 secret_grant_refs: None,
4587 start_receipt_refs: None,
4588 verification_command: None,
4589 teardown_command: None,
4590 runtime_handles: None,
4591 }
4592 }
4593}
4594
4595#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4607pub struct LaunchpadRunDetail {
4608 #[serde(rename = "run")]
4609 pub run: Box<LaunchpadRun>,
4610 #[serde(rename = "app", skip_serializing_if = "Option::is_none")]
4611 pub app: Option<Box<LaunchpadApp>>,
4612 #[serde(rename = "instance")]
4613 pub instance: Box<LaunchpadRuntimeInstance>,
4614 #[serde(rename = "gates")]
4615 pub gates: Vec<LaunchpadGateResult>,
4616 #[serde(rename = "events")]
4617 pub events: Vec<LaunchpadRunEvent>,
4618 #[serde(rename = "offline_verification", skip_serializing_if = "Option::is_none")]
4619 pub offline_verification: Option<std::collections::HashMap<String, serde_json::Value>>,
4620}
4621
4622impl LaunchpadRunDetail {
4623 pub fn new(run: LaunchpadRun, instance: LaunchpadRuntimeInstance, gates: Vec<LaunchpadGateResult>, events: Vec<LaunchpadRunEvent>) -> LaunchpadRunDetail {
4624 LaunchpadRunDetail {
4625 run: Box::new(run),
4626 app: None,
4627 instance: Box::new(instance),
4628 gates,
4629 events,
4630 offline_verification: None,
4631 }
4632 }
4633}
4634
4635#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4647pub struct LaunchpadRunEvent {
4648 #[serde(rename = "run_id")]
4649 pub run_id: String,
4650 #[serde(rename = "stage")]
4651 pub stage: String,
4652 #[serde(rename = "verdict")]
4653 pub verdict: String,
4654 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4655 pub reason_code: Option<String>,
4656 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4657 pub receipt_ref: Option<String>,
4658 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
4659 pub proofgraph_node: Option<String>,
4660 #[serde(rename = "evidence_refs", skip_serializing_if = "Option::is_none")]
4661 pub evidence_refs: Option<Vec<String>>,
4662 #[serde(rename = "raw_payload_ref", skip_serializing_if = "Option::is_none")]
4663 pub raw_payload_ref: Option<String>,
4664 #[serde(rename = "human_summary", skip_serializing_if = "Option::is_none")]
4665 pub human_summary: Option<String>,
4666 #[serde(rename = "why", skip_serializing_if = "Option::is_none")]
4667 pub why: Option<String>,
4668 #[serde(rename = "proof_status")]
4669 pub proof_status: String,
4670 #[serde(rename = "receipt_required", skip_serializing_if = "Option::is_none")]
4671 pub receipt_required: Option<bool>,
4672 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4673 pub cli_equivalent: Option<String>,
4674 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
4675 pub fix_actions: Option<Vec<LaunchpadFixAction>>,
4676 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
4677 pub created_at: Option<String>,
4678}
4679
4680impl LaunchpadRunEvent {
4681 pub fn new(run_id: String, stage: String, verdict: String, proof_status: String) -> LaunchpadRunEvent {
4682 LaunchpadRunEvent {
4683 run_id,
4684 stage,
4685 verdict,
4686 reason_code: None,
4687 receipt_ref: None,
4688 proofgraph_node: None,
4689 evidence_refs: None,
4690 raw_payload_ref: None,
4691 human_summary: None,
4692 why: None,
4693 proof_status,
4694 receipt_required: None,
4695 cli_equivalent: None,
4696 fix_actions: None,
4697 created_at: None,
4698 }
4699 }
4700}
4701
4702#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4714pub struct LaunchpadRuntimeInstance {
4715 #[serde(rename = "run_id")]
4716 pub run_id: String,
4717 #[serde(rename = "container_id", skip_serializing_if = "Option::is_none")]
4718 pub container_id: Option<String>,
4719 #[serde(rename = "launchplan_hash", skip_serializing_if = "Option::is_none")]
4720 pub launchplan_hash: Option<String>,
4721 #[serde(rename = "state")]
4722 pub state: String,
4723 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
4724 pub verdict: Option<String>,
4725 #[serde(rename = "active_grants", skip_serializing_if = "Option::is_none")]
4726 pub active_grants: Option<Vec<String>>,
4727 #[serde(rename = "receipt_refs", skip_serializing_if = "Option::is_none")]
4728 pub receipt_refs: Option<Vec<String>>,
4729 #[serde(rename = "evidencepack_ref", skip_serializing_if = "Option::is_none")]
4730 pub evidencepack_ref: Option<String>,
4731 #[serde(rename = "offline_verify_command", skip_serializing_if = "Option::is_none")]
4732 pub offline_verify_command: Option<String>,
4733 #[serde(rename = "teardown_command", skip_serializing_if = "Option::is_none")]
4734 pub teardown_command: Option<String>,
4735 #[serde(rename = "sandbox_grant", skip_serializing_if = "Option::is_none")]
4736 pub sandbox_grant: Option<Box<LaunchpadSandboxGrant>>,
4737 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4738 pub cli_equivalent: Option<String>,
4739}
4740
4741impl LaunchpadRuntimeInstance {
4742 pub fn new(run_id: String, state: String) -> LaunchpadRuntimeInstance {
4743 LaunchpadRuntimeInstance {
4744 run_id,
4745 container_id: None,
4746 launchplan_hash: None,
4747 state,
4748 verdict: None,
4749 active_grants: None,
4750 receipt_refs: None,
4751 evidencepack_ref: None,
4752 offline_verify_command: None,
4753 teardown_command: None,
4754 sandbox_grant: None,
4755 cli_equivalent: None,
4756 }
4757 }
4758}
4759
4760#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4772pub struct LaunchpadSandboxGrant {
4773 #[serde(rename = "backend_profile", skip_serializing_if = "Option::is_none")]
4774 pub backend_profile: Option<String>,
4775 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
4776 pub runtime: Option<String>,
4777 #[serde(rename = "runtime_version", skip_serializing_if = "Option::is_none")]
4778 pub runtime_version: Option<String>,
4779 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
4780 pub image_digest: Option<String>,
4781 #[serde(rename = "filesystem_preopens", skip_serializing_if = "Option::is_none")]
4782 pub filesystem_preopens: Option<Vec<String>>,
4783 #[serde(rename = "network_policy", skip_serializing_if = "Option::is_none")]
4784 pub network_policy: Option<Vec<String>>,
4785 #[serde(rename = "env", skip_serializing_if = "Option::is_none")]
4786 pub env: Option<Vec<String>>,
4787 #[serde(rename = "resource_limits", skip_serializing_if = "Option::is_none")]
4788 pub resource_limits: Option<std::collections::HashMap<String, String>>,
4789 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
4790 pub policy_epoch: Option<String>,
4791 #[serde(rename = "grant_hash", skip_serializing_if = "Option::is_none")]
4792 pub grant_hash: Option<String>,
4793 #[serde(rename = "proof_status", skip_serializing_if = "Option::is_none")]
4794 pub proof_status: Option<String>,
4795}
4796
4797impl LaunchpadSandboxGrant {
4798 pub fn new() -> LaunchpadSandboxGrant {
4799 LaunchpadSandboxGrant {
4800 backend_profile: None,
4801 runtime: None,
4802 runtime_version: None,
4803 image_digest: None,
4804 filesystem_preopens: None,
4805 network_policy: None,
4806 env: None,
4807 resource_limits: None,
4808 policy_epoch: None,
4809 grant_hash: None,
4810 proof_status: None,
4811 }
4812 }
4813}
4814
4815#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4827pub struct LaunchpadSecretGrant {
4828 #[serde(rename = "name")]
4829 pub name: String,
4830 #[serde(rename = "required", skip_serializing_if = "Option::is_none")]
4831 pub required: Option<bool>,
4832 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
4833 pub provider: Option<String>,
4834 #[serde(rename = "scope", skip_serializing_if = "Option::is_none")]
4835 pub scope: Option<String>,
4836 #[serde(rename = "status")]
4837 pub status: String,
4838 #[serde(rename = "launch_impact", skip_serializing_if = "Option::is_none")]
4839 pub launch_impact: Option<String>,
4840 #[serde(rename = "grant_ref", skip_serializing_if = "Option::is_none")]
4841 pub grant_ref: Option<String>,
4842 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4843 pub receipt_ref: Option<String>,
4844 #[serde(rename = "value_env", skip_serializing_if = "Option::is_none")]
4845 pub value_env: Option<String>,
4846}
4847
4848impl LaunchpadSecretGrant {
4849 pub fn new(name: String, status: String) -> LaunchpadSecretGrant {
4850 LaunchpadSecretGrant {
4851 name,
4852 required: None,
4853 provider: None,
4854 scope: None,
4855 status,
4856 launch_impact: None,
4857 grant_ref: None,
4858 receipt_ref: None,
4859 value_env: None,
4860 }
4861 }
4862}
4863
4864#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4876pub struct LaunchpadSubstrate {
4877 #[serde(rename = "id")]
4878 pub id: String,
4879 #[serde(rename = "name")]
4880 pub name: String,
4881 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
4882 pub kind: Option<String>,
4883 #[serde(rename = "availability", skip_serializing_if = "Option::is_none")]
4884 pub availability: Option<String>,
4885 #[serde(rename = "default_dry_run", skip_serializing_if = "Option::is_none")]
4886 pub default_dry_run: Option<bool>,
4887 #[serde(rename = "blocked_reason", skip_serializing_if = "Option::is_none")]
4888 pub blocked_reason: Option<String>,
4889}
4890
4891impl LaunchpadSubstrate {
4892 pub fn new(id: String, name: String) -> LaunchpadSubstrate {
4893 LaunchpadSubstrate {
4894 id,
4895 name,
4896 kind: None,
4897 availability: None,
4898 default_dry_run: None,
4899 blocked_reason: None,
4900 }
4901 }
4902}
4903
4904#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4916pub struct ListConsoleSurfaces200Response {
4917 #[serde(rename = "surfaces", skip_serializing_if = "Option::is_none")]
4918 pub surfaces: Option<Vec<ConsoleSurfaceRef>>,
4919}
4920
4921impl ListConsoleSurfaces200Response {
4922 pub fn new() -> ListConsoleSurfaces200Response {
4923 ListConsoleSurfaces200Response {
4924 surfaces: None,
4925 }
4926 }
4927}
4928
4929#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4941pub struct ListLaunchpadApps200Response {
4942 #[serde(rename = "apps")]
4943 pub apps: Vec<LaunchpadApp>,
4944}
4945
4946impl ListLaunchpadApps200Response {
4947 pub fn new(apps: Vec<LaunchpadApp>) -> ListLaunchpadApps200Response {
4948 ListLaunchpadApps200Response {
4949 apps,
4950 }
4951 }
4952}
4953
4954#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4966pub struct ListLaunchpadImports200Response {
4967 #[serde(rename = "imports")]
4968 pub imports: Vec<LaunchpadImportRecord>,
4969 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4970 pub cli_equivalent: Option<String>,
4971}
4972
4973impl ListLaunchpadImports200Response {
4974 pub fn new(imports: Vec<LaunchpadImportRecord>) -> ListLaunchpadImports200Response {
4975 ListLaunchpadImports200Response {
4976 imports,
4977 cli_equivalent: None,
4978 }
4979 }
4980}
4981
4982#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4994pub struct ListLaunchpadRunEvents200Response {
4995 #[serde(rename = "events", skip_serializing_if = "Option::is_none")]
4996 pub events: Option<Vec<LaunchpadRunEvent>>,
4997}
4998
4999impl ListLaunchpadRunEvents200Response {
5000 pub fn new() -> ListLaunchpadRunEvents200Response {
5001 ListLaunchpadRunEvents200Response {
5002 events: None,
5003 }
5004 }
5005}
5006
5007#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5019pub struct ListLaunchpadRuns200Response {
5020 #[serde(rename = "runs", skip_serializing_if = "Option::is_none")]
5021 pub runs: Option<Vec<LaunchpadRun>>,
5022 #[serde(rename = "instances", skip_serializing_if = "Option::is_none")]
5023 pub instances: Option<Vec<LaunchpadRuntimeInstance>>,
5024}
5025
5026impl ListLaunchpadRuns200Response {
5027 pub fn new() -> ListLaunchpadRuns200Response {
5028 ListLaunchpadRuns200Response {
5029 runs: None,
5030 instances: None,
5031 }
5032 }
5033}
5034
5035#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5047pub struct ListLaunchpadSecretGrants200Response {
5048 #[serde(rename = "secrets", skip_serializing_if = "Option::is_none")]
5049 pub secrets: Option<Vec<LaunchpadSecretGrant>>,
5050}
5051
5052impl ListLaunchpadSecretGrants200Response {
5053 pub fn new() -> ListLaunchpadSecretGrants200Response {
5054 ListLaunchpadSecretGrants200Response {
5055 secrets: None,
5056 }
5057 }
5058}
5059
5060#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5072pub struct ListLaunchpadSubstrates200Response {
5073 #[serde(rename = "substrates")]
5074 pub substrates: Vec<LaunchpadSubstrate>,
5075}
5076
5077impl ListLaunchpadSubstrates200Response {
5078 pub fn new(substrates: Vec<LaunchpadSubstrate>) -> ListLaunchpadSubstrates200Response {
5079 ListLaunchpadSubstrates200Response {
5080 substrates,
5081 }
5082 }
5083}
5084
5085#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5097pub struct McpAuthorizationProfile {
5098 #[serde(rename = "profile_id", skip_serializing_if = "Option::is_none")]
5099 pub profile_id: Option<String>,
5100 #[serde(rename = "protocol_version", skip_serializing_if = "Option::is_none")]
5101 pub protocol_version: Option<String>,
5102 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
5103 pub resource: Option<String>,
5104 #[serde(rename = "authorization_servers", skip_serializing_if = "Option::is_none")]
5105 pub authorization_servers: Option<Vec<String>>,
5106 #[serde(rename = "scopes_supported", skip_serializing_if = "Option::is_none")]
5107 pub scopes_supported: Option<Vec<String>>,
5108 #[serde(rename = "tool_scopes", skip_serializing_if = "Option::is_none")]
5109 pub tool_scopes: Option<std::collections::HashMap<String, serde_json::Value>>,
5110 #[serde(rename = "required_audience", skip_serializing_if = "Option::is_none")]
5111 pub required_audience: Option<String>,
5112 #[serde(rename = "stale_after", skip_serializing_if = "Option::is_none")]
5113 pub stale_after: Option<String>,
5114 #[serde(rename = "profile_hash", skip_serializing_if = "Option::is_none")]
5115 pub profile_hash: Option<String>,
5116}
5117
5118impl McpAuthorizationProfile {
5119 pub fn new() -> McpAuthorizationProfile {
5120 McpAuthorizationProfile {
5121 profile_id: None,
5122 protocol_version: None,
5123 resource: None,
5124 authorization_servers: None,
5125 scopes_supported: None,
5126 tool_scopes: None,
5127 required_audience: None,
5128 stale_after: None,
5129 profile_hash: None,
5130 }
5131 }
5132}
5133
5134#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5146pub struct McpAuthorizeCallRequest {
5147 #[serde(rename = "server_id")]
5148 pub server_id: String,
5149 #[serde(rename = "tool_name")]
5150 pub tool_name: String,
5151 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
5152 pub args_hash: Option<String>,
5153 #[serde(rename = "granted_scopes", skip_serializing_if = "Option::is_none")]
5154 pub granted_scopes: Option<Vec<String>>,
5155 #[serde(rename = "pinned_schema_hash", skip_serializing_if = "Option::is_none")]
5156 pub pinned_schema_hash: Option<String>,
5157 #[serde(rename = "tool_schema", skip_serializing_if = "Option::is_none")]
5158 pub tool_schema: Option<std::collections::HashMap<String, serde_json::Value>>,
5159 #[serde(rename = "output_schema", skip_serializing_if = "Option::is_none")]
5160 pub output_schema: Option<std::collections::HashMap<String, serde_json::Value>>,
5161 #[serde(rename = "oauth_resource", skip_serializing_if = "Option::is_none")]
5162 pub oauth_resource: Option<String>,
5163 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
5164 pub receipt_id: Option<String>,
5165}
5166
5167impl McpAuthorizeCallRequest {
5168 pub fn new(server_id: String, tool_name: String) -> McpAuthorizeCallRequest {
5169 McpAuthorizeCallRequest {
5170 server_id,
5171 tool_name,
5172 args_hash: None,
5173 granted_scopes: None,
5174 pinned_schema_hash: None,
5175 tool_schema: None,
5176 output_schema: None,
5177 oauth_resource: None,
5178 receipt_id: None,
5179 }
5180 }
5181}
5182
5183#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5195pub struct McpCapabilityManifest {
5196 #[serde(rename = "server_name", skip_serializing_if = "Option::is_none")]
5197 pub server_name: Option<String>,
5198 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
5199 pub version: Option<String>,
5200 #[serde(rename = "governance", skip_serializing_if = "Option::is_none")]
5201 pub governance: Option<String>,
5202 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
5203 pub tools: Option<Vec<McpToolRef>>,
5204}
5205
5206impl McpCapabilityManifest {
5207 pub fn new() -> McpCapabilityManifest {
5208 McpCapabilityManifest {
5209 server_name: None,
5210 version: None,
5211 governance: None,
5212 tools: None,
5213 }
5214 }
5215}
5216
5217#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5229pub struct McpProtectedResourceMetadata {
5230 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
5231 pub resource: Option<String>,
5232 #[serde(rename = "authorization_servers", skip_serializing_if = "Option::is_none")]
5233 pub authorization_servers: Option<Vec<String>>,
5234 #[serde(rename = "scopes_supported", skip_serializing_if = "Option::is_none")]
5235 pub scopes_supported: Option<Vec<String>>,
5236 #[serde(rename = "bearer_methods_supported", skip_serializing_if = "Option::is_none")]
5237 pub bearer_methods_supported: Option<Vec<String>>,
5238 #[serde(rename = "resource_documentation", skip_serializing_if = "Option::is_none")]
5239 pub resource_documentation: Option<String>,
5240}
5241
5242impl McpProtectedResourceMetadata {
5243 pub fn new() -> McpProtectedResourceMetadata {
5244 McpProtectedResourceMetadata {
5245 resource: None,
5246 authorization_servers: None,
5247 scopes_supported: None,
5248 bearer_methods_supported: None,
5249 resource_documentation: None,
5250 }
5251 }
5252}
5253
5254#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5266pub struct McpQuarantineRecord {
5267 #[serde(rename = "server_id")]
5268 pub server_id: String,
5269 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5270 pub name: Option<String>,
5271 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
5272 pub transport: Option<String>,
5273 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
5274 pub endpoint: Option<String>,
5275 #[serde(rename = "tool_names", skip_serializing_if = "Option::is_none")]
5276 pub tool_names: Option<Vec<String>>,
5277 #[serde(rename = "risk")]
5278 pub risk: McpQuarantineRecordRisk,
5279 #[serde(rename = "state")]
5280 pub state: McpQuarantineRecordState,
5281 #[serde(rename = "discovered_at")]
5282 pub discovered_at: String,
5283 #[serde(rename = "approved_at", skip_serializing_if = "Option::is_none")]
5284 pub approved_at: Option<String>,
5285 #[serde(rename = "approved_by", skip_serializing_if = "Option::is_none")]
5286 pub approved_by: Option<String>,
5287 #[serde(rename = "approval_receipt_id", skip_serializing_if = "Option::is_none")]
5288 pub approval_receipt_id: Option<String>,
5289 #[serde(rename = "revoked_at", skip_serializing_if = "Option::is_none")]
5290 pub revoked_at: Option<String>,
5291 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
5292 pub expires_at: Option<String>,
5293 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
5294 pub reason: Option<String>,
5295}
5296
5297impl McpQuarantineRecord {
5298 pub fn new(server_id: String, risk: McpQuarantineRecordRisk, state: McpQuarantineRecordState, discovered_at: String) -> McpQuarantineRecord {
5299 McpQuarantineRecord {
5300 server_id,
5301 name: None,
5302 transport: None,
5303 endpoint: None,
5304 tool_names: None,
5305 risk,
5306 state,
5307 discovered_at,
5308 approved_at: None,
5309 approved_by: None,
5310 approval_receipt_id: None,
5311 revoked_at: None,
5312 expires_at: None,
5313 reason: None,
5314 }
5315 }
5316}
5317#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5319pub enum McpQuarantineRecordRisk {
5320 #[serde(rename = "unknown")]
5321 Unknown,
5322 #[serde(rename = "low")]
5323 Low,
5324 #[serde(rename = "medium")]
5325 Medium,
5326 #[serde(rename = "high")]
5327 High,
5328 #[serde(rename = "critical")]
5329 Critical,
5330}
5331
5332impl Default for McpQuarantineRecordRisk {
5333 fn default() -> McpQuarantineRecordRisk {
5334 Self::Unknown
5335 }
5336}
5337#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5339pub enum McpQuarantineRecordState {
5340 #[serde(rename = "discovered")]
5341 Discovered,
5342 #[serde(rename = "quarantined")]
5343 Quarantined,
5344 #[serde(rename = "approved")]
5345 Approved,
5346 #[serde(rename = "revoked")]
5347 Revoked,
5348 #[serde(rename = "expired")]
5349 Expired,
5350}
5351
5352impl Default for McpQuarantineRecordState {
5353 fn default() -> McpQuarantineRecordState {
5354 Self::Discovered
5355 }
5356}
5357
5358#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5370pub struct McpRegistryApprovalRequest {
5371 #[serde(rename = "server_id")]
5372 pub server_id: String,
5373 #[serde(rename = "approver_id")]
5374 pub approver_id: String,
5375 #[serde(rename = "approval_receipt_id")]
5376 pub approval_receipt_id: String,
5377 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
5378 pub reason: Option<String>,
5379}
5380
5381impl McpRegistryApprovalRequest {
5382 pub fn new(server_id: String, approver_id: String, approval_receipt_id: String) -> McpRegistryApprovalRequest {
5383 McpRegistryApprovalRequest {
5384 server_id,
5385 approver_id,
5386 approval_receipt_id,
5387 reason: None,
5388 }
5389 }
5390}
5391
5392#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5404pub struct McpRegistryDiscoverRequest {
5405 #[serde(rename = "server_id")]
5406 pub server_id: String,
5407 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5408 pub name: Option<String>,
5409 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
5410 pub transport: Option<String>,
5411 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
5412 pub endpoint: Option<String>,
5413 #[serde(rename = "tool_names", skip_serializing_if = "Option::is_none")]
5414 pub tool_names: Option<Vec<String>>,
5415 #[serde(rename = "risk", skip_serializing_if = "Option::is_none")]
5416 pub risk: Option<McpRegistryDiscoverRequestRisk>,
5417 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
5418 pub reason: Option<String>,
5419}
5420
5421impl McpRegistryDiscoverRequest {
5422 pub fn new(server_id: String) -> McpRegistryDiscoverRequest {
5423 McpRegistryDiscoverRequest {
5424 server_id,
5425 name: None,
5426 transport: None,
5427 endpoint: None,
5428 tool_names: None,
5429 risk: None,
5430 reason: None,
5431 }
5432 }
5433}
5434#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5436pub enum McpRegistryDiscoverRequestRisk {
5437 #[serde(rename = "unknown")]
5438 Unknown,
5439 #[serde(rename = "low")]
5440 Low,
5441 #[serde(rename = "medium")]
5442 Medium,
5443 #[serde(rename = "high")]
5444 High,
5445 #[serde(rename = "critical")]
5446 Critical,
5447}
5448
5449impl Default for McpRegistryDiscoverRequestRisk {
5450 fn default() -> McpRegistryDiscoverRequestRisk {
5451 Self::Unknown
5452 }
5453}
5454
5455#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5467pub struct McpRemoteDiscovery {
5468 #[serde(rename = "server_name", skip_serializing_if = "Option::is_none")]
5469 pub server_name: Option<String>,
5470 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
5471 pub version: Option<String>,
5472 #[serde(rename = "capabilities_url", skip_serializing_if = "Option::is_none")]
5473 pub capabilities_url: Option<String>,
5474 #[serde(rename = "execute_url", skip_serializing_if = "Option::is_none")]
5475 pub execute_url: Option<String>,
5476 #[serde(rename = "mcp_endpoint", skip_serializing_if = "Option::is_none")]
5477 pub mcp_endpoint: Option<String>,
5478 #[serde(rename = "supported_protocol_versions", skip_serializing_if = "Option::is_none")]
5479 pub supported_protocol_versions: Option<Vec<String>>,
5480 #[serde(rename = "auth_mode", skip_serializing_if = "Option::is_none")]
5481 pub auth_mode: Option<String>,
5482 #[serde(rename = "governance", skip_serializing_if = "Option::is_none")]
5483 pub governance: Option<String>,
5484}
5485
5486impl McpRemoteDiscovery {
5487 pub fn new() -> McpRemoteDiscovery {
5488 McpRemoteDiscovery {
5489 server_name: None,
5490 version: None,
5491 capabilities_url: None,
5492 execute_url: None,
5493 mcp_endpoint: None,
5494 supported_protocol_versions: None,
5495 auth_mode: None,
5496 governance: None,
5497 }
5498 }
5499}
5500
5501#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5513pub struct McpScanRequest {
5514 #[serde(rename = "server_id")]
5515 pub server_id: String,
5516 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5517 pub name: Option<String>,
5518 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
5519 pub transport: Option<String>,
5520 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
5521 pub endpoint: Option<String>,
5522 #[serde(rename = "tool_names", skip_serializing_if = "Option::is_none")]
5523 pub tool_names: Option<Vec<String>>,
5524 #[serde(rename = "manifest", skip_serializing_if = "Option::is_none")]
5525 pub manifest: Option<std::collections::HashMap<String, serde_json::Value>>,
5526}
5527
5528impl McpScanRequest {
5529 pub fn new(server_id: String) -> McpScanRequest {
5530 McpScanRequest {
5531 server_id,
5532 name: None,
5533 transport: None,
5534 endpoint: None,
5535 tool_names: None,
5536 manifest: None,
5537 }
5538 }
5539}
5540
5541#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5553pub struct McpScanResult {
5554 #[serde(rename = "server_id", skip_serializing_if = "Option::is_none")]
5555 pub server_id: Option<String>,
5556 #[serde(rename = "risk", skip_serializing_if = "Option::is_none")]
5557 pub risk: Option<String>,
5558 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
5559 pub state: Option<String>,
5560 #[serde(rename = "tool_count", skip_serializing_if = "Option::is_none")]
5561 pub tool_count: Option<i32>,
5562 #[serde(rename = "findings", skip_serializing_if = "Option::is_none")]
5563 pub findings: Option<Vec<String>>,
5564 #[serde(rename = "recommended_action", skip_serializing_if = "Option::is_none")]
5565 pub recommended_action: Option<String>,
5566 #[serde(rename = "quarantine_record_id", skip_serializing_if = "Option::is_none")]
5567 pub quarantine_record_id: Option<String>,
5568 #[serde(rename = "requires_approval", skip_serializing_if = "Option::is_none")]
5569 pub requires_approval: Option<bool>,
5570 #[serde(rename = "schema_pin_required", skip_serializing_if = "Option::is_none")]
5571 pub schema_pin_required: Option<bool>,
5572 #[serde(rename = "authorization_needed", skip_serializing_if = "Option::is_none")]
5573 pub authorization_needed: Option<bool>,
5574 #[serde(rename = "scanned_at", skip_serializing_if = "Option::is_none")]
5575 pub scanned_at: Option<String>,
5576}
5577
5578impl McpScanResult {
5579 pub fn new() -> McpScanResult {
5580 McpScanResult {
5581 server_id: None,
5582 risk: None,
5583 state: None,
5584 tool_count: None,
5585 findings: None,
5586 recommended_action: None,
5587 quarantine_record_id: None,
5588 requires_approval: None,
5589 schema_pin_required: None,
5590 authorization_needed: None,
5591 scanned_at: None,
5592 }
5593 }
5594}
5595
5596#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5608pub struct McpToolCallRequest {
5609 #[serde(rename = "method")]
5610 pub method: String,
5611 #[serde(rename = "params", skip_serializing_if = "Option::is_none")]
5612 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
5613}
5614
5615impl McpToolCallRequest {
5616 pub fn new(method: String) -> McpToolCallRequest {
5617 McpToolCallRequest {
5618 method,
5619 params: None,
5620 }
5621 }
5622}
5623
5624#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5636pub struct McpToolCallResponse {
5637 #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
5638 pub result: Option<Box<McpToolCallResponseResult>>,
5639 #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
5640 pub error: Option<String>,
5641 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
5642 pub reason_code: Option<String>,
5643 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
5644 pub args_hash: Option<String>,
5645 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
5646 pub proofgraph_node: Option<String>,
5647 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
5648 pub receipt_id: Option<String>,
5649}
5650
5651impl McpToolCallResponse {
5652 pub fn new() -> McpToolCallResponse {
5653 McpToolCallResponse {
5654 result: None,
5655 error: None,
5656 reason_code: None,
5657 args_hash: None,
5658 proofgraph_node: None,
5659 receipt_id: None,
5660 }
5661 }
5662}
5663
5664#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
5678#[serde(untagged)]
5679pub enum McpToolCallResponseResult {
5680 String(String),
5681 Object(std::collections::HashMap<String, serde_json::Value>),
5682}
5683
5684impl Default for McpToolCallResponseResult {
5685 fn default() -> Self {
5686 Self::String(Default::default())
5687 }
5688}
5689
5690#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5702pub struct McpToolRef {
5703 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5704 pub name: Option<String>,
5705 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
5706 pub description: Option<String>,
5707 #[serde(rename = "server_id", skip_serializing_if = "Option::is_none")]
5708 pub server_id: Option<String>,
5709 #[serde(rename = "schema", skip_serializing_if = "Option::is_none")]
5710 pub schema: Option<std::collections::HashMap<String, serde_json::Value>>,
5711}
5712
5713impl McpToolRef {
5714 pub fn new() -> McpToolRef {
5715 McpToolRef {
5716 name: None,
5717 description: None,
5718 server_id: None,
5719 schema: None,
5720 }
5721 }
5722}
5723
5724#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5736pub struct McpjsonrpcError {
5737 #[serde(rename = "code", skip_serializing_if = "Option::is_none")]
5738 pub code: Option<i32>,
5739 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
5740 pub message: Option<String>,
5741}
5742
5743impl McpjsonrpcError {
5744 pub fn new() -> McpjsonrpcError {
5745 McpjsonrpcError {
5746 code: None,
5747 message: None,
5748 }
5749 }
5750}
5751
5752#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5764pub struct McpjsonrpcRequest {
5765 #[serde(rename = "jsonrpc")]
5766 pub jsonrpc: McpjsonrpcRequestJsonrpc,
5767 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
5768 pub id: Option<Box<McpjsonrpcRequestId>>,
5769 #[serde(rename = "method")]
5770 pub method: String,
5771 #[serde(rename = "params", skip_serializing_if = "Option::is_none")]
5772 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
5773}
5774
5775impl McpjsonrpcRequest {
5776 pub fn new(jsonrpc: McpjsonrpcRequestJsonrpc, method: String) -> McpjsonrpcRequest {
5777 McpjsonrpcRequest {
5778 jsonrpc,
5779 id: None,
5780 method,
5781 params: None,
5782 }
5783 }
5784}
5785#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5787pub enum McpjsonrpcRequestJsonrpc {
5788 #[serde(rename = "2.0")]
5789 Variant2Period0,
5790}
5791
5792impl Default for McpjsonrpcRequestJsonrpc {
5793 fn default() -> McpjsonrpcRequestJsonrpc {
5794 Self::Variant2Period0
5795 }
5796}
5797
5798#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
5812#[serde(untagged)]
5813pub enum McpjsonrpcRequestId {
5814 String(String),
5815 Integer(i32),
5816}
5817
5818impl Default for McpjsonrpcRequestId {
5819 fn default() -> Self {
5820 Self::String(Default::default())
5821 }
5822}
5823
5824#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5836pub struct McpjsonrpcResponse {
5837 #[serde(rename = "jsonrpc", skip_serializing_if = "Option::is_none")]
5838 pub jsonrpc: Option<McpjsonrpcResponseJsonrpc>,
5839 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
5840 pub id: Option<Box<McpjsonrpcResponseId>>,
5841 #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
5842 pub result: Option<std::collections::HashMap<String, serde_json::Value>>,
5843 #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
5844 pub error: Option<Box<McpjsonrpcError>>,
5845}
5846
5847impl McpjsonrpcResponse {
5848 pub fn new() -> McpjsonrpcResponse {
5849 McpjsonrpcResponse {
5850 jsonrpc: None,
5851 id: None,
5852 result: None,
5853 error: None,
5854 }
5855 }
5856}
5857#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5859pub enum McpjsonrpcResponseJsonrpc {
5860 #[serde(rename = "2.0")]
5861 Variant2Period0,
5862}
5863
5864impl Default for McpjsonrpcResponseJsonrpc {
5865 fn default() -> McpjsonrpcResponseJsonrpc {
5866 Self::Variant2Period0
5867 }
5868}
5869
5870#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
5882#[serde(untagged)]
5883pub enum McpjsonrpcResponseId {
5884 String(String),
5885 Integer(i32),
5886}
5887
5888impl Default for McpjsonrpcResponseId {
5889 fn default() -> Self {
5890 Self::String(Default::default())
5891 }
5892}
5893
5894#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5906pub struct NegativeBoundaryVector {
5907 #[serde(rename = "id")]
5908 pub id: String,
5909 #[serde(rename = "category")]
5910 pub category: String,
5911 #[serde(rename = "trigger")]
5912 pub trigger: String,
5913 #[serde(rename = "expected_verdict")]
5914 pub expected_verdict: NegativeBoundaryVectorExpectedVerdict,
5915 #[serde(rename = "expected_reason_code")]
5916 pub expected_reason_code: String,
5917 #[serde(rename = "must_emit_receipt")]
5918 pub must_emit_receipt: bool,
5919 #[serde(rename = "must_not_dispatch")]
5920 pub must_not_dispatch: bool,
5921 #[serde(rename = "must_bind_evidence", skip_serializing_if = "Option::is_none")]
5922 pub must_bind_evidence: Option<Vec<String>>,
5923}
5924
5925impl NegativeBoundaryVector {
5926 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 {
5927 NegativeBoundaryVector {
5928 id,
5929 category,
5930 trigger,
5931 expected_verdict,
5932 expected_reason_code,
5933 must_emit_receipt,
5934 must_not_dispatch,
5935 must_bind_evidence: None,
5936 }
5937 }
5938}
5939#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5941pub enum NegativeBoundaryVectorExpectedVerdict {
5942 #[serde(rename = "ALLOW")]
5943 Allow,
5944 #[serde(rename = "DENY")]
5945 Deny,
5946 #[serde(rename = "ESCALATE")]
5947 Escalate,
5948}
5949
5950impl Default for NegativeBoundaryVectorExpectedVerdict {
5951 fn default() -> NegativeBoundaryVectorExpectedVerdict {
5952 Self::Allow
5953 }
5954}
5955
5956#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5968pub struct NetworkGrant {
5969 #[serde(rename = "mode")]
5970 pub mode: NetworkGrantMode,
5971 #[serde(rename = "destinations", skip_serializing_if = "Option::is_none")]
5972 pub destinations: Option<Vec<String>>,
5973 #[serde(rename = "cidrs", skip_serializing_if = "Option::is_none")]
5974 pub cidrs: Option<Vec<String>>,
5975}
5976
5977impl NetworkGrant {
5978 pub fn new(mode: NetworkGrantMode) -> NetworkGrant {
5979 NetworkGrant {
5980 mode,
5981 destinations: None,
5982 cidrs: None,
5983 }
5984 }
5985}
5986#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5988pub enum NetworkGrantMode {
5989 #[serde(rename = "deny-all")]
5990 DenyAll,
5991 #[serde(rename = "allowlist")]
5992 Allowlist,
5993}
5994
5995impl Default for NetworkGrantMode {
5996 fn default() -> NetworkGrantMode {
5997 Self::DenyAll
5998 }
5999}
6000
6001#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6013pub struct OAuthRequirement {
6014 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
6015 pub provider: Option<String>,
6016 #[serde(rename = "scopes", skip_serializing_if = "Option::is_none")]
6017 pub scopes: Option<Vec<String>>,
6018 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
6019 pub source: Option<String>,
6020}
6021
6022impl OAuthRequirement {
6023 pub fn new() -> OAuthRequirement {
6024 OAuthRequirement {
6025 provider: None,
6026 scopes: None,
6027 source: None,
6028 }
6029 }
6030}
6031
6032#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6045pub struct PdpRequest {
6046 #[serde(rename = "boundary")]
6047 pub boundary: Box<EffectBoundary>,
6048}
6049
6050impl PdpRequest {
6051 pub fn new(boundary: EffectBoundary) -> PdpRequest {
6053 PdpRequest {
6054 boundary: Box::new(boundary),
6055 }
6056 }
6057}
6058
6059#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6072pub struct PdpResponse {
6073 #[serde(rename = "decision")]
6074 pub decision: Box<GovernanceDecision>,
6075}
6076
6077impl PdpResponse {
6078 pub fn new(decision: GovernanceDecision) -> PdpResponse {
6080 PdpResponse {
6081 decision: Box::new(decision),
6082 }
6083 }
6084}
6085
6086#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6098pub struct PlanTransaction {
6099 #[serde(rename = "plan_transaction_id")]
6100 pub plan_transaction_id: String,
6101 #[serde(rename = "plan_hash")]
6102 pub plan_hash: String,
6103 #[serde(rename = "read_set")]
6104 pub read_set: Vec<String>,
6105 #[serde(rename = "write_set")]
6106 pub write_set: Vec<String>,
6107 #[serde(rename = "assumption_set")]
6108 pub assumption_set: Vec<String>,
6109 #[serde(rename = "version_dependencies", skip_serializing_if = "Option::is_none")]
6110 pub version_dependencies: Option<Vec<String>>,
6111 #[serde(rename = "verification_obligations")]
6112 pub verification_obligations: Vec<String>,
6113 #[serde(rename = "conflict_policy")]
6114 pub conflict_policy: PlanTransactionConflictPolicy,
6115 #[serde(rename = "rollback_policy", skip_serializing_if = "Option::is_none")]
6116 pub rollback_policy: Option<std::collections::HashMap<String, serde_json::Value>>,
6117 #[serde(rename = "rollback_or_compensation_policy", skip_serializing_if = "Option::is_none")]
6118 pub rollback_or_compensation_policy: Option<String>,
6119 #[serde(rename = "approval_state", skip_serializing_if = "Option::is_none")]
6120 pub approval_state: Option<PlanTransactionApprovalState>,
6121 #[serde(rename = "human_review_state", skip_serializing_if = "Option::is_none")]
6122 pub human_review_state: Option<String>,
6123 #[serde(rename = "transaction_hash", skip_serializing_if = "Option::is_none")]
6124 pub transaction_hash: Option<String>,
6125}
6126
6127impl PlanTransaction {
6128 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 {
6129 PlanTransaction {
6130 plan_transaction_id,
6131 plan_hash,
6132 read_set,
6133 write_set,
6134 assumption_set,
6135 version_dependencies: None,
6136 verification_obligations,
6137 conflict_policy,
6138 rollback_policy: None,
6139 rollback_or_compensation_policy: None,
6140 approval_state: None,
6141 human_review_state: None,
6142 transaction_hash: None,
6143 }
6144 }
6145}
6146#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6148pub enum PlanTransactionConflictPolicy {
6149 #[serde(rename = "deny")]
6150 Deny,
6151 #[serde(rename = "escalate")]
6152 Escalate,
6153 #[serde(rename = "last_writer_forbidden")]
6154 LastWriterForbidden,
6155}
6156
6157impl Default for PlanTransactionConflictPolicy {
6158 fn default() -> PlanTransactionConflictPolicy {
6159 Self::Deny
6160 }
6161}
6162#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6164pub enum PlanTransactionApprovalState {
6165 #[serde(rename = "none")]
6166 None,
6167 #[serde(rename = "required")]
6168 Required,
6169 #[serde(rename = "approved")]
6170 Approved,
6171 #[serde(rename = "denied")]
6172 Denied,
6173 #[serde(rename = "expired")]
6174 Expired,
6175}
6176
6177impl Default for PlanTransactionApprovalState {
6178 fn default() -> PlanTransactionApprovalState {
6179 Self::None
6180 }
6181}
6182
6183#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6196pub struct PolicyBundle {
6197 #[serde(rename = "name")]
6198 pub name: String,
6199 #[serde(rename = "version")]
6200 pub version: String,
6201 #[serde(rename = "content_hash")]
6203 pub content_hash: String,
6204 #[serde(rename = "signature", default, skip_serializing_if = "Option::is_none")]
6206 pub signature: Option<Option<String>>,
6207 #[serde(rename = "pack_type", skip_serializing_if = "Option::is_none")]
6208 pub pack_type: Option<PolicyBundlePackType>,
6209}
6210
6211impl PolicyBundle {
6212 pub fn new(name: String, version: String, content_hash: String) -> PolicyBundle {
6214 PolicyBundle {
6215 name,
6216 version,
6217 content_hash,
6218 signature: None,
6219 pack_type: None,
6220 }
6221 }
6222}
6223#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6225pub enum PolicyBundlePackType {
6226 #[serde(rename = "jurisdiction")]
6227 Jurisdiction,
6228 #[serde(rename = "industry")]
6229 Industry,
6230 #[serde(rename = "business")]
6231 Business,
6232 #[serde(rename = "custom")]
6233 Custom,
6234}
6235
6236impl Default for PolicyBundlePackType {
6237 fn default() -> PolicyBundlePackType {
6238 Self::Jurisdiction
6239 }
6240}
6241
6242#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6254pub struct PreflightCheck {
6255 #[serde(rename = "id")]
6256 pub id: String,
6257 #[serde(rename = "status")]
6258 pub status: String,
6259 #[serde(rename = "summary")]
6260 pub summary: String,
6261 #[serde(rename = "evidence_ref", skip_serializing_if = "Option::is_none")]
6262 pub evidence_ref: Option<String>,
6263 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
6264 pub fix_actions: Option<Vec<String>>,
6265}
6266
6267impl PreflightCheck {
6268 pub fn new(id: String, status: String, summary: String) -> PreflightCheck {
6269 PreflightCheck {
6270 id,
6271 status,
6272 summary,
6273 evidence_ref: None,
6274 fix_actions: None,
6275 }
6276 }
6277}
6278
6279#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6291pub struct PreflightLaunchpadImport202Response {
6292 #[serde(rename = "import")]
6293 pub import: Box<LaunchpadImportRecord>,
6294 #[serde(rename = "preflight")]
6295 pub preflight: Box<ImportPreflightResult>,
6296 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
6297 pub cli_equivalent: Option<String>,
6298}
6299
6300impl PreflightLaunchpadImport202Response {
6301 pub fn new(import: LaunchpadImportRecord, preflight: ImportPreflightResult) -> PreflightLaunchpadImport202Response {
6302 PreflightLaunchpadImport202Response {
6303 import: Box::new(import),
6304 preflight: Box::new(preflight),
6305 cli_equivalent: None,
6306 }
6307 }
6308}
6309
6310#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6322pub struct Receipt {
6323 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
6324 pub receipt_id: Option<String>,
6325 #[serde(rename = "decision_id", skip_serializing_if = "Option::is_none")]
6326 pub decision_id: Option<String>,
6327 #[serde(rename = "effect_id", skip_serializing_if = "Option::is_none")]
6328 pub effect_id: Option<String>,
6329 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
6330 pub status: Option<String>,
6331 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
6332 pub reason_code: Option<String>,
6333 #[serde(rename = "output_hash", skip_serializing_if = "Option::is_none")]
6334 pub output_hash: Option<String>,
6335 #[serde(rename = "blob_hash", skip_serializing_if = "Option::is_none")]
6336 pub blob_hash: Option<String>,
6337 #[serde(rename = "prev_hash", skip_serializing_if = "Option::is_none")]
6338 pub prev_hash: Option<String>,
6339 #[serde(rename = "lamport_clock", skip_serializing_if = "Option::is_none")]
6340 pub lamport_clock: Option<i32>,
6341 #[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
6342 pub signature: Option<String>,
6343 #[serde(rename = "timestamp", skip_serializing_if = "Option::is_none")]
6344 pub timestamp: Option<String>,
6345 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
6346 pub principal: Option<String>,
6347 #[serde(rename = "executor_id", skip_serializing_if = "Option::is_none")]
6348 pub executor_id: Option<String>,
6349 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
6350 pub args_hash: Option<String>,
6351 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
6352 pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
6353}
6354
6355impl Receipt {
6356 pub fn new() -> Receipt {
6357 Receipt {
6358 receipt_id: None,
6359 decision_id: None,
6360 effect_id: None,
6361 status: None,
6362 reason_code: None,
6363 output_hash: None,
6364 blob_hash: None,
6365 prev_hash: None,
6366 lamport_clock: None,
6367 signature: None,
6368 timestamp: None,
6369 principal: None,
6370 executor_id: None,
6371 args_hash: None,
6372 metadata: None,
6373 }
6374 }
6375}
6376
6377#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6389pub struct ReceiptListResponse {
6390 #[serde(rename = "receipts", skip_serializing_if = "Option::is_none")]
6391 pub receipts: Option<Vec<Receipt>>,
6392 #[serde(rename = "count", skip_serializing_if = "Option::is_none")]
6393 pub count: Option<i32>,
6394 #[serde(rename = "next_cursor", skip_serializing_if = "Option::is_none")]
6395 pub next_cursor: Option<String>,
6396 #[serde(rename = "has_more", skip_serializing_if = "Option::is_none")]
6397 pub has_more: Option<bool>,
6398}
6399
6400impl ReceiptListResponse {
6401 pub fn new() -> ReceiptListResponse {
6402 ReceiptListResponse {
6403 receipts: None,
6404 count: None,
6405 next_cursor: None,
6406 has_more: None,
6407 }
6408 }
6409}
6410
6411#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6423pub struct RevokeMcpRegistryRecordRequest {
6424 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
6425 pub reason: Option<String>,
6426}
6427
6428impl RevokeMcpRegistryRecordRequest {
6429 pub fn new() -> RevokeMcpRegistryRecordRequest {
6430 RevokeMcpRegistryRecordRequest {
6431 reason: None,
6432 }
6433 }
6434}
6435
6436#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6448pub struct RevokeTrustKeyRequest {
6449 #[serde(rename = "tenant_id")]
6450 pub tenant_id: String,
6451 #[serde(rename = "key_id")]
6452 pub key_id: String,
6453}
6454
6455impl RevokeTrustKeyRequest {
6456 pub fn new(tenant_id: String, key_id: String) -> RevokeTrustKeyRequest {
6457 RevokeTrustKeyRequest {
6458 tenant_id,
6459 key_id,
6460 }
6461 }
6462}
6463
6464#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6476pub struct RunAgentUiRuntimeRequest {
6477 #[serde(rename = "threadId", skip_serializing_if = "Option::is_none")]
6478 pub thread_id: Option<String>,
6479 #[serde(rename = "runId", skip_serializing_if = "Option::is_none")]
6480 pub run_id: Option<String>,
6481 #[serde(rename = "workspaceId", skip_serializing_if = "Option::is_none")]
6482 pub workspace_id: Option<String>,
6483 #[serde(rename = "currentSurface", skip_serializing_if = "Option::is_none")]
6484 pub current_surface: Option<String>,
6485 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
6486 pub state: Option<std::collections::HashMap<String, serde_json::Value>>,
6487 #[serde(rename = "messages", default, skip_serializing_if = "Option::is_none")]
6488 pub messages: Option<Option<serde_json::Value>>,
6489}
6490
6491impl RunAgentUiRuntimeRequest {
6492 pub fn new() -> RunAgentUiRuntimeRequest {
6493 RunAgentUiRuntimeRequest {
6494 thread_id: None,
6495 run_id: None,
6496 workspace_id: None,
6497 current_surface: None,
6498 state: None,
6499 messages: None,
6500 }
6501 }
6502}
6503
6504#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6516pub struct RunPublicDemo200Response {
6517 #[serde(rename = "verdict")]
6518 pub verdict: RunPublicDemo200ResponseVerdict,
6519 #[serde(rename = "reason_code")]
6520 pub reason_code: String,
6521 #[serde(rename = "receipt")]
6522 pub receipt: Box<Receipt>,
6523 #[serde(rename = "proof_refs")]
6524 pub proof_refs: Box<RunPublicDemo200ResponseProofRefs>,
6525 #[serde(rename = "verification_hint")]
6526 pub verification_hint: String,
6527 #[serde(rename = "sandbox_label")]
6528 pub sandbox_label: String,
6529 #[serde(rename = "helm_ai_kernel_version")]
6530 pub helm_ai_kernel_version: String,
6531}
6532
6533impl RunPublicDemo200Response {
6534 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 {
6535 RunPublicDemo200Response {
6536 verdict,
6537 reason_code,
6538 receipt: Box::new(receipt),
6539 proof_refs: Box::new(proof_refs),
6540 verification_hint,
6541 sandbox_label,
6542 helm_ai_kernel_version,
6543 }
6544 }
6545}
6546#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6548pub enum RunPublicDemo200ResponseVerdict {
6549 #[serde(rename = "ALLOW")]
6550 Allow,
6551 #[serde(rename = "DENY")]
6552 Deny,
6553 #[serde(rename = "ESCALATE")]
6554 Escalate,
6555}
6556
6557impl Default for RunPublicDemo200ResponseVerdict {
6558 fn default() -> RunPublicDemo200ResponseVerdict {
6559 Self::Allow
6560 }
6561}
6562
6563#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6575pub struct RunPublicDemo200ResponseProofRefs {
6576 #[serde(rename = "decision_id")]
6577 pub decision_id: String,
6578 #[serde(rename = "receipt_id")]
6579 pub receipt_id: String,
6580 #[serde(rename = "receipt_hash")]
6581 pub receipt_hash: String,
6582}
6583
6584impl RunPublicDemo200ResponseProofRefs {
6585 pub fn new(decision_id: String, receipt_id: String, receipt_hash: String) -> RunPublicDemo200ResponseProofRefs {
6586 RunPublicDemo200ResponseProofRefs {
6587 decision_id,
6588 receipt_id,
6589 receipt_hash,
6590 }
6591 }
6592}
6593
6594#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6606pub struct RunPublicDemoRequest {
6607 #[serde(rename = "action_id")]
6608 pub action_id: RunPublicDemoRequestActionId,
6609 #[serde(rename = "policy_id", skip_serializing_if = "Option::is_none")]
6610 pub policy_id: Option<String>,
6611 #[serde(rename = "args", skip_serializing_if = "Option::is_none")]
6612 pub args: Option<std::collections::HashMap<String, serde_json::Value>>,
6613}
6614
6615impl RunPublicDemoRequest {
6616 pub fn new(action_id: RunPublicDemoRequestActionId) -> RunPublicDemoRequest {
6617 RunPublicDemoRequest {
6618 action_id,
6619 policy_id: None,
6620 args: None,
6621 }
6622 }
6623}
6624#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6626pub enum RunPublicDemoRequestActionId {
6627 #[serde(rename = "read_ticket")]
6628 ReadTicket,
6629 #[serde(rename = "draft_reply")]
6630 DraftReply,
6631 #[serde(rename = "small_refund")]
6632 SmallRefund,
6633 #[serde(rename = "large_refund")]
6634 LargeRefund,
6635 #[serde(rename = "dangerous_shell")]
6636 DangerousShell,
6637 #[serde(rename = "export_customer_list")]
6638 ExportCustomerList,
6639 #[serde(rename = "modify_policy")]
6640 ModifyPolicy,
6641}
6642
6643impl Default for RunPublicDemoRequestActionId {
6644 fn default() -> RunPublicDemoRequestActionId {
6645 Self::ReadTicket
6646 }
6647}
6648
6649#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6661pub struct SandboxBackendProfile {
6662 #[serde(rename = "name")]
6663 pub name: String,
6664 #[serde(rename = "kind")]
6665 pub kind: SandboxBackendProfileKind,
6666 #[serde(rename = "runtime")]
6667 pub runtime: String,
6668 #[serde(rename = "hosted")]
6669 pub hosted: bool,
6670 #[serde(rename = "deny_network_by_default")]
6671 pub deny_network_by_default: bool,
6672 #[serde(rename = "native_isolation")]
6673 pub native_isolation: bool,
6674 #[serde(rename = "experimental", skip_serializing_if = "Option::is_none")]
6675 pub experimental: Option<bool>,
6676}
6677
6678impl SandboxBackendProfile {
6679 pub fn new(name: String, kind: SandboxBackendProfileKind, runtime: String, hosted: bool, deny_network_by_default: bool, native_isolation: bool) -> SandboxBackendProfile {
6680 SandboxBackendProfile {
6681 name,
6682 kind,
6683 runtime,
6684 hosted,
6685 deny_network_by_default,
6686 native_isolation,
6687 experimental: None,
6688 }
6689 }
6690}
6691#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6693pub enum SandboxBackendProfileKind {
6694 #[serde(rename = "wasi-wazero")]
6695 WasiWazero,
6696 #[serde(rename = "wasi-wasmtime")]
6697 WasiWasmtime,
6698 #[serde(rename = "native-nsjail")]
6699 NativeNsjail,
6700 #[serde(rename = "native-gvisor")]
6701 NativeGvisor,
6702 #[serde(rename = "native-firecracker")]
6703 NativeFirecracker,
6704 #[serde(rename = "hosted-adapter")]
6705 HostedAdapter,
6706}
6707
6708impl Default for SandboxBackendProfileKind {
6709 fn default() -> SandboxBackendProfileKind {
6710 Self::WasiWazero
6711 }
6712}
6713
6714#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6726pub struct SandboxGrant {
6727 #[serde(rename = "grant_id")]
6728 pub grant_id: String,
6729 #[serde(rename = "runtime")]
6730 pub runtime: String,
6731 #[serde(rename = "runtime_version", skip_serializing_if = "Option::is_none")]
6732 pub runtime_version: Option<String>,
6733 #[serde(rename = "profile")]
6734 pub profile: String,
6735 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
6736 pub image_digest: Option<String>,
6737 #[serde(rename = "template_digest", skip_serializing_if = "Option::is_none")]
6738 pub template_digest: Option<String>,
6739 #[serde(rename = "filesystem_preopens", skip_serializing_if = "Option::is_none")]
6740 pub filesystem_preopens: Option<Vec<FilesystemPreopen>>,
6741 #[serde(rename = "env")]
6742 pub env: Box<EnvExposurePolicy>,
6743 #[serde(rename = "network")]
6744 pub network: Box<NetworkGrant>,
6745 #[serde(rename = "limits", skip_serializing_if = "Option::is_none")]
6746 pub limits: Option<Box<SandboxGrantLimits>>,
6747 #[serde(rename = "declared_at")]
6748 pub declared_at: String,
6749 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
6750 pub policy_epoch: Option<String>,
6751 #[serde(rename = "grant_hash", skip_serializing_if = "Option::is_none")]
6752 pub grant_hash: Option<String>,
6753}
6754
6755impl SandboxGrant {
6756 pub fn new(grant_id: String, runtime: String, profile: String, env: EnvExposurePolicy, network: NetworkGrant, declared_at: String) -> SandboxGrant {
6757 SandboxGrant {
6758 grant_id,
6759 runtime,
6760 runtime_version: None,
6761 profile,
6762 image_digest: None,
6763 template_digest: None,
6764 filesystem_preopens: None,
6765 env: Box::new(env),
6766 network: Box::new(network),
6767 limits: None,
6768 declared_at,
6769 policy_epoch: None,
6770 grant_hash: None,
6771 }
6772 }
6773}
6774
6775#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
6787#[serde(untagged)]
6788pub enum SandboxGrantInspection {
6789 SandboxBackendProfileList(Vec<SandboxBackendProfile>),
6790 SandboxGrant(Box<SandboxGrant>),
6791}
6792
6793impl Default for SandboxGrantInspection {
6794 fn default() -> Self {
6795 Self::SandboxBackendProfileList(Default::default())
6796 }
6797}
6798
6799#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6811pub struct SandboxGrantLimits {
6812 #[serde(rename = "memory_bytes", skip_serializing_if = "Option::is_none")]
6813 pub memory_bytes: Option<i64>,
6814 #[serde(rename = "cpu_time", skip_serializing_if = "Option::is_none")]
6816 pub cpu_time: Option<i64>,
6817 #[serde(rename = "output_bytes", skip_serializing_if = "Option::is_none")]
6818 pub output_bytes: Option<i64>,
6819 #[serde(rename = "open_files", skip_serializing_if = "Option::is_none")]
6820 pub open_files: Option<i32>,
6821}
6822
6823impl SandboxGrantLimits {
6824 pub fn new() -> SandboxGrantLimits {
6825 SandboxGrantLimits {
6826 memory_bytes: None,
6827 cpu_time: None,
6828 output_bytes: None,
6829 open_files: None,
6830 }
6831 }
6832}
6833
6834#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6846pub struct SandboxPreflightRequest {
6847 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
6848 pub runtime: Option<String>,
6849 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
6850 pub profile: Option<String>,
6851 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
6852 pub image_digest: Option<String>,
6853 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
6854 pub policy_epoch: Option<String>,
6855 #[serde(rename = "requested_grant", skip_serializing_if = "Option::is_none")]
6856 pub requested_grant: Option<Box<SandboxGrant>>,
6857 #[serde(rename = "expected_grant_hash", skip_serializing_if = "Option::is_none")]
6858 pub expected_grant_hash: Option<String>,
6859}
6860
6861impl SandboxPreflightRequest {
6862 pub fn new() -> SandboxPreflightRequest {
6863 SandboxPreflightRequest {
6864 runtime: None,
6865 profile: None,
6866 image_digest: None,
6867 policy_epoch: None,
6868 requested_grant: None,
6869 expected_grant_hash: None,
6870 }
6871 }
6872}
6873
6874#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6886pub struct SandboxPreflightResult {
6887 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
6888 pub verdict: Option<SandboxPreflightResultVerdict>,
6889 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
6890 pub reason_code: Option<String>,
6891 #[serde(rename = "grant_id", skip_serializing_if = "Option::is_none")]
6892 pub grant_id: Option<String>,
6893 #[serde(rename = "grant_hash", skip_serializing_if = "Option::is_none")]
6894 pub grant_hash: Option<String>,
6895 #[serde(rename = "dispatch_ready", skip_serializing_if = "Option::is_none")]
6896 pub dispatch_ready: Option<bool>,
6897 #[serde(rename = "findings", skip_serializing_if = "Option::is_none")]
6898 pub findings: Option<Vec<String>>,
6899 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
6900 pub checked_at: Option<String>,
6901}
6902
6903impl SandboxPreflightResult {
6904 pub fn new() -> SandboxPreflightResult {
6905 SandboxPreflightResult {
6906 verdict: None,
6907 reason_code: None,
6908 grant_id: None,
6909 grant_hash: None,
6910 dispatch_ready: None,
6911 findings: None,
6912 checked_at: None,
6913 }
6914 }
6915}
6916#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6918pub enum SandboxPreflightResultVerdict {
6919 #[serde(rename = "ALLOW")]
6920 Allow,
6921 #[serde(rename = "DENY")]
6922 Deny,
6923 #[serde(rename = "ESCALATE")]
6924 Escalate,
6925}
6926
6927impl Default for SandboxPreflightResultVerdict {
6928 fn default() -> SandboxPreflightResultVerdict {
6929 Self::Allow
6930 }
6931}
6932
6933#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6945pub struct SecretContract {
6946 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
6947 pub name: Option<String>,
6948 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
6949 pub source: Option<String>,
6950 #[serde(rename = "required", skip_serializing_if = "Option::is_none")]
6951 pub required: Option<bool>,
6952 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
6953 pub reason: Option<String>,
6954 #[serde(rename = "targets", skip_serializing_if = "Option::is_none")]
6955 pub targets: Option<Vec<String>>,
6956}
6957
6958impl SecretContract {
6959 pub fn new() -> SecretContract {
6960 SecretContract {
6961 name: None,
6962 source: None,
6963 required: None,
6964 reason: None,
6965 targets: None,
6966 }
6967 }
6968}
6969
6970#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6982pub struct Session {
6983 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
6984 pub session_id: Option<String>,
6985 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
6986 pub created_at: Option<String>,
6987 #[serde(rename = "receipt_count", skip_serializing_if = "Option::is_none")]
6988 pub receipt_count: Option<i32>,
6989 #[serde(rename = "last_lamport_clock", skip_serializing_if = "Option::is_none")]
6990 pub last_lamport_clock: Option<i32>,
6991}
6992
6993impl Session {
6994 pub fn new() -> Session {
6995 Session {
6996 session_id: None,
6997 created_at: None,
6998 receipt_count: None,
6999 last_lamport_clock: None,
7000 }
7001 }
7002}
7003
7004#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7016pub struct SourceFileSummary {
7017 #[serde(rename = "path")]
7018 pub path: String,
7019 #[serde(rename = "kind")]
7020 pub kind: String,
7021 #[serde(rename = "size", skip_serializing_if = "Option::is_none")]
7022 pub size: Option<i32>,
7023 #[serde(rename = "sha", skip_serializing_if = "Option::is_none")]
7024 pub sha: Option<String>,
7025 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
7026 pub language: Option<String>,
7027 #[serde(rename = "content", skip_serializing_if = "Option::is_none")]
7028 pub content: Option<String>,
7029}
7030
7031impl SourceFileSummary {
7032 pub fn new(path: String, kind: String) -> SourceFileSummary {
7033 SourceFileSummary {
7034 path,
7035 kind,
7036 size: None,
7037 sha: None,
7038 language: None,
7039 content: None,
7040 }
7041 }
7042}
7043
7044#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7056pub struct SourceSnapshot {
7057 #[serde(rename = "repo_url")]
7058 pub repo_url: String,
7059 #[serde(rename = "provider")]
7060 pub provider: String,
7061 #[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
7062 pub owner: Option<String>,
7063 #[serde(rename = "repo", skip_serializing_if = "Option::is_none")]
7064 pub repo: Option<String>,
7065 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
7066 pub r#ref: Option<String>,
7067 #[serde(rename = "commit", skip_serializing_if = "Option::is_none")]
7068 pub commit: Option<String>,
7069 #[serde(rename = "license_spdx", skip_serializing_if = "Option::is_none")]
7070 pub license_spdx: Option<String>,
7071 #[serde(rename = "license_state")]
7072 pub license_state: String,
7073 #[serde(rename = "fetched_at", skip_serializing_if = "Option::is_none")]
7074 pub fetched_at: Option<String>,
7075 #[serde(rename = "files")]
7076 pub files: Vec<SourceFileSummary>,
7077 #[serde(rename = "api_source", skip_serializing_if = "Option::is_none")]
7078 pub api_source: Option<String>,
7079}
7080
7081impl SourceSnapshot {
7082 pub fn new(repo_url: String, provider: String, license_state: String, files: Vec<SourceFileSummary>) -> SourceSnapshot {
7083 SourceSnapshot {
7084 repo_url,
7085 provider,
7086 owner: None,
7087 repo: None,
7088 r#ref: None,
7089 commit: None,
7090 license_spdx: None,
7091 license_state,
7092 fetched_at: None,
7093 files,
7094 api_source: None,
7095 }
7096 }
7097}
7098
7099#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7111pub struct TamperPublicDemoReceipt200Response {
7112 #[serde(rename = "valid")]
7113 pub valid: bool,
7114 #[serde(rename = "signature_valid")]
7115 pub signature_valid: bool,
7116 #[serde(rename = "hash_matches")]
7117 pub hash_matches: bool,
7118 #[serde(rename = "reason")]
7119 pub reason: String,
7120 #[serde(rename = "receipt_hash")]
7121 pub receipt_hash: String,
7122 #[serde(rename = "expected_receipt_hash")]
7123 pub expected_receipt_hash: String,
7124 #[serde(rename = "original_hash")]
7125 pub original_hash: String,
7126 #[serde(rename = "tampered_hash")]
7127 pub tampered_hash: String,
7128}
7129
7130impl TamperPublicDemoReceipt200Response {
7131 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 {
7132 TamperPublicDemoReceipt200Response {
7133 valid,
7134 signature_valid,
7135 hash_matches,
7136 reason,
7137 receipt_hash,
7138 expected_receipt_hash,
7139 original_hash,
7140 tampered_hash,
7141 }
7142 }
7143}
7144
7145#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7157pub struct TamperPublicDemoReceiptRequest {
7158 #[serde(rename = "receipt")]
7159 pub receipt: Box<Receipt>,
7160 #[serde(rename = "expected_receipt_hash")]
7162 pub expected_receipt_hash: String,
7163 #[serde(rename = "mutation", skip_serializing_if = "Option::is_none")]
7164 pub mutation: Option<String>,
7165}
7166
7167impl TamperPublicDemoReceiptRequest {
7168 pub fn new(receipt: Receipt, expected_receipt_hash: String) -> TamperPublicDemoReceiptRequest {
7169 TamperPublicDemoReceiptRequest {
7170 receipt: Box::new(receipt),
7171 expected_receipt_hash,
7172 mutation: None,
7173 }
7174 }
7175}
7176
7177#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7189pub struct TargetPlan {
7190 #[serde(rename = "target_id")]
7191 pub target_id: String,
7192 #[serde(rename = "kind")]
7193 pub kind: String,
7194 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
7195 pub substrate_id: Option<String>,
7196 #[serde(rename = "deployable")]
7197 pub deployable: bool,
7198 #[serde(rename = "requires_approval", skip_serializing_if = "Option::is_none")]
7199 pub requires_approval: Option<bool>,
7200 #[serde(rename = "commands", skip_serializing_if = "Option::is_none")]
7201 pub commands: Option<Vec<Vec<String>>>,
7202 #[serde(rename = "artifacts", skip_serializing_if = "Option::is_none")]
7203 pub artifacts: Option<Vec<String>>,
7204 #[serde(rename = "secrets_backend", skip_serializing_if = "Option::is_none")]
7205 pub secrets_backend: Option<String>,
7206 #[serde(rename = "healthcheck", skip_serializing_if = "Option::is_none")]
7207 pub healthcheck: Option<std::collections::HashMap<String, String>>,
7208 #[serde(rename = "rollback", skip_serializing_if = "Option::is_none")]
7209 pub rollback: Option<Vec<String>>,
7210 #[serde(rename = "risk")]
7211 pub risk: String,
7212 #[serde(rename = "reason")]
7213 pub reason: String,
7214}
7215
7216impl TargetPlan {
7217 pub fn new(target_id: String, kind: String, deployable: bool, risk: String, reason: String) -> TargetPlan {
7218 TargetPlan {
7219 target_id,
7220 kind,
7221 substrate_id: None,
7222 deployable,
7223 requires_approval: None,
7224 commands: None,
7225 artifacts: None,
7226 secrets_backend: None,
7227 healthcheck: None,
7228 rollback: None,
7229 risk,
7230 reason,
7231 }
7232 }
7233}
7234
7235#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7247pub struct TeardownLaunchpadRuntimeRunRequest {
7248 #[serde(rename = "cascade", skip_serializing_if = "Option::is_none")]
7249 pub cascade: Option<bool>,
7250}
7251
7252impl TeardownLaunchpadRuntimeRunRequest {
7253 pub fn new() -> TeardownLaunchpadRuntimeRunRequest {
7254 TeardownLaunchpadRuntimeRunRequest {
7255 cascade: None,
7256 }
7257 }
7258}
7259
7260#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7272pub struct TelemetryExportRequest {
7273 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
7274 pub format: Option<String>,
7275 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
7276 pub receipt_id: Option<String>,
7277 #[serde(rename = "record_hash", skip_serializing_if = "Option::is_none")]
7278 pub record_hash: Option<String>,
7279 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
7280 pub policy_epoch: Option<String>,
7281 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
7282 pub verdict: Option<String>,
7283 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
7284 pub reason_code: Option<String>,
7285 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
7286 pub sandbox_grant_hash: Option<String>,
7287 #[serde(rename = "authz_snapshot_hash", skip_serializing_if = "Option::is_none")]
7288 pub authz_snapshot_hash: Option<String>,
7289 #[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
7290 pub attributes: Option<std::collections::HashMap<String, String>>,
7291}
7292
7293impl TelemetryExportRequest {
7294 pub fn new() -> TelemetryExportRequest {
7295 TelemetryExportRequest {
7296 format: None,
7297 receipt_id: None,
7298 record_hash: None,
7299 policy_epoch: None,
7300 verdict: None,
7301 reason_code: None,
7302 sandbox_grant_hash: None,
7303 authz_snapshot_hash: None,
7304 attributes: None,
7305 }
7306 }
7307}
7308
7309#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7321pub struct TelemetryExportResult {
7322 #[serde(rename = "export_id", skip_serializing_if = "Option::is_none")]
7323 pub export_id: Option<String>,
7324 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
7325 pub format: Option<String>,
7326 #[serde(rename = "authoritative", skip_serializing_if = "Option::is_none")]
7327 pub authoritative: Option<bool>,
7328 #[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
7329 pub attributes: Option<std::collections::HashMap<String, String>>,
7330 #[serde(rename = "exported_at", skip_serializing_if = "Option::is_none")]
7331 pub exported_at: Option<String>,
7332}
7333
7334impl TelemetryExportResult {
7335 pub fn new() -> TelemetryExportResult {
7336 TelemetryExportResult {
7337 export_id: None,
7338 format: None,
7339 authoritative: None,
7340 attributes: None,
7341 exported_at: None,
7342 }
7343 }
7344}
7345
7346#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7358pub struct TelemetryOTelConfig {
7359 #[serde(rename = "service_name", skip_serializing_if = "Option::is_none")]
7360 pub service_name: Option<String>,
7361 #[serde(rename = "signal_type", skip_serializing_if = "Option::is_none")]
7362 pub signal_type: Option<String>,
7363 #[serde(rename = "authoritative", skip_serializing_if = "Option::is_none")]
7364 pub authoritative: Option<bool>,
7365 #[serde(rename = "span_attributes", skip_serializing_if = "Option::is_none")]
7366 pub span_attributes: Option<std::collections::HashMap<String, String>>,
7367 #[serde(rename = "exported_signals", skip_serializing_if = "Option::is_none")]
7368 pub exported_signals: Option<Vec<String>>,
7369}
7370
7371impl TelemetryOTelConfig {
7372 pub fn new() -> TelemetryOTelConfig {
7373 TelemetryOTelConfig {
7374 service_name: None,
7375 signal_type: None,
7376 authoritative: None,
7377 span_attributes: None,
7378 exported_signals: None,
7379 }
7380 }
7381}
7382
7383#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7395pub struct TransitionApprovalCeremonyRequest {
7396 #[serde(rename = "actor", skip_serializing_if = "Option::is_none")]
7397 pub actor: Option<String>,
7398 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
7399 pub receipt_id: Option<String>,
7400 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
7401 pub reason: Option<String>,
7402}
7403
7404impl TransitionApprovalCeremonyRequest {
7405 pub fn new() -> TransitionApprovalCeremonyRequest {
7406 TransitionApprovalCeremonyRequest {
7407 actor: None,
7408 receipt_id: None,
7409 reason: None,
7410 }
7411 }
7412}
7413
7414#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7426pub struct VerificationResult {
7427 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
7428 pub verdict: Option<VerificationResultVerdict>,
7429 #[serde(rename = "checks", skip_serializing_if = "Option::is_none")]
7430 pub checks: Option<Box<VerificationResultChecks>>,
7431 #[serde(rename = "roots", skip_serializing_if = "Option::is_none")]
7432 pub roots: Option<Box<VerificationResultRoots>>,
7433 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
7434 pub errors: Option<Vec<String>>,
7435}
7436
7437impl VerificationResult {
7438 pub fn new() -> VerificationResult {
7439 VerificationResult {
7440 verdict: None,
7441 checks: None,
7442 roots: None,
7443 errors: None,
7444 }
7445 }
7446}
7447#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7449pub enum VerificationResultVerdict {
7450 #[serde(rename = "PASS")]
7451 Pass,
7452 #[serde(rename = "FAIL")]
7453 Fail,
7454}
7455
7456impl Default for VerificationResultVerdict {
7457 fn default() -> VerificationResultVerdict {
7458 Self::Pass
7459 }
7460}
7461
7462#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7474pub struct VerificationResultChecks {
7475 #[serde(rename = "signatures", skip_serializing_if = "Option::is_none")]
7476 pub signatures: Option<VerificationResultChecksSignatures>,
7477 #[serde(rename = "causal_chain", skip_serializing_if = "Option::is_none")]
7478 pub causal_chain: Option<VerificationResultChecksCausalChain>,
7479 #[serde(rename = "policy_compliance", skip_serializing_if = "Option::is_none")]
7480 pub policy_compliance: Option<VerificationResultChecksPolicyCompliance>,
7481}
7482
7483impl VerificationResultChecks {
7484 pub fn new() -> VerificationResultChecks {
7485 VerificationResultChecks {
7486 signatures: None,
7487 causal_chain: None,
7488 policy_compliance: None,
7489 }
7490 }
7491}
7492#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7494pub enum VerificationResultChecksSignatures {
7495 #[serde(rename = "PASS")]
7496 Pass,
7497 #[serde(rename = "FAIL")]
7498 Fail,
7499}
7500
7501impl Default for VerificationResultChecksSignatures {
7502 fn default() -> VerificationResultChecksSignatures {
7503 Self::Pass
7504 }
7505}
7506#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7508pub enum VerificationResultChecksCausalChain {
7509 #[serde(rename = "PASS")]
7510 Pass,
7511 #[serde(rename = "FAIL")]
7512 Fail,
7513}
7514
7515impl Default for VerificationResultChecksCausalChain {
7516 fn default() -> VerificationResultChecksCausalChain {
7517 Self::Pass
7518 }
7519}
7520#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7522pub enum VerificationResultChecksPolicyCompliance {
7523 #[serde(rename = "PASS")]
7524 Pass,
7525 #[serde(rename = "FAIL")]
7526 Fail,
7527}
7528
7529impl Default for VerificationResultChecksPolicyCompliance {
7530 fn default() -> VerificationResultChecksPolicyCompliance {
7531 Self::Pass
7532 }
7533}
7534
7535#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7547pub struct VerificationResultRoots {
7548 #[serde(rename = "manifest_root_hash", skip_serializing_if = "Option::is_none")]
7549 pub manifest_root_hash: Option<String>,
7550 #[serde(rename = "merkle_root", skip_serializing_if = "Option::is_none")]
7551 pub merkle_root: Option<String>,
7552 #[serde(rename = "entry_count", skip_serializing_if = "Option::is_none")]
7553 pub entry_count: Option<i32>,
7554}
7555
7556impl VerificationResultRoots {
7557 pub fn new() -> VerificationResultRoots {
7558 VerificationResultRoots {
7559 manifest_root_hash: None,
7560 merkle_root: None,
7561 entry_count: None,
7562 }
7563 }
7564}
7565
7566#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7578pub struct VerificationScope {
7579 #[serde(rename = "verification_scope_id")]
7580 pub verification_scope_id: String,
7581 #[serde(rename = "subject_hash")]
7582 pub subject_hash: String,
7583 #[serde(rename = "risk_class", skip_serializing_if = "Option::is_none")]
7584 pub risk_class: Option<VerificationScopeRiskClass>,
7585 #[serde(rename = "checks_performed")]
7586 pub checks_performed: Vec<String>,
7587 #[serde(rename = "assumptions", skip_serializing_if = "Option::is_none")]
7588 pub assumptions: Option<Vec<String>>,
7589 #[serde(rename = "untested_regions", skip_serializing_if = "Option::is_none")]
7590 pub untested_regions: Option<Vec<String>>,
7591 #[serde(rename = "known_limits", skip_serializing_if = "Option::is_none")]
7592 pub known_limits: Option<Vec<String>>,
7593 #[serde(rename = "remaining_risks", skip_serializing_if = "Option::is_none")]
7594 pub remaining_risks: Option<Vec<String>>,
7595 #[serde(rename = "required_followup", skip_serializing_if = "Option::is_none")]
7596 pub required_followup: Option<Vec<String>>,
7597 #[serde(rename = "verifier_hash")]
7598 pub verifier_hash: String,
7599 #[serde(rename = "policy_hash")]
7600 pub policy_hash: String,
7601 #[serde(rename = "created_at")]
7602 pub created_at: String,
7603 #[serde(rename = "scope_hash", skip_serializing_if = "Option::is_none")]
7604 pub scope_hash: Option<String>,
7605}
7606
7607impl VerificationScope {
7608 pub fn new(verification_scope_id: String, subject_hash: String, checks_performed: Vec<String>, verifier_hash: String, policy_hash: String, created_at: String) -> VerificationScope {
7609 VerificationScope {
7610 verification_scope_id,
7611 subject_hash,
7612 risk_class: None,
7613 checks_performed,
7614 assumptions: None,
7615 untested_regions: None,
7616 known_limits: None,
7617 remaining_risks: None,
7618 required_followup: None,
7619 verifier_hash,
7620 policy_hash,
7621 created_at,
7622 scope_hash: None,
7623 }
7624 }
7625}
7626#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7628pub enum VerificationScopeRiskClass {
7629 #[serde(rename = "T0")]
7630 T0,
7631 #[serde(rename = "T1")]
7632 T1,
7633 #[serde(rename = "T2")]
7634 T2,
7635 #[serde(rename = "T3")]
7636 T3,
7637}
7638
7639impl Default for VerificationScopeRiskClass {
7640 fn default() -> VerificationScopeRiskClass {
7641 Self::T0
7642 }
7643}
7644
7645#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7657pub struct VerifyPublicDemoReceipt200Response {
7658 #[serde(rename = "valid")]
7659 pub valid: bool,
7660 #[serde(rename = "signature_valid")]
7661 pub signature_valid: bool,
7662 #[serde(rename = "hash_matches")]
7663 pub hash_matches: bool,
7664 #[serde(rename = "reason")]
7665 pub reason: String,
7666 #[serde(rename = "verified_fields")]
7667 pub verified_fields: Vec<String>,
7668 #[serde(rename = "receipt_hash")]
7669 pub receipt_hash: String,
7670 #[serde(rename = "expected_receipt_hash")]
7671 pub expected_receipt_hash: String,
7672}
7673
7674impl VerifyPublicDemoReceipt200Response {
7675 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 {
7676 VerifyPublicDemoReceipt200Response {
7677 valid,
7678 signature_valid,
7679 hash_matches,
7680 reason,
7681 verified_fields,
7682 receipt_hash,
7683 expected_receipt_hash,
7684 }
7685 }
7686}
7687
7688#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7700pub struct VerifyPublicDemoReceiptRequest {
7701 #[serde(rename = "receipt")]
7702 pub receipt: Box<Receipt>,
7703 #[serde(rename = "expected_receipt_hash")]
7705 pub expected_receipt_hash: String,
7706}
7707
7708impl VerifyPublicDemoReceiptRequest {
7709 pub fn new(receipt: Receipt, expected_receipt_hash: String) -> VerifyPublicDemoReceiptRequest {
7710 VerifyPublicDemoReceiptRequest {
7711 receipt: Box::new(receipt),
7712 expected_receipt_hash,
7713 }
7714 }
7715}
7716
7717#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7729pub struct VersionInfo {
7730 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
7731 pub version: Option<String>,
7732 #[serde(rename = "commit", skip_serializing_if = "Option::is_none")]
7733 pub commit: Option<String>,
7734 #[serde(rename = "build_time", skip_serializing_if = "Option::is_none")]
7735 pub build_time: Option<String>,
7736 #[serde(rename = "go_version", skip_serializing_if = "Option::is_none")]
7737 pub go_version: Option<String>,
7738}
7739
7740impl VersionInfo {
7741 pub fn new() -> VersionInfo {
7742 VersionInfo {
7743 version: None,
7744 commit: None,
7745 build_time: None,
7746 go_version: None,
7747 }
7748 }
7749}
7750
7751
7752pub type ReasonCode = HelmErrorErrorReasonCode;