1use serde::{Deserialize, Serialize};
5#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
17pub struct A2AAgentCard {
18 #[serde(rename = "agent_id")]
19 pub agent_id: String,
20 #[serde(rename = "name")]
21 pub name: String,
22 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
23 pub description: Option<String>,
24 #[serde(rename = "endpoint")]
25 pub endpoint: String,
26 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
27 pub provider: Option<Box<A2AAgentCardProvider>>,
28 #[serde(rename = "supported_versions")]
29 pub supported_versions: Vec<String>,
30 #[serde(rename = "skills")]
31 pub skills: Vec<A2AAgentCardSkillsInner>,
32 #[serde(rename = "auth_methods", skip_serializing_if = "Option::is_none")]
33 pub auth_methods: Option<Vec<String>>,
34 #[serde(rename = "features", skip_serializing_if = "Option::is_none")]
35 pub features: Option<Vec<String>>,
36 #[serde(rename = "defaultInputModes", skip_serializing_if = "Option::is_none")]
37 pub default_input_modes: Option<Vec<String>>,
38 #[serde(rename = "defaultOutputModes", skip_serializing_if = "Option::is_none")]
39 pub default_output_modes: Option<Vec<String>>,
40 #[serde(rename = "capabilities", skip_serializing_if = "Option::is_none")]
41 pub capabilities: Option<Box<A2AAgentCardCapabilities>>,
42 #[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
43 pub signature: Option<String>,
44 #[serde(rename = "content_hash", skip_serializing_if = "Option::is_none")]
45 pub content_hash: Option<String>,
46 #[serde(rename = "created_at")]
47 pub created_at: String,
48 #[serde(rename = "updated_at")]
49 pub updated_at: String,
50}
51
52impl A2AAgentCard {
53 pub fn new(agent_id: String, name: String, endpoint: String, supported_versions: Vec<String>, skills: Vec<A2AAgentCardSkillsInner>, created_at: String, updated_at: String) -> A2AAgentCard {
54 A2AAgentCard {
55 agent_id,
56 name,
57 description: None,
58 endpoint,
59 provider: None,
60 supported_versions,
61 skills,
62 auth_methods: None,
63 features: None,
64 default_input_modes: None,
65 default_output_modes: None,
66 capabilities: None,
67 signature: None,
68 content_hash: None,
69 created_at,
70 updated_at,
71 }
72 }
73}
74
75#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
87pub struct A2AAgentCardCapabilities {
88 #[serde(rename = "streaming", skip_serializing_if = "Option::is_none")]
89 pub streaming: Option<bool>,
90 #[serde(rename = "pushNotifications", skip_serializing_if = "Option::is_none")]
91 pub push_notifications: Option<bool>,
92 #[serde(rename = "stateTransitionHistory", skip_serializing_if = "Option::is_none")]
93 pub state_transition_history: Option<bool>,
94}
95
96impl A2AAgentCardCapabilities {
97 pub fn new() -> A2AAgentCardCapabilities {
98 A2AAgentCardCapabilities {
99 streaming: None,
100 push_notifications: None,
101 state_transition_history: None,
102 }
103 }
104}
105
106#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
118pub struct A2AAgentCardProvider {
119 #[serde(rename = "organization", skip_serializing_if = "Option::is_none")]
120 pub organization: Option<String>,
121 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
122 pub url: Option<String>,
123}
124
125impl A2AAgentCardProvider {
126 pub fn new() -> A2AAgentCardProvider {
127 A2AAgentCardProvider {
128 organization: None,
129 url: None,
130 }
131 }
132}
133
134#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
146pub struct A2AAgentCardSkillsInner {
147 #[serde(rename = "id")]
148 pub id: String,
149 #[serde(rename = "name")]
150 pub name: String,
151 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
152 pub description: Option<String>,
153 #[serde(rename = "examples", skip_serializing_if = "Option::is_none")]
154 pub examples: Option<Vec<String>>,
155 #[serde(rename = "input_modes", skip_serializing_if = "Option::is_none")]
156 pub input_modes: Option<Vec<String>>,
157 #[serde(rename = "output_modes", skip_serializing_if = "Option::is_none")]
158 pub output_modes: Option<Vec<String>>,
159}
160
161impl A2AAgentCardSkillsInner {
162 pub fn new(id: String, name: String) -> A2AAgentCardSkillsInner {
163 A2AAgentCardSkillsInner {
164 id,
165 name,
166 description: None,
167 examples: None,
168 input_modes: None,
169 output_modes: None,
170 }
171 }
172}
173
174#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
186pub struct AccountEntitlements {
187 #[serde(rename = "principal_id", skip_serializing_if = "Option::is_none")]
188 pub principal_id: Option<String>,
189 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
190 pub tenant_id: Option<String>,
191 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
192 pub workspace_id: Option<String>,
193 #[serde(rename = "plan", default, skip_serializing_if = "Option::is_none")]
194 pub plan: Option<Option<AccountEntitlementsPlan>>,
195 #[serde(rename = "plan_id", skip_serializing_if = "Option::is_none")]
196 pub plan_id: Option<String>,
197 #[serde(rename = "capabilities", skip_serializing_if = "Option::is_none")]
198 pub capabilities: Option<Box<EntitlementCapabilities>>,
199 #[serde(rename = "limits", skip_serializing_if = "Option::is_none")]
200 pub limits: Option<Box<EntitlementLimits>>,
201 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
202 pub source: Option<String>,
203 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
204 pub updated_at: Option<String>,
205}
206
207impl AccountEntitlements {
208 pub fn new() -> AccountEntitlements {
209 AccountEntitlements {
210 principal_id: None,
211 tenant_id: None,
212 workspace_id: None,
213 plan: None,
214 plan_id: None,
215 capabilities: None,
216 limits: None,
217 source: None,
218 updated_at: None,
219 }
220 }
221}
222#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
224pub enum AccountEntitlementsPlan {
225 #[serde(rename = "free")]
226 Free,
227 #[serde(rename = "developer")]
228 Developer,
229 #[serde(rename = "team")]
230 Team,
231 #[serde(rename = "scale")]
232 Scale,
233 #[serde(rename = "enterprise")]
234 Enterprise,
235}
236
237impl Default for AccountEntitlementsPlan {
238 fn default() -> AccountEntitlementsPlan {
239 Self::Free
240 }
241}
242
243#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
255pub struct AccountSession {
256 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
257 pub session_id: Option<String>,
258 #[serde(rename = "principal_id", skip_serializing_if = "Option::is_none")]
259 pub principal_id: Option<String>,
260 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
261 pub tenant_id: Option<String>,
262 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
263 pub workspace_id: Option<String>,
264 #[serde(rename = "plan", default, skip_serializing_if = "Option::is_none")]
265 pub plan: Option<Option<AccountSessionPlan>>,
266 #[serde(rename = "plan_id", skip_serializing_if = "Option::is_none")]
267 pub plan_id: Option<String>,
268 #[serde(rename = "edition", skip_serializing_if = "Option::is_none")]
269 pub edition: Option<String>,
270 #[serde(rename = "deployment_mode", skip_serializing_if = "Option::is_none")]
271 pub deployment_mode: Option<String>,
272 #[serde(rename = "account_lifecycle", skip_serializing_if = "Option::is_none")]
273 pub account_lifecycle: Option<String>,
274 #[serde(rename = "offer_code", skip_serializing_if = "Option::is_none")]
275 pub offer_code: Option<String>,
276 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
277 pub source: Option<String>,
278 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
279 pub expires_at: Option<String>,
280}
281
282impl AccountSession {
283 pub fn new() -> AccountSession {
284 AccountSession {
285 session_id: None,
286 principal_id: None,
287 tenant_id: None,
288 workspace_id: None,
289 plan: None,
290 plan_id: None,
291 edition: None,
292 deployment_mode: None,
293 account_lifecycle: None,
294 offer_code: None,
295 source: None,
296 expires_at: None,
297 }
298 }
299}
300#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
302pub enum AccountSessionPlan {
303 #[serde(rename = "free")]
304 Free,
305 #[serde(rename = "developer")]
306 Developer,
307 #[serde(rename = "team")]
308 Team,
309 #[serde(rename = "scale")]
310 Scale,
311 #[serde(rename = "enterprise")]
312 Enterprise,
313}
314
315impl Default for AccountSessionPlan {
316 fn default() -> AccountSessionPlan {
317 Self::Free
318 }
319}
320
321#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
333pub struct AdapterMatch {
334 #[serde(rename = "adapter_id", skip_serializing_if = "Option::is_none")]
335 pub adapter_id: Option<String>,
336 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
337 pub confidence: Option<f64>,
338 #[serde(rename = "evidence", skip_serializing_if = "Option::is_none")]
339 pub evidence: Option<Vec<String>>,
340}
341
342impl AdapterMatch {
343 pub fn new() -> AdapterMatch {
344 AdapterMatch {
345 adapter_id: None,
346 confidence: None,
347 evidence: None,
348 }
349 }
350}
351
352#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
364pub struct AddTrustKey200Response {
365 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
366 pub status: Option<String>,
367 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
368 pub tenant_id: Option<String>,
369 #[serde(rename = "key_id", skip_serializing_if = "Option::is_none")]
370 pub key_id: Option<String>,
371}
372
373impl AddTrustKey200Response {
374 pub fn new() -> AddTrustKey200Response {
375 AddTrustKey200Response {
376 status: None,
377 tenant_id: None,
378 key_id: None,
379 }
380 }
381}
382
383#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
395pub struct AddTrustKeyRequest {
396 #[serde(rename = "tenant_id")]
397 pub tenant_id: String,
398 #[serde(rename = "key_id")]
399 pub key_id: String,
400 #[serde(rename = "public_key")]
402 pub public_key: String,
403}
404
405impl AddTrustKeyRequest {
406 pub fn new(tenant_id: String, key_id: String, public_key: String) -> AddTrustKeyRequest {
407 AddTrustKeyRequest {
408 tenant_id,
409 key_id,
410 public_key,
411 }
412 }
413}
414
415#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
427pub struct AgentIdentityProfile {
428 #[serde(rename = "agent_id", skip_serializing_if = "Option::is_none")]
429 pub agent_id: Option<String>,
430 #[serde(rename = "identity_type", skip_serializing_if = "Option::is_none")]
431 pub identity_type: Option<String>,
432 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
433 pub subject: Option<String>,
434 #[serde(rename = "issuer", skip_serializing_if = "Option::is_none")]
435 pub issuer: Option<String>,
436 #[serde(rename = "jwks_uri", skip_serializing_if = "Option::is_none")]
437 pub jwks_uri: Option<String>,
438 #[serde(rename = "spiffe_id", skip_serializing_if = "Option::is_none")]
439 pub spiffe_id: Option<String>,
440 #[serde(rename = "scopes", skip_serializing_if = "Option::is_none")]
441 pub scopes: Option<Vec<String>>,
442 #[serde(rename = "anonymous_dev_mode", skip_serializing_if = "Option::is_none")]
443 pub anonymous_dev_mode: Option<bool>,
444 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
445 pub created_at: Option<String>,
446}
447
448impl AgentIdentityProfile {
449 pub fn new() -> AgentIdentityProfile {
450 AgentIdentityProfile {
451 agent_id: None,
452 identity_type: None,
453 subject: None,
454 issuer: None,
455 jwks_uri: None,
456 spiffe_id: None,
457 scopes: None,
458 anonymous_dev_mode: None,
459 created_at: None,
460 }
461 }
462}
463
464#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
476pub struct ApprovalCeremony {
477 #[serde(rename = "approval_id", skip_serializing_if = "Option::is_none")]
478 pub approval_id: Option<String>,
479 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
480 pub subject: Option<String>,
481 #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
482 pub action: Option<String>,
483 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
484 pub state: Option<ApprovalCeremonyState>,
485 #[serde(rename = "requested_by", skip_serializing_if = "Option::is_none")]
486 pub requested_by: Option<String>,
487 #[serde(rename = "approvers", skip_serializing_if = "Option::is_none")]
488 pub approvers: Option<Vec<String>>,
489 #[serde(rename = "quorum", skip_serializing_if = "Option::is_none")]
490 pub quorum: Option<i32>,
491 #[serde(rename = "timelock_until", skip_serializing_if = "Option::is_none")]
492 pub timelock_until: Option<String>,
493 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
494 pub expires_at: Option<String>,
495 #[serde(rename = "break_glass", skip_serializing_if = "Option::is_none")]
496 pub break_glass: Option<bool>,
497 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
498 pub reason: Option<String>,
499 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
500 pub receipt_id: Option<String>,
501 #[serde(rename = "ceremony_hash", skip_serializing_if = "Option::is_none")]
502 pub ceremony_hash: Option<String>,
503 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
504 pub created_at: Option<String>,
505 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
506 pub updated_at: Option<String>,
507}
508
509impl ApprovalCeremony {
510 pub fn new() -> ApprovalCeremony {
511 ApprovalCeremony {
512 approval_id: None,
513 subject: None,
514 action: None,
515 state: None,
516 requested_by: None,
517 approvers: None,
518 quorum: None,
519 timelock_until: None,
520 expires_at: None,
521 break_glass: None,
522 reason: None,
523 receipt_id: None,
524 ceremony_hash: None,
525 created_at: None,
526 updated_at: None,
527 }
528 }
529}
530#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
532pub enum ApprovalCeremonyState {
533 #[serde(rename = "pending")]
534 Pending,
535 #[serde(rename = "approved")]
536 Approved,
537 #[serde(rename = "denied")]
538 Denied,
539 #[serde(rename = "revoked")]
540 Revoked,
541 #[serde(rename = "expired")]
542 Expired,
543}
544
545impl Default for ApprovalCeremonyState {
546 fn default() -> ApprovalCeremonyState {
547 Self::Pending
548 }
549}
550
551#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
563pub struct ApprovalRequest {
564 #[serde(rename = "intent_hash")]
566 pub intent_hash: String,
567 #[serde(rename = "signature_b64")]
569 pub signature_b64: String,
570 #[serde(rename = "public_key_b64")]
572 pub public_key_b64: String,
573 #[serde(rename = "challenge_response", skip_serializing_if = "Option::is_none")]
575 pub challenge_response: Option<String>,
576}
577
578impl ApprovalRequest {
579 pub fn new(intent_hash: String, signature_b64: String, public_key_b64: String) -> ApprovalRequest {
580 ApprovalRequest {
581 intent_hash,
582 signature_b64,
583 public_key_b64,
584 challenge_response: None,
585 }
586 }
587}
588
589#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
601pub struct ApproveLaunchpadMcpToolsRequest {
602 #[serde(rename = "server_id")]
603 pub server_id: String,
604 #[serde(rename = "tools")]
605 pub tools: Vec<String>,
606 #[serde(rename = "ttl", skip_serializing_if = "Option::is_none")]
607 pub ttl: Option<String>,
608 #[serde(rename = "reason")]
609 pub reason: String,
610 #[serde(rename = "approver", skip_serializing_if = "Option::is_none")]
611 pub approver: Option<String>,
612}
613
614impl ApproveLaunchpadMcpToolsRequest {
615 pub fn new(server_id: String, tools: Vec<String>, reason: String) -> ApproveLaunchpadMcpToolsRequest {
616 ApproveLaunchpadMcpToolsRequest {
617 server_id,
618 tools,
619 ttl: None,
620 reason,
621 approver: None,
622 }
623 }
624}
625
626#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
638pub struct AssertApprovalWebAuthnChallengeRequest {
639 #[serde(rename = "challenge_id")]
640 pub challenge_id: String,
641 #[serde(rename = "actor")]
642 pub actor: String,
643 #[serde(rename = "assertion")]
644 pub assertion: String,
645 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
646 pub receipt_id: Option<String>,
647 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
648 pub reason: Option<String>,
649}
650
651impl AssertApprovalWebAuthnChallengeRequest {
652 pub fn new(challenge_id: String, actor: String, assertion: String) -> AssertApprovalWebAuthnChallengeRequest {
653 AssertApprovalWebAuthnChallengeRequest {
654 challenge_id,
655 actor,
656 assertion,
657 receipt_id: None,
658 reason: None,
659 }
660 }
661}
662
663#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
675pub struct AuthzHealth {
676 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
677 pub status: Option<String>,
678 #[serde(rename = "resolver", skip_serializing_if = "Option::is_none")]
679 pub resolver: Option<String>,
680 #[serde(rename = "model_id", skip_serializing_if = "Option::is_none")]
681 pub model_id: Option<String>,
682 #[serde(rename = "relationship_hash", skip_serializing_if = "Option::is_none")]
683 pub relationship_hash: Option<String>,
684 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
685 pub checked_at: Option<String>,
686}
687
688impl AuthzHealth {
689 pub fn new() -> AuthzHealth {
690 AuthzHealth {
691 status: None,
692 resolver: None,
693 model_id: None,
694 relationship_hash: None,
695 checked_at: None,
696 }
697 }
698}
699
700#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
712pub struct AuthzSnapshot {
713 #[serde(rename = "snapshot_id", skip_serializing_if = "Option::is_none")]
714 pub snapshot_id: Option<String>,
715 #[serde(rename = "model_id", skip_serializing_if = "Option::is_none")]
716 pub model_id: Option<String>,
717 #[serde(rename = "relationship_hash", skip_serializing_if = "Option::is_none")]
718 pub relationship_hash: Option<String>,
719 #[serde(rename = "tuple_count", skip_serializing_if = "Option::is_none")]
720 pub tuple_count: Option<i32>,
721 #[serde(rename = "resolver", skip_serializing_if = "Option::is_none")]
722 pub resolver: Option<String>,
723 #[serde(rename = "stale", skip_serializing_if = "Option::is_none")]
724 pub stale: Option<bool>,
725 #[serde(rename = "snapshot_token", skip_serializing_if = "Option::is_none")]
726 pub snapshot_token: Option<String>,
727 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
728 pub checked_at: Option<String>,
729 #[serde(rename = "snapshot_hash", skip_serializing_if = "Option::is_none")]
730 pub snapshot_hash: Option<String>,
731}
732
733impl AuthzSnapshot {
734 pub fn new() -> AuthzSnapshot {
735 AuthzSnapshot {
736 snapshot_id: None,
737 model_id: None,
738 relationship_hash: None,
739 tuple_count: None,
740 resolver: None,
741 stale: None,
742 snapshot_token: None,
743 checked_at: None,
744 snapshot_hash: None,
745 }
746 }
747}
748
749#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
761pub struct BindLaunchpadSecretGrantRequest {
762 #[serde(rename = "name")]
763 pub name: String,
764 #[serde(rename = "provider")]
765 pub provider: String,
766 #[serde(rename = "value_env")]
767 pub value_env: String,
768}
769
770impl BindLaunchpadSecretGrantRequest {
771 pub fn new(name: String, provider: String, value_env: String) -> BindLaunchpadSecretGrantRequest {
772 BindLaunchpadSecretGrantRequest {
773 name,
774 provider,
775 value_env,
776 }
777 }
778}
779
780#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
792pub struct BoundaryCapabilitySummary {
793 #[serde(rename = "capability_id", skip_serializing_if = "Option::is_none")]
794 pub capability_id: Option<String>,
795 #[serde(rename = "category", skip_serializing_if = "Option::is_none")]
796 pub category: Option<String>,
797 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
798 pub status: Option<String>,
799 #[serde(rename = "authority", skip_serializing_if = "Option::is_none")]
800 pub authority: Option<String>,
801 #[serde(rename = "public_routes", skip_serializing_if = "Option::is_none")]
802 pub public_routes: Option<Vec<String>>,
803 #[serde(rename = "cli_commands", skip_serializing_if = "Option::is_none")]
804 pub cli_commands: Option<Vec<String>>,
805 #[serde(rename = "receipt_bindings", skip_serializing_if = "Option::is_none")]
806 pub receipt_bindings: Option<Vec<String>>,
807 #[serde(rename = "conformance_level", skip_serializing_if = "Option::is_none")]
808 pub conformance_level: Option<String>,
809}
810
811impl BoundaryCapabilitySummary {
812 pub fn new() -> BoundaryCapabilitySummary {
813 BoundaryCapabilitySummary {
814 capability_id: None,
815 category: None,
816 status: None,
817 authority: None,
818 public_routes: None,
819 cli_commands: None,
820 receipt_bindings: None,
821 conformance_level: None,
822 }
823 }
824}
825
826#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
838pub struct BoundaryCheckpoint {
839 #[serde(rename = "checkpoint_id", skip_serializing_if = "Option::is_none")]
840 pub checkpoint_id: Option<String>,
841 #[serde(rename = "sequence", skip_serializing_if = "Option::is_none")]
842 pub sequence: Option<i64>,
843 #[serde(rename = "previous_checkpoint_hash", skip_serializing_if = "Option::is_none")]
844 pub previous_checkpoint_hash: Option<String>,
845 #[serde(rename = "receipt_count", skip_serializing_if = "Option::is_none")]
846 pub receipt_count: Option<i32>,
847 #[serde(rename = "record_count", skip_serializing_if = "Option::is_none")]
848 pub record_count: Option<i32>,
849 #[serde(rename = "root_hash", skip_serializing_if = "Option::is_none")]
850 pub root_hash: Option<String>,
851 #[serde(rename = "checkpoint_hash", skip_serializing_if = "Option::is_none")]
852 pub checkpoint_hash: Option<String>,
853 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
854 pub created_at: Option<String>,
855}
856
857impl BoundaryCheckpoint {
858 pub fn new() -> BoundaryCheckpoint {
859 BoundaryCheckpoint {
860 checkpoint_id: None,
861 sequence: None,
862 previous_checkpoint_hash: None,
863 receipt_count: None,
864 record_count: None,
865 root_hash: None,
866 checkpoint_hash: None,
867 created_at: None,
868 }
869 }
870}
871
872#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
884pub struct BoundaryRecordVerification {
885 #[serde(rename = "record_id", skip_serializing_if = "Option::is_none")]
886 pub record_id: Option<String>,
887 #[serde(rename = "record_hash", skip_serializing_if = "Option::is_none")]
888 pub record_hash: Option<String>,
889 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
890 pub receipt_id: Option<String>,
891 #[serde(rename = "verified", skip_serializing_if = "Option::is_none")]
892 pub verified: Option<bool>,
893 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
894 pub errors: Option<Vec<String>>,
895 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
896 pub checked_at: Option<String>,
897}
898
899impl BoundaryRecordVerification {
900 pub fn new() -> BoundaryRecordVerification {
901 BoundaryRecordVerification {
902 record_id: None,
903 record_hash: None,
904 receipt_id: None,
905 verified: None,
906 errors: None,
907 checked_at: None,
908 }
909 }
910}
911
912#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
925pub struct BoundaryStatus {
926 #[serde(rename = "status")]
927 pub status: BoundaryStatusStatus,
928 #[serde(rename = "mode")]
929 pub mode: BoundaryStatusMode,
930 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
931 pub version: Option<String>,
932 #[serde(rename = "receipt_signer")]
933 pub receipt_signer: BoundaryStatusReceiptSigner,
934 #[serde(rename = "receipt_store")]
935 pub receipt_store: BoundaryStatusReceiptStore,
936 #[serde(rename = "pdp")]
937 pub pdp: BoundaryStatusPdp,
938 #[serde(rename = "mcp_firewall")]
939 pub mcp_firewall: BoundaryStatusMcpFirewall,
940 #[serde(rename = "sandbox")]
941 pub sandbox: BoundaryStatusSandbox,
942 #[serde(rename = "authz")]
943 pub authz: BoundaryStatusAuthz,
944 #[serde(rename = "evidence_verifier")]
945 pub evidence_verifier: BoundaryStatusEvidenceVerifier,
946 #[serde(rename = "checkpoint_log")]
947 pub checkpoint_log: BoundaryStatusCheckpointLog,
948 #[serde(rename = "last_checkpoint_hash", skip_serializing_if = "Option::is_none")]
949 pub last_checkpoint_hash: Option<String>,
950 #[serde(rename = "open_approval_count")]
951 pub open_approval_count: i32,
952 #[serde(rename = "quarantined_mcp_count")]
953 pub quarantined_mcp_count: i32,
954 #[serde(rename = "updated_at")]
955 pub updated_at: String,
956 #[serde(rename = "components", skip_serializing_if = "Option::is_none")]
957 pub components: Option<std::collections::HashMap<String, String>>,
958}
959
960impl BoundaryStatus {
961 pub fn new(status: BoundaryStatusStatus, mode: BoundaryStatusMode, receipt_signer: BoundaryStatusReceiptSigner, receipt_store: BoundaryStatusReceiptStore, pdp: BoundaryStatusPdp, mcp_firewall: BoundaryStatusMcpFirewall, sandbox: BoundaryStatusSandbox, authz: BoundaryStatusAuthz, evidence_verifier: BoundaryStatusEvidenceVerifier, checkpoint_log: BoundaryStatusCheckpointLog, open_approval_count: i32, quarantined_mcp_count: i32, updated_at: String) -> BoundaryStatus {
963 BoundaryStatus {
964 status,
965 mode,
966 version: None,
967 receipt_signer,
968 receipt_store,
969 pdp,
970 mcp_firewall,
971 sandbox,
972 authz,
973 evidence_verifier,
974 checkpoint_log,
975 last_checkpoint_hash: None,
976 open_approval_count,
977 quarantined_mcp_count,
978 updated_at,
979 components: None,
980 }
981 }
982}
983#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
985pub enum BoundaryStatusStatus {
986 #[serde(rename = "degraded")]
987 Degraded,
988 #[serde(rename = "ready")]
989 Ready,
990}
991
992impl Default for BoundaryStatusStatus {
993 fn default() -> BoundaryStatusStatus {
994 Self::Degraded
995 }
996}
997#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
999pub enum BoundaryStatusMode {
1000 #[serde(rename = "oss-local")]
1001 OssLocal,
1002}
1003
1004impl Default for BoundaryStatusMode {
1005 fn default() -> BoundaryStatusMode {
1006 Self::OssLocal
1007 }
1008}
1009#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1011pub enum BoundaryStatusReceiptSigner {
1012 #[serde(rename = "unavailable")]
1013 Unavailable,
1014 #[serde(rename = "ready")]
1015 Ready,
1016}
1017
1018impl Default for BoundaryStatusReceiptSigner {
1019 fn default() -> BoundaryStatusReceiptSigner {
1020 Self::Unavailable
1021 }
1022}
1023#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1025pub enum BoundaryStatusReceiptStore {
1026 #[serde(rename = "unavailable")]
1027 Unavailable,
1028 #[serde(rename = "ready")]
1029 Ready,
1030}
1031
1032impl Default for BoundaryStatusReceiptStore {
1033 fn default() -> BoundaryStatusReceiptStore {
1034 Self::Unavailable
1035 }
1036}
1037#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1039pub enum BoundaryStatusPdp {
1040 #[serde(rename = "fail-closed")]
1041 FailClosed,
1042}
1043
1044impl Default for BoundaryStatusPdp {
1045 fn default() -> BoundaryStatusPdp {
1046 Self::FailClosed
1047 }
1048}
1049#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1051pub enum BoundaryStatusMcpFirewall {
1052 #[serde(rename = "enabled")]
1053 Enabled,
1054}
1055
1056impl Default for BoundaryStatusMcpFirewall {
1057 fn default() -> BoundaryStatusMcpFirewall {
1058 Self::Enabled
1059 }
1060}
1061#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1063pub enum BoundaryStatusSandbox {
1064 #[serde(rename = "deny-default")]
1065 DenyDefault,
1066}
1067
1068impl Default for BoundaryStatusSandbox {
1069 fn default() -> BoundaryStatusSandbox {
1070 Self::DenyDefault
1071 }
1072}
1073#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1075pub enum BoundaryStatusAuthz {
1076 #[serde(rename = "rebac-snapshot")]
1077 RebacSnapshot,
1078}
1079
1080impl Default for BoundaryStatusAuthz {
1081 fn default() -> BoundaryStatusAuthz {
1082 Self::RebacSnapshot
1083 }
1084}
1085#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1087pub enum BoundaryStatusEvidenceVerifier {
1088 #[serde(rename = "offline")]
1089 Offline,
1090}
1091
1092impl Default for BoundaryStatusEvidenceVerifier {
1093 fn default() -> BoundaryStatusEvidenceVerifier {
1094 Self::Offline
1095 }
1096}
1097#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1099pub enum BoundaryStatusCheckpointLog {
1100 #[serde(rename = "tamper-evident")]
1101 TamperEvident,
1102}
1103
1104impl Default for BoundaryStatusCheckpointLog {
1105 fn default() -> BoundaryStatusCheckpointLog {
1106 Self::TamperEvident
1107 }
1108}
1109
1110#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1122pub struct BudgetCeiling {
1123 #[serde(rename = "budget_id", skip_serializing_if = "Option::is_none")]
1124 pub budget_id: Option<String>,
1125 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
1126 pub subject: Option<String>,
1127 #[serde(rename = "window", skip_serializing_if = "Option::is_none")]
1128 pub window: Option<String>,
1129 #[serde(rename = "max_tool_calls", skip_serializing_if = "Option::is_none")]
1130 pub max_tool_calls: Option<i32>,
1131 #[serde(rename = "max_spend_minor", skip_serializing_if = "Option::is_none")]
1132 pub max_spend_minor: Option<i64>,
1133 #[serde(rename = "max_egress_bytes", skip_serializing_if = "Option::is_none")]
1134 pub max_egress_bytes: Option<i64>,
1135 #[serde(rename = "max_write_ops", skip_serializing_if = "Option::is_none")]
1136 pub max_write_ops: Option<i32>,
1137 #[serde(rename = "approval_required_after", skip_serializing_if = "Option::is_none")]
1138 pub approval_required_after: Option<i32>,
1139 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
1140 pub policy_epoch: Option<String>,
1141}
1142
1143impl BudgetCeiling {
1144 pub fn new() -> BudgetCeiling {
1145 BudgetCeiling {
1146 budget_id: None,
1147 subject: None,
1148 window: None,
1149 max_tool_calls: None,
1150 max_spend_minor: None,
1151 max_egress_bytes: None,
1152 max_write_ops: None,
1153 approval_required_after: None,
1154 policy_epoch: None,
1155 }
1156 }
1157}
1158
1159#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1171pub struct BuildStrategy {
1172 #[serde(rename = "strategy", skip_serializing_if = "Option::is_none")]
1173 pub strategy: Option<String>,
1174 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
1175 pub confidence: Option<f64>,
1176 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
1177 pub reason: Option<String>,
1178 #[serde(rename = "commands", skip_serializing_if = "Option::is_none")]
1179 pub commands: Option<Vec<Vec<String>>>,
1180 #[serde(rename = "manifest_sources", skip_serializing_if = "Option::is_none")]
1181 pub manifest_sources: Option<Vec<String>>,
1182}
1183
1184impl BuildStrategy {
1185 pub fn new() -> BuildStrategy {
1186 BuildStrategy {
1187 strategy: None,
1188 confidence: None,
1189 reason: None,
1190 commands: None,
1191 manifest_sources: None,
1192 }
1193 }
1194}
1195
1196#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1208pub struct CapabilityGraph {
1209 #[serde(rename = "capabilities", skip_serializing_if = "Option::is_none")]
1210 pub capabilities: Option<Vec<String>>,
1211 #[serde(rename = "modules", skip_serializing_if = "Option::is_none")]
1212 pub modules: Option<Vec<DetectedModule>>,
1213 #[serde(rename = "frameworks", skip_serializing_if = "Option::is_none")]
1214 pub frameworks: Option<Vec<DetectedFramework>>,
1215 #[serde(rename = "secrets", skip_serializing_if = "Option::is_none")]
1216 pub secrets: Option<Vec<SecretContract>>,
1217 #[serde(rename = "oauth", skip_serializing_if = "Option::is_none")]
1218 pub oauth: Option<Vec<OAuthRequirement>>,
1219 #[serde(rename = "ports", skip_serializing_if = "Option::is_none")]
1220 pub ports: Option<Vec<i32>>,
1221 #[serde(rename = "build_signals", skip_serializing_if = "Option::is_none")]
1222 pub build_signals: Option<Vec<String>>,
1223 #[serde(rename = "runtime_signals", skip_serializing_if = "Option::is_none")]
1224 pub runtime_signals: Option<Vec<String>>,
1225 #[serde(rename = "policy_signals", skip_serializing_if = "Option::is_none")]
1226 pub policy_signals: Option<Vec<String>>,
1227 #[serde(rename = "security_signals", skip_serializing_if = "Option::is_none")]
1228 pub security_signals: Option<Vec<String>>,
1229 #[serde(rename = "adapter_matches", skip_serializing_if = "Option::is_none")]
1230 pub adapter_matches: Option<Vec<AdapterMatch>>,
1231 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
1232 pub confidence: Option<f64>,
1233 #[serde(rename = "confidence_reason", skip_serializing_if = "Option::is_none")]
1234 pub confidence_reason: Option<String>,
1235}
1236
1237impl CapabilityGraph {
1238 pub fn new() -> CapabilityGraph {
1239 CapabilityGraph {
1240 capabilities: None,
1241 modules: None,
1242 frameworks: None,
1243 secrets: None,
1244 oauth: None,
1245 ports: None,
1246 build_signals: None,
1247 runtime_signals: None,
1248 policy_signals: None,
1249 security_signals: None,
1250 adapter_matches: None,
1251 confidence: None,
1252 confidence_reason: None,
1253 }
1254 }
1255}
1256
1257#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1269pub struct ChatCompletionRequest {
1270 #[serde(rename = "model")]
1271 pub model: String,
1272 #[serde(rename = "messages")]
1273 pub messages: Vec<ChatCompletionRequestMessagesInner>,
1274 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
1275 pub tools: Option<Vec<ChatCompletionRequestToolsInner>>,
1276 #[serde(rename = "temperature", skip_serializing_if = "Option::is_none")]
1277 pub temperature: Option<f64>,
1278 #[serde(rename = "max_tokens", skip_serializing_if = "Option::is_none")]
1279 pub max_tokens: Option<i32>,
1280 #[serde(rename = "stream", skip_serializing_if = "Option::is_none")]
1281 pub stream: Option<bool>,
1282}
1283
1284impl ChatCompletionRequest {
1285 pub fn new(model: String, messages: Vec<ChatCompletionRequestMessagesInner>) -> ChatCompletionRequest {
1286 ChatCompletionRequest {
1287 model,
1288 messages,
1289 tools: None,
1290 temperature: None,
1291 max_tokens: None,
1292 stream: None,
1293 }
1294 }
1295}
1296
1297#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1309pub struct ChatCompletionRequestMessagesInner {
1310 #[serde(rename = "role")]
1311 pub role: ChatCompletionRequestMessagesInnerRole,
1312 #[serde(rename = "content")]
1313 pub content: String,
1314 #[serde(rename = "tool_call_id", skip_serializing_if = "Option::is_none")]
1315 pub tool_call_id: Option<String>,
1316}
1317
1318impl ChatCompletionRequestMessagesInner {
1319 pub fn new(role: ChatCompletionRequestMessagesInnerRole, content: String) -> ChatCompletionRequestMessagesInner {
1320 ChatCompletionRequestMessagesInner {
1321 role,
1322 content,
1323 tool_call_id: None,
1324 }
1325 }
1326}
1327#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1329pub enum ChatCompletionRequestMessagesInnerRole {
1330 #[serde(rename = "system")]
1331 System,
1332 #[serde(rename = "user")]
1333 User,
1334 #[serde(rename = "assistant")]
1335 Assistant,
1336 #[serde(rename = "tool")]
1337 Tool,
1338}
1339
1340impl Default for ChatCompletionRequestMessagesInnerRole {
1341 fn default() -> ChatCompletionRequestMessagesInnerRole {
1342 Self::System
1343 }
1344}
1345
1346#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1358pub struct ChatCompletionRequestToolsInner {
1359 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
1360 pub r#type: Option<ChatCompletionRequestToolsInnerType>,
1361 #[serde(rename = "function", skip_serializing_if = "Option::is_none")]
1362 pub function: Option<Box<ChatCompletionRequestToolsInnerFunction>>,
1363}
1364
1365impl ChatCompletionRequestToolsInner {
1366 pub fn new() -> ChatCompletionRequestToolsInner {
1367 ChatCompletionRequestToolsInner {
1368 r#type: None,
1369 function: None,
1370 }
1371 }
1372}
1373#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1375pub enum ChatCompletionRequestToolsInnerType {
1376 #[serde(rename = "function")]
1377 Function,
1378}
1379
1380impl Default for ChatCompletionRequestToolsInnerType {
1381 fn default() -> ChatCompletionRequestToolsInnerType {
1382 Self::Function
1383 }
1384}
1385
1386#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1398pub struct ChatCompletionRequestToolsInnerFunction {
1399 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
1400 pub name: Option<String>,
1401 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
1402 pub description: Option<String>,
1403 #[serde(rename = "parameters", skip_serializing_if = "Option::is_none")]
1404 pub parameters: Option<serde_json::Value>,
1405}
1406
1407impl ChatCompletionRequestToolsInnerFunction {
1408 pub fn new() -> ChatCompletionRequestToolsInnerFunction {
1409 ChatCompletionRequestToolsInnerFunction {
1410 name: None,
1411 description: None,
1412 parameters: None,
1413 }
1414 }
1415}
1416
1417#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1429pub struct ChatCompletionResponse {
1430 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
1431 pub id: Option<String>,
1432 #[serde(rename = "object", skip_serializing_if = "Option::is_none")]
1433 pub object: Option<String>,
1434 #[serde(rename = "created", skip_serializing_if = "Option::is_none")]
1435 pub created: Option<i32>,
1436 #[serde(rename = "model", skip_serializing_if = "Option::is_none")]
1437 pub model: Option<String>,
1438 #[serde(rename = "choices", skip_serializing_if = "Option::is_none")]
1439 pub choices: Option<Vec<ChatCompletionResponseChoicesInner>>,
1440 #[serde(rename = "usage", skip_serializing_if = "Option::is_none")]
1441 pub usage: Option<Box<ChatCompletionResponseUsage>>,
1442}
1443
1444impl ChatCompletionResponse {
1445 pub fn new() -> ChatCompletionResponse {
1446 ChatCompletionResponse {
1447 id: None,
1448 object: None,
1449 created: None,
1450 model: None,
1451 choices: None,
1452 usage: None,
1453 }
1454 }
1455}
1456
1457#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1469pub struct ChatCompletionResponseChoicesInner {
1470 #[serde(rename = "index", skip_serializing_if = "Option::is_none")]
1471 pub index: Option<i32>,
1472 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
1473 pub message: Option<Box<ChatCompletionResponseChoicesInnerMessage>>,
1474 #[serde(rename = "finish_reason", skip_serializing_if = "Option::is_none")]
1475 pub finish_reason: Option<String>,
1476}
1477
1478impl ChatCompletionResponseChoicesInner {
1479 pub fn new() -> ChatCompletionResponseChoicesInner {
1480 ChatCompletionResponseChoicesInner {
1481 index: None,
1482 message: None,
1483 finish_reason: None,
1484 }
1485 }
1486}
1487
1488#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1500pub struct ChatCompletionResponseChoicesInnerMessage {
1501 #[serde(rename = "role", skip_serializing_if = "Option::is_none")]
1502 pub role: Option<String>,
1503 #[serde(rename = "content", default, skip_serializing_if = "Option::is_none")]
1504 pub content: Option<Option<String>>,
1505 #[serde(rename = "tool_calls", skip_serializing_if = "Option::is_none")]
1506 pub tool_calls: Option<Vec<ChatCompletionResponseChoicesInnerMessageToolCallsInner>>,
1507}
1508
1509impl ChatCompletionResponseChoicesInnerMessage {
1510 pub fn new() -> ChatCompletionResponseChoicesInnerMessage {
1511 ChatCompletionResponseChoicesInnerMessage {
1512 role: None,
1513 content: None,
1514 tool_calls: None,
1515 }
1516 }
1517}
1518
1519#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1531pub struct ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1532 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
1533 pub id: Option<String>,
1534 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
1535 pub r#type: Option<String>,
1536 #[serde(rename = "function", skip_serializing_if = "Option::is_none")]
1537 pub function: Option<Box<ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction>>,
1538}
1539
1540impl ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1541 pub fn new() -> ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1542 ChatCompletionResponseChoicesInnerMessageToolCallsInner {
1543 id: None,
1544 r#type: None,
1545 function: None,
1546 }
1547 }
1548}
1549
1550#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1562pub struct ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1563 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
1564 pub name: Option<String>,
1565 #[serde(rename = "arguments", skip_serializing_if = "Option::is_none")]
1566 pub arguments: Option<String>,
1567}
1568
1569impl ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1570 pub fn new() -> ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1571 ChatCompletionResponseChoicesInnerMessageToolCallsInnerFunction {
1572 name: None,
1573 arguments: None,
1574 }
1575 }
1576}
1577
1578#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1590pub struct ChatCompletionResponseUsage {
1591 #[serde(rename = "prompt_tokens", skip_serializing_if = "Option::is_none")]
1592 pub prompt_tokens: Option<i32>,
1593 #[serde(rename = "completion_tokens", skip_serializing_if = "Option::is_none")]
1594 pub completion_tokens: Option<i32>,
1595 #[serde(rename = "total_tokens", skip_serializing_if = "Option::is_none")]
1596 pub total_tokens: Option<i32>,
1597}
1598
1599impl ChatCompletionResponseUsage {
1600 pub fn new() -> ChatCompletionResponseUsage {
1601 ChatCompletionResponseUsage {
1602 prompt_tokens: None,
1603 completion_tokens: None,
1604 total_tokens: None,
1605 }
1606 }
1607}
1608
1609#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1621pub struct CoexistenceCapabilityManifest {
1622 #[serde(rename = "manifest_id", skip_serializing_if = "Option::is_none")]
1623 pub manifest_id: Option<String>,
1624 #[serde(rename = "authority", skip_serializing_if = "Option::is_none")]
1625 pub authority: Option<String>,
1626 #[serde(rename = "boundary_role", skip_serializing_if = "Option::is_none")]
1627 pub boundary_role: Option<String>,
1628 #[serde(rename = "supported_inputs", skip_serializing_if = "Option::is_none")]
1629 pub supported_inputs: Option<Vec<String>>,
1630 #[serde(rename = "export_surfaces", skip_serializing_if = "Option::is_none")]
1631 pub export_surfaces: Option<Vec<String>>,
1632 #[serde(rename = "receipt_bindings", skip_serializing_if = "Option::is_none")]
1633 pub receipt_bindings: Option<Vec<String>>,
1634 #[serde(rename = "generated_at", skip_serializing_if = "Option::is_none")]
1635 pub generated_at: Option<String>,
1636}
1637
1638impl CoexistenceCapabilityManifest {
1639 pub fn new() -> CoexistenceCapabilityManifest {
1640 CoexistenceCapabilityManifest {
1641 manifest_id: None,
1642 authority: None,
1643 boundary_role: None,
1644 supported_inputs: None,
1645 export_surfaces: None,
1646 receipt_bindings: None,
1647 generated_at: None,
1648 }
1649 }
1650}
1651
1652#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1664pub struct ConformanceRequest {
1665 #[serde(rename = "level")]
1666 pub level: ConformanceRequestLevel,
1667 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
1668 pub profile: Option<String>,
1669}
1670
1671impl ConformanceRequest {
1672 pub fn new(level: ConformanceRequestLevel) -> ConformanceRequest {
1673 ConformanceRequest {
1674 level,
1675 profile: None,
1676 }
1677 }
1678}
1679#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1681pub enum ConformanceRequestLevel {
1682 #[serde(rename = "L1")]
1683 L1,
1684 #[serde(rename = "L2")]
1685 L2,
1686}
1687
1688impl Default for ConformanceRequestLevel {
1689 fn default() -> ConformanceRequestLevel {
1690 Self::L1
1691 }
1692}
1693
1694#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1706pub struct ConformanceResult {
1707 #[serde(rename = "report_id", skip_serializing_if = "Option::is_none")]
1708 pub report_id: Option<String>,
1709 #[serde(rename = "level", skip_serializing_if = "Option::is_none")]
1710 pub level: Option<String>,
1711 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
1712 pub verdict: Option<ConformanceResultVerdict>,
1713 #[serde(rename = "gates", skip_serializing_if = "Option::is_none")]
1714 pub gates: Option<i32>,
1715 #[serde(rename = "failed", skip_serializing_if = "Option::is_none")]
1716 pub failed: Option<i32>,
1717 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
1718 pub details: Option<std::collections::HashMap<String, String>>,
1719}
1720
1721impl ConformanceResult {
1722 pub fn new() -> ConformanceResult {
1723 ConformanceResult {
1724 report_id: None,
1725 level: None,
1726 verdict: None,
1727 gates: None,
1728 failed: None,
1729 details: None,
1730 }
1731 }
1732}
1733#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
1735pub enum ConformanceResultVerdict {
1736 #[serde(rename = "PASS")]
1737 Pass,
1738 #[serde(rename = "FAIL")]
1739 Fail,
1740}
1741
1742impl Default for ConformanceResultVerdict {
1743 fn default() -> ConformanceResultVerdict {
1744 Self::Pass
1745 }
1746}
1747
1748#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1760pub struct ConsoleBootstrap {
1761 #[serde(rename = "version")]
1762 pub version: Box<VersionInfo>,
1763 #[serde(rename = "workspace")]
1764 pub workspace: Box<ConsoleBootstrapWorkspace>,
1765 #[serde(rename = "health")]
1766 pub health: Box<ConsoleBootstrapHealth>,
1767 #[serde(rename = "counts")]
1768 pub counts: Box<ConsoleBootstrapCounts>,
1769 #[serde(rename = "receipts")]
1770 pub receipts: Vec<Receipt>,
1771 #[serde(rename = "conformance")]
1772 pub conformance: Box<ConsoleBootstrapConformance>,
1773 #[serde(rename = "mcp")]
1774 pub mcp: Box<ConsoleBootstrapMcp>,
1775}
1776
1777impl ConsoleBootstrap {
1778 pub fn new(version: VersionInfo, workspace: ConsoleBootstrapWorkspace, health: ConsoleBootstrapHealth, counts: ConsoleBootstrapCounts, receipts: Vec<Receipt>, conformance: ConsoleBootstrapConformance, mcp: ConsoleBootstrapMcp) -> ConsoleBootstrap {
1779 ConsoleBootstrap {
1780 version: Box::new(version),
1781 workspace: Box::new(workspace),
1782 health: Box::new(health),
1783 counts: Box::new(counts),
1784 receipts,
1785 conformance: Box::new(conformance),
1786 mcp: Box::new(mcp),
1787 }
1788 }
1789}
1790
1791#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1803pub struct ConsoleBootstrapConformance {
1804 #[serde(rename = "level")]
1805 pub level: String,
1806 #[serde(rename = "status")]
1807 pub status: String,
1808 #[serde(rename = "report_id", skip_serializing_if = "Option::is_none")]
1809 pub report_id: Option<String>,
1810}
1811
1812impl ConsoleBootstrapConformance {
1813 pub fn new(level: String, status: String) -> ConsoleBootstrapConformance {
1814 ConsoleBootstrapConformance {
1815 level,
1816 status,
1817 report_id: None,
1818 }
1819 }
1820}
1821
1822#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1834pub struct ConsoleBootstrapCounts {
1835 #[serde(rename = "receipts")]
1836 pub receipts: i32,
1837 #[serde(rename = "pending_approvals")]
1838 pub pending_approvals: i32,
1839 #[serde(rename = "open_incidents")]
1840 pub open_incidents: i32,
1841 #[serde(rename = "mcp_tools")]
1842 pub mcp_tools: i32,
1843}
1844
1845impl ConsoleBootstrapCounts {
1846 pub fn new(receipts: i32, pending_approvals: i32, open_incidents: i32, mcp_tools: i32) -> ConsoleBootstrapCounts {
1847 ConsoleBootstrapCounts {
1848 receipts,
1849 pending_approvals,
1850 open_incidents,
1851 mcp_tools,
1852 }
1853 }
1854}
1855
1856#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1868pub struct ConsoleBootstrapHealth {
1869 #[serde(rename = "kernel")]
1870 pub kernel: String,
1871 #[serde(rename = "policy")]
1872 pub policy: String,
1873 #[serde(rename = "store")]
1874 pub store: String,
1875 #[serde(rename = "conformance")]
1876 pub conformance: String,
1877}
1878
1879impl ConsoleBootstrapHealth {
1880 pub fn new(kernel: String, policy: String, store: String, conformance: String) -> ConsoleBootstrapHealth {
1881 ConsoleBootstrapHealth {
1882 kernel,
1883 policy,
1884 store,
1885 conformance,
1886 }
1887 }
1888}
1889
1890#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1902pub struct ConsoleBootstrapMcp {
1903 #[serde(rename = "authorization")]
1904 pub authorization: String,
1905 #[serde(rename = "scopes")]
1906 pub scopes: Vec<String>,
1907}
1908
1909impl ConsoleBootstrapMcp {
1910 pub fn new(authorization: String, scopes: Vec<String>) -> ConsoleBootstrapMcp {
1911 ConsoleBootstrapMcp {
1912 authorization,
1913 scopes,
1914 }
1915 }
1916}
1917
1918#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1930pub struct ConsoleBootstrapWorkspace {
1931 #[serde(rename = "organization")]
1932 pub organization: String,
1933 #[serde(rename = "project")]
1934 pub project: String,
1935 #[serde(rename = "environment")]
1936 pub environment: String,
1937 #[serde(rename = "mode")]
1938 pub mode: String,
1939}
1940
1941impl ConsoleBootstrapWorkspace {
1942 pub fn new(organization: String, project: String, environment: String, mode: String) -> ConsoleBootstrapWorkspace {
1943 ConsoleBootstrapWorkspace {
1944 organization,
1945 project,
1946 environment,
1947 mode,
1948 }
1949 }
1950}
1951
1952#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1964pub struct ConsoleCapabilities {
1965 #[serde(rename = "entitlements")]
1966 pub entitlements: Vec<String>,
1967 #[serde(rename = "version")]
1968 pub version: String,
1969 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
1970 pub source: Option<String>,
1971 #[serde(rename = "tier_gate", skip_serializing_if = "Option::is_none")]
1972 pub tier_gate: Option<String>,
1973}
1974
1975impl ConsoleCapabilities {
1976 pub fn new(entitlements: Vec<String>, version: String) -> ConsoleCapabilities {
1977 ConsoleCapabilities {
1978 entitlements,
1979 version,
1980 source: None,
1981 tier_gate: None,
1982 }
1983 }
1984}
1985
1986#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
1998pub struct ConsoleDiagnostics {
1999 #[serde(rename = "generated_at")]
2000 pub generated_at: String,
2001 #[serde(rename = "runtime")]
2002 pub runtime: std::collections::HashMap<String, serde_json::Value>,
2003 #[serde(rename = "access")]
2004 pub access: std::collections::HashMap<String, serde_json::Value>,
2005 #[serde(rename = "stores")]
2006 pub stores: Vec<ConsoleStoreDiagnostic>,
2007 #[serde(rename = "routes")]
2008 pub routes: Vec<ConsoleRouteDiagnostic>,
2009}
2010
2011impl ConsoleDiagnostics {
2012 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 {
2013 ConsoleDiagnostics {
2014 generated_at,
2015 runtime,
2016 access,
2017 stores,
2018 routes,
2019 }
2020 }
2021}
2022
2023#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2035pub struct ConsoleRouteDiagnostic {
2036 #[serde(rename = "method")]
2037 pub method: String,
2038 #[serde(rename = "path")]
2039 pub path: String,
2040 #[serde(rename = "mux_pattern", skip_serializing_if = "Option::is_none")]
2041 pub mux_pattern: Option<String>,
2042 #[serde(rename = "auth")]
2043 pub auth: String,
2044 #[serde(rename = "rate_limit", skip_serializing_if = "Option::is_none")]
2045 pub rate_limit: Option<String>,
2046 #[serde(rename = "contract_status")]
2047 pub contract_status: String,
2048 #[serde(rename = "operation_id")]
2049 pub operation_id: String,
2050 #[serde(rename = "owner")]
2051 pub owner: String,
2052 #[serde(rename = "group")]
2053 pub group: String,
2054 #[serde(rename = "ui_coverage", skip_serializing_if = "Option::is_none")]
2055 pub ui_coverage: Option<String>,
2056 #[serde(rename = "unsupported_reason", skip_serializing_if = "Option::is_none")]
2057 pub unsupported_reason: Option<String>,
2058}
2059
2060impl ConsoleRouteDiagnostic {
2061 pub fn new(method: String, path: String, auth: String, contract_status: String, operation_id: String, owner: String, group: String) -> ConsoleRouteDiagnostic {
2062 ConsoleRouteDiagnostic {
2063 method,
2064 path,
2065 mux_pattern: None,
2066 auth,
2067 rate_limit: None,
2068 contract_status,
2069 operation_id,
2070 owner,
2071 group,
2072 ui_coverage: None,
2073 unsupported_reason: None,
2074 }
2075 }
2076}
2077
2078#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2090pub struct ConsoleStoreDiagnostic {
2091 #[serde(rename = "id")]
2092 pub id: String,
2093 #[serde(rename = "label")]
2094 pub label: String,
2095 #[serde(rename = "status")]
2096 pub status: String,
2097 #[serde(rename = "backend")]
2098 pub backend: String,
2099 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
2100 pub source: Option<String>,
2101 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
2102 pub path: Option<String>,
2103 #[serde(rename = "detail", skip_serializing_if = "Option::is_none")]
2104 pub detail: Option<String>,
2105}
2106
2107impl ConsoleStoreDiagnostic {
2108 pub fn new(id: String, label: String, status: String, backend: String) -> ConsoleStoreDiagnostic {
2109 ConsoleStoreDiagnostic {
2110 id,
2111 label,
2112 status,
2113 backend,
2114 source: None,
2115 path: None,
2116 detail: None,
2117 }
2118 }
2119}
2120
2121#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2133pub struct ConsoleSurfaceRef {
2134 #[serde(rename = "id")]
2135 pub id: String,
2136 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
2137 pub label: Option<String>,
2138 #[serde(rename = "group", skip_serializing_if = "Option::is_none")]
2139 pub group: Option<String>,
2140 #[serde(rename = "source")]
2141 pub source: String,
2142 #[serde(rename = "auth", skip_serializing_if = "Option::is_none")]
2143 pub auth: Option<String>,
2144 #[serde(rename = "contract_status", skip_serializing_if = "Option::is_none")]
2145 pub contract_status: Option<String>,
2146 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
2147 pub status: Option<String>,
2148 #[serde(rename = "unsupported_reason", skip_serializing_if = "Option::is_none")]
2149 pub unsupported_reason: Option<String>,
2150 #[serde(rename = "routes", skip_serializing_if = "Option::is_none")]
2151 pub routes: Option<Vec<ConsoleRouteDiagnostic>>,
2152}
2153
2154impl ConsoleSurfaceRef {
2155 pub fn new(id: String, source: String) -> ConsoleSurfaceRef {
2156 ConsoleSurfaceRef {
2157 id,
2158 label: None,
2159 group: None,
2160 source,
2161 auth: None,
2162 contract_status: None,
2163 status: None,
2164 unsupported_reason: None,
2165 routes: None,
2166 }
2167 }
2168}
2169
2170#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2182pub struct ConsoleSurfaceState {
2183 #[serde(rename = "id")]
2184 pub id: String,
2185 #[serde(rename = "status")]
2186 pub status: String,
2187 #[serde(rename = "source")]
2188 pub source: String,
2189 #[serde(rename = "generated_at")]
2190 pub generated_at: String,
2191 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
2192 pub summary: Option<std::collections::HashMap<String, serde_json::Value>>,
2193 #[serde(rename = "records", skip_serializing_if = "Option::is_none")]
2194 pub records: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
2195}
2196
2197impl ConsoleSurfaceState {
2198 pub fn new(id: String, status: String, source: String, generated_at: String) -> ConsoleSurfaceState {
2199 ConsoleSurfaceState {
2200 id,
2201 status,
2202 source,
2203 generated_at,
2204 summary: None,
2205 records: None,
2206 }
2207 }
2208}
2209
2210#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2222pub struct CreateApprovalWebAuthnChallengeRequest {
2223 #[serde(rename = "method", skip_serializing_if = "Option::is_none")]
2224 pub method: Option<String>,
2225 #[serde(rename = "ttl_ms", skip_serializing_if = "Option::is_none")]
2226 pub ttl_ms: Option<i32>,
2227}
2228
2229impl CreateApprovalWebAuthnChallengeRequest {
2230 pub fn new() -> CreateApprovalWebAuthnChallengeRequest {
2231 CreateApprovalWebAuthnChallengeRequest {
2232 method: None,
2233 ttl_ms: None,
2234 }
2235 }
2236}
2237
2238#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2250pub struct CreateLaunchpadImport202Response {
2251 #[serde(rename = "import")]
2252 pub import: Box<LaunchpadImportRecord>,
2253 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
2254 pub cli_equivalent: Option<String>,
2255}
2256
2257impl CreateLaunchpadImport202Response {
2258 pub fn new(import: LaunchpadImportRecord) -> CreateLaunchpadImport202Response {
2259 CreateLaunchpadImport202Response {
2260 import: Box::new(import),
2261 cli_equivalent: None,
2262 }
2263 }
2264}
2265
2266#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2278pub struct CreateSandboxGrantRequest {
2279 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
2280 pub runtime: Option<String>,
2281 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
2282 pub profile: Option<String>,
2283 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
2284 pub image_digest: Option<String>,
2285 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
2286 pub policy_epoch: Option<String>,
2287}
2288
2289impl CreateSandboxGrantRequest {
2290 pub fn new() -> CreateSandboxGrantRequest {
2291 CreateSandboxGrantRequest {
2292 runtime: None,
2293 profile: None,
2294 image_digest: None,
2295 policy_epoch: None,
2296 }
2297 }
2298}
2299
2300#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2312pub struct DecisionRecord {
2313 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
2314 pub id: Option<String>,
2315 #[serde(rename = "action", skip_serializing_if = "Option::is_none")]
2316 pub action: Option<String>,
2317 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
2318 pub resource: Option<String>,
2319 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
2320 pub verdict: Option<String>,
2321 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
2322 pub reason: Option<String>,
2323 #[serde(rename = "policy_version", skip_serializing_if = "Option::is_none")]
2324 pub policy_version: Option<String>,
2325 #[serde(rename = "policy_decision_hash", skip_serializing_if = "Option::is_none")]
2326 pub policy_decision_hash: Option<String>,
2327 #[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
2328 pub signature: Option<String>,
2329}
2330
2331impl DecisionRecord {
2332 pub fn new() -> DecisionRecord {
2333 DecisionRecord {
2334 id: None,
2335 action: None,
2336 resource: None,
2337 verdict: None,
2338 reason: None,
2339 policy_version: None,
2340 policy_decision_hash: None,
2341 signature: None,
2342 }
2343 }
2344}
2345
2346#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2358pub struct DecisionRequest {
2359 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
2360 pub principal: Option<String>,
2361 #[serde(rename = "action")]
2362 pub action: String,
2363 #[serde(rename = "resource")]
2364 pub resource: String,
2365 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
2366 pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
2367}
2368
2369impl DecisionRequest {
2370 pub fn new(action: String, resource: String) -> DecisionRequest {
2371 DecisionRequest {
2372 principal: None,
2373 action,
2374 resource,
2375 context: None,
2376 }
2377 }
2378}
2379
2380#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2392pub struct DetectedFramework {
2393 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
2394 pub id: Option<String>,
2395 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
2396 pub name: Option<String>,
2397 #[serde(rename = "confidence", skip_serializing_if = "Option::is_none")]
2398 pub confidence: Option<f64>,
2399 #[serde(rename = "evidence", skip_serializing_if = "Option::is_none")]
2400 pub evidence: Option<Vec<String>>,
2401}
2402
2403impl DetectedFramework {
2404 pub fn new() -> DetectedFramework {
2405 DetectedFramework {
2406 id: None,
2407 name: None,
2408 confidence: None,
2409 evidence: None,
2410 }
2411 }
2412}
2413
2414#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2426pub struct DetectedModule {
2427 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
2428 pub path: Option<String>,
2429 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
2430 pub kind: Option<String>,
2431 #[serde(rename = "manifests", skip_serializing_if = "Option::is_none")]
2432 pub manifests: Option<Vec<String>>,
2433 #[serde(rename = "entrypoints", skip_serializing_if = "Option::is_none")]
2434 pub entrypoints: Option<Vec<String>>,
2435 #[serde(rename = "build_strategy", skip_serializing_if = "Option::is_none")]
2436 pub build_strategy: Option<String>,
2437}
2438
2439impl DetectedModule {
2440 pub fn new() -> DetectedModule {
2441 DetectedModule {
2442 path: None,
2443 kind: None,
2444 manifests: None,
2445 entrypoints: None,
2446 build_strategy: None,
2447 }
2448 }
2449}
2450
2451#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2464pub struct Effect {
2465 #[serde(rename = "effect_type")]
2467 pub effect_type: String,
2468 #[serde(rename = "effect_id")]
2470 pub effect_id: String,
2471 #[serde(rename = "params")]
2473 pub params: std::collections::HashMap<String, serde_json::Value>,
2474 #[serde(rename = "budget_id", skip_serializing_if = "Option::is_none")]
2476 pub budget_id: Option<String>,
2477}
2478
2479impl Effect {
2480 pub fn new(effect_type: String, effect_id: String, params: std::collections::HashMap<String, serde_json::Value>) -> Effect {
2482 Effect {
2483 effect_type,
2484 effect_id,
2485 params,
2486 budget_id: None,
2487 }
2488 }
2489}
2490
2491#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2504pub struct EffectBoundary {
2505 #[serde(rename = "effect")]
2506 pub effect: Box<Effect>,
2507 #[serde(rename = "principal")]
2509 pub principal: String,
2510 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
2512 pub context: Option<std::collections::HashMap<String, serde_json::Value>>,
2513}
2514
2515impl EffectBoundary {
2516 pub fn new(effect: Effect, principal: String) -> EffectBoundary {
2518 EffectBoundary {
2519 effect: Box::new(effect),
2520 principal,
2521 context: None,
2522 }
2523 }
2524}
2525
2526#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2538pub struct EntitlementCapabilities {
2539 #[serde(rename = "demo_launch", skip_serializing_if = "Option::is_none")]
2540 pub demo_launch: Option<bool>,
2541 #[serde(rename = "local_launch", skip_serializing_if = "Option::is_none")]
2542 pub local_launch: Option<bool>,
2543 #[serde(rename = "cloud_launch", skip_serializing_if = "Option::is_none")]
2544 pub cloud_launch: Option<bool>,
2545 #[serde(rename = "custom_policy", skip_serializing_if = "Option::is_none")]
2546 pub custom_policy: Option<bool>,
2547 #[serde(rename = "bring_own_secrets", skip_serializing_if = "Option::is_none")]
2548 pub bring_own_secrets: Option<bool>,
2549 #[serde(rename = "evidence_export", skip_serializing_if = "Option::is_none")]
2550 pub evidence_export: Option<bool>,
2551 #[serde(rename = "offline_verify", skip_serializing_if = "Option::is_none")]
2552 pub offline_verify: Option<bool>,
2553 #[serde(rename = "team_admin", skip_serializing_if = "Option::is_none")]
2554 pub team_admin: Option<bool>,
2555 #[serde(rename = "sso", skip_serializing_if = "Option::is_none")]
2556 pub sso: Option<bool>,
2557 #[serde(rename = "legal_hold", skip_serializing_if = "Option::is_none")]
2558 pub legal_hold: Option<bool>,
2559 #[serde(rename = "certified_connectors", skip_serializing_if = "Option::is_none")]
2560 pub certified_connectors: Option<bool>,
2561 #[serde(rename = "enterprise_retention", skip_serializing_if = "Option::is_none")]
2562 pub enterprise_retention: Option<bool>,
2563}
2564
2565impl EntitlementCapabilities {
2566 pub fn new() -> EntitlementCapabilities {
2567 EntitlementCapabilities {
2568 demo_launch: None,
2569 local_launch: None,
2570 cloud_launch: None,
2571 custom_policy: None,
2572 bring_own_secrets: None,
2573 evidence_export: None,
2574 offline_verify: None,
2575 team_admin: None,
2576 sso: None,
2577 legal_hold: None,
2578 certified_connectors: None,
2579 enterprise_retention: None,
2580 }
2581 }
2582}
2583
2584#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2596pub struct EntitlementDecision {
2597 #[serde(rename = "allowed", skip_serializing_if = "Option::is_none")]
2598 pub allowed: Option<bool>,
2599 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
2600 pub user_state: Option<EntitlementDecisionUserState>,
2601 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
2602 pub required_capability: Option<String>,
2603 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
2604 pub reason_code: Option<String>,
2605 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
2606 pub reason: Option<String>,
2607 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
2608 pub upgrade_reason: Option<String>,
2609 #[serde(rename = "limit", skip_serializing_if = "Option::is_none")]
2610 pub limit: Option<i64>,
2611 #[serde(rename = "used", skip_serializing_if = "Option::is_none")]
2612 pub used: Option<i64>,
2613 #[serde(rename = "remaining", skip_serializing_if = "Option::is_none")]
2614 pub remaining: Option<i64>,
2615 #[serde(rename = "decision_ref", skip_serializing_if = "Option::is_none")]
2616 pub decision_ref: Option<String>,
2617 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
2618 pub source: Option<String>,
2619 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
2620 pub expires_at: Option<String>,
2621}
2622
2623impl EntitlementDecision {
2624 pub fn new() -> EntitlementDecision {
2625 EntitlementDecision {
2626 allowed: None,
2627 user_state: None,
2628 required_capability: None,
2629 reason_code: None,
2630 reason: None,
2631 upgrade_reason: None,
2632 limit: None,
2633 used: None,
2634 remaining: None,
2635 decision_ref: None,
2636 source: None,
2637 expires_at: None,
2638 }
2639 }
2640}
2641#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2643pub enum EntitlementDecisionUserState {
2644 #[serde(rename = "available")]
2645 Available,
2646 #[serde(rename = "needs_setup")]
2647 NeedsSetup,
2648 #[serde(rename = "upgrade_required")]
2649 UpgradeRequired,
2650 #[serde(rename = "enterprise_controlled")]
2651 EnterpriseControlled,
2652 #[serde(rename = "blocked")]
2653 Blocked,
2654 #[serde(rename = "unsupported")]
2655 Unsupported,
2656}
2657
2658impl Default for EntitlementDecisionUserState {
2659 fn default() -> EntitlementDecisionUserState {
2660 Self::Available
2661 }
2662}
2663
2664#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2676pub struct EntitlementDecisionRequest {
2677 #[serde(rename = "principal_id", skip_serializing_if = "Option::is_none")]
2678 pub principal_id: Option<String>,
2679 #[serde(rename = "tenant_id", skip_serializing_if = "Option::is_none")]
2680 pub tenant_id: Option<String>,
2681 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
2682 pub workspace_id: Option<String>,
2683 #[serde(rename = "action")]
2684 pub action: String,
2685 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
2686 pub app_id: Option<String>,
2687 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
2688 pub substrate_id: Option<String>,
2689 #[serde(rename = "target", skip_serializing_if = "Option::is_none")]
2690 pub target: Option<String>,
2691 #[serde(rename = "current_usage", skip_serializing_if = "Option::is_none")]
2692 pub current_usage: Option<Box<EntitlementDecisionRequestCurrentUsage>>,
2693 #[serde(rename = "run_id", skip_serializing_if = "Option::is_none")]
2694 pub run_id: Option<String>,
2695}
2696
2697impl EntitlementDecisionRequest {
2698 pub fn new(action: String) -> EntitlementDecisionRequest {
2699 EntitlementDecisionRequest {
2700 principal_id: None,
2701 tenant_id: None,
2702 workspace_id: None,
2703 action,
2704 app_id: None,
2705 substrate_id: None,
2706 target: None,
2707 current_usage: None,
2708 run_id: None,
2709 }
2710 }
2711}
2712
2713#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2725pub struct EntitlementDecisionRequestCurrentUsage {
2726 #[serde(rename = "monthly_launches", default, skip_serializing_if = "Option::is_none")]
2727 pub monthly_launches: Option<Option<serde_json::Value>>,
2728 #[serde(rename = "concurrent_runs", default, skip_serializing_if = "Option::is_none")]
2729 pub concurrent_runs: Option<Option<serde_json::Value>>,
2730 #[serde(rename = "cloud_targets", default, skip_serializing_if = "Option::is_none")]
2731 pub cloud_targets: Option<Option<serde_json::Value>>,
2732}
2733
2734impl EntitlementDecisionRequestCurrentUsage {
2735 pub fn new() -> EntitlementDecisionRequestCurrentUsage {
2736 EntitlementDecisionRequestCurrentUsage {
2737 monthly_launches: None,
2738 concurrent_runs: None,
2739 cloud_targets: None,
2740 }
2741 }
2742}
2743
2744#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2756pub struct EntitlementLimits {
2757 #[serde(rename = "monthly_launches", default, skip_serializing_if = "Option::is_none")]
2758 pub monthly_launches: Option<Option<serde_json::Value>>,
2759 #[serde(rename = "concurrent_runs", default, skip_serializing_if = "Option::is_none")]
2760 pub concurrent_runs: Option<Option<serde_json::Value>>,
2761 #[serde(rename = "retention_days", default, skip_serializing_if = "Option::is_none")]
2762 pub retention_days: Option<Option<serde_json::Value>>,
2763 #[serde(rename = "max_cloud_targets", default, skip_serializing_if = "Option::is_none")]
2764 pub max_cloud_targets: Option<Option<serde_json::Value>>,
2765 #[serde(rename = "evidence_export_mb", default, skip_serializing_if = "Option::is_none")]
2766 pub evidence_export_mb: Option<Option<serde_json::Value>>,
2767 #[serde(rename = "connector_certification_scope", skip_serializing_if = "Option::is_none")]
2768 pub connector_certification_scope: Option<String>,
2769}
2770
2771impl EntitlementLimits {
2772 pub fn new() -> EntitlementLimits {
2773 EntitlementLimits {
2774 monthly_launches: None,
2775 concurrent_runs: None,
2776 retention_days: None,
2777 max_cloud_targets: None,
2778 evidence_export_mb: None,
2779 connector_certification_scope: None,
2780 }
2781 }
2782}
2783
2784#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2796pub struct EnvExposurePolicy {
2797 #[serde(rename = "mode")]
2798 pub mode: EnvExposurePolicyMode,
2799 #[serde(rename = "names", skip_serializing_if = "Option::is_none")]
2800 pub names: Option<Vec<String>>,
2801 #[serde(rename = "names_hash", skip_serializing_if = "Option::is_none")]
2802 pub names_hash: Option<String>,
2803 #[serde(rename = "redacted", skip_serializing_if = "Option::is_none")]
2804 pub redacted: Option<bool>,
2805}
2806
2807impl EnvExposurePolicy {
2808 pub fn new(mode: EnvExposurePolicyMode) -> EnvExposurePolicy {
2809 EnvExposurePolicy {
2810 mode,
2811 names: None,
2812 names_hash: None,
2813 redacted: None,
2814 }
2815 }
2816}
2817#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2819pub enum EnvExposurePolicyMode {
2820 #[serde(rename = "deny-all")]
2821 DenyAll,
2822 #[serde(rename = "allowlist")]
2823 Allowlist,
2824 #[serde(rename = "redacted")]
2825 Redacted,
2826}
2827
2828impl Default for EnvExposurePolicyMode {
2829 fn default() -> EnvExposurePolicyMode {
2830 Self::DenyAll
2831 }
2832}
2833
2834#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2846pub struct EvidenceEnvelopeExportRequest {
2847 #[serde(rename = "manifest_id")]
2848 pub manifest_id: String,
2849 #[serde(rename = "envelope")]
2850 pub envelope: EvidenceEnvelopeExportRequestEnvelope,
2851 #[serde(rename = "native_evidence_hash")]
2853 pub native_evidence_hash: String,
2854 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
2855 pub subject: Option<String>,
2856 #[serde(rename = "experimental", skip_serializing_if = "Option::is_none")]
2858 pub experimental: Option<bool>,
2859}
2860
2861impl EvidenceEnvelopeExportRequest {
2862 pub fn new(manifest_id: String, envelope: EvidenceEnvelopeExportRequestEnvelope, native_evidence_hash: String) -> EvidenceEnvelopeExportRequest {
2863 EvidenceEnvelopeExportRequest {
2864 manifest_id,
2865 envelope,
2866 native_evidence_hash,
2867 subject: None,
2868 experimental: None,
2869 }
2870 }
2871}
2872#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2874pub enum EvidenceEnvelopeExportRequestEnvelope {
2875 #[serde(rename = "dsse")]
2876 Dsse,
2877 #[serde(rename = "jws")]
2878 Jws,
2879 #[serde(rename = "in-toto")]
2880 InToto,
2881 #[serde(rename = "slsa")]
2882 Slsa,
2883 #[serde(rename = "sigstore")]
2884 Sigstore,
2885 #[serde(rename = "scitt")]
2886 Scitt,
2887 #[serde(rename = "cose")]
2888 Cose,
2889}
2890
2891impl Default for EvidenceEnvelopeExportRequestEnvelope {
2892 fn default() -> EvidenceEnvelopeExportRequestEnvelope {
2893 Self::Dsse
2894 }
2895}
2896
2897#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2909pub struct EvidenceEnvelopeManifest {
2910 #[serde(rename = "manifest_id")]
2911 pub manifest_id: String,
2912 #[serde(rename = "envelope")]
2913 pub envelope: EvidenceEnvelopeManifestEnvelope,
2914 #[serde(rename = "native_evidence_hash")]
2915 pub native_evidence_hash: String,
2916 #[serde(rename = "native_authority")]
2917 pub native_authority: bool,
2918 #[serde(rename = "subject", skip_serializing_if = "Option::is_none")]
2919 pub subject: Option<String>,
2920 #[serde(rename = "statement_hash", skip_serializing_if = "Option::is_none")]
2921 pub statement_hash: Option<String>,
2922 #[serde(rename = "experimental", skip_serializing_if = "Option::is_none")]
2923 pub experimental: Option<bool>,
2924 #[serde(rename = "created_at")]
2925 pub created_at: String,
2926 #[serde(rename = "manifest_hash", skip_serializing_if = "Option::is_none")]
2927 pub manifest_hash: Option<String>,
2928}
2929
2930impl EvidenceEnvelopeManifest {
2931 pub fn new(manifest_id: String, envelope: EvidenceEnvelopeManifestEnvelope, native_evidence_hash: String, native_authority: bool, created_at: String) -> EvidenceEnvelopeManifest {
2932 EvidenceEnvelopeManifest {
2933 manifest_id,
2934 envelope,
2935 native_evidence_hash,
2936 native_authority,
2937 subject: None,
2938 statement_hash: None,
2939 experimental: None,
2940 created_at,
2941 manifest_hash: None,
2942 }
2943 }
2944}
2945#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
2947pub enum EvidenceEnvelopeManifestEnvelope {
2948 #[serde(rename = "dsse")]
2949 Dsse,
2950 #[serde(rename = "jws")]
2951 Jws,
2952 #[serde(rename = "in-toto")]
2953 InToto,
2954 #[serde(rename = "slsa")]
2955 Slsa,
2956 #[serde(rename = "sigstore")]
2957 Sigstore,
2958 #[serde(rename = "scitt")]
2959 Scitt,
2960 #[serde(rename = "cose")]
2961 Cose,
2962}
2963
2964impl Default for EvidenceEnvelopeManifestEnvelope {
2965 fn default() -> EvidenceEnvelopeManifestEnvelope {
2966 Self::Dsse
2967 }
2968}
2969
2970#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
2982pub struct EvidenceEnvelopeVerification {
2983 #[serde(rename = "manifest_id", skip_serializing_if = "Option::is_none")]
2984 pub manifest_id: Option<String>,
2985 #[serde(rename = "manifest_hash", skip_serializing_if = "Option::is_none")]
2986 pub manifest_hash: Option<String>,
2987 #[serde(rename = "native_evidence_hash", skip_serializing_if = "Option::is_none")]
2988 pub native_evidence_hash: Option<String>,
2989 #[serde(rename = "verified", skip_serializing_if = "Option::is_none")]
2990 pub verified: Option<bool>,
2991 #[serde(rename = "authoritative", skip_serializing_if = "Option::is_none")]
2992 pub authoritative: Option<bool>,
2993 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
2994 pub errors: Option<Vec<String>>,
2995 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
2996 pub checked_at: Option<String>,
2997}
2998
2999impl EvidenceEnvelopeVerification {
3000 pub fn new() -> EvidenceEnvelopeVerification {
3001 EvidenceEnvelopeVerification {
3002 manifest_id: None,
3003 manifest_hash: None,
3004 native_evidence_hash: None,
3005 verified: None,
3006 authoritative: None,
3007 errors: None,
3008 checked_at: None,
3009 }
3010 }
3011}
3012
3013#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3025pub struct ExecutionBoundaryRecord {
3026 #[serde(rename = "record_id", skip_serializing_if = "Option::is_none")]
3027 pub record_id: Option<String>,
3028 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
3029 pub verdict: Option<ExecutionBoundaryRecordVerdict>,
3030 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
3031 pub reason_code: Option<String>,
3032 #[serde(rename = "tool_name", skip_serializing_if = "Option::is_none")]
3033 pub tool_name: Option<String>,
3034 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
3035 pub args_hash: Option<String>,
3036 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
3037 pub policy_epoch: Option<String>,
3038 #[serde(rename = "mcp_server_id", skip_serializing_if = "Option::is_none")]
3039 pub mcp_server_id: Option<String>,
3040 #[serde(rename = "oauth_resource", skip_serializing_if = "Option::is_none")]
3041 pub oauth_resource: Option<String>,
3042 #[serde(rename = "oauth_scopes", skip_serializing_if = "Option::is_none")]
3043 pub oauth_scopes: Option<Vec<String>>,
3044 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3045 pub sandbox_grant_hash: Option<String>,
3046 #[serde(rename = "authz_snapshot_hash", skip_serializing_if = "Option::is_none")]
3047 pub authz_snapshot_hash: Option<String>,
3048 #[serde(rename = "approval_receipt_id", skip_serializing_if = "Option::is_none")]
3049 pub approval_receipt_id: Option<String>,
3050 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
3051 pub receipt_id: Option<String>,
3052 #[serde(rename = "record_hash", skip_serializing_if = "Option::is_none")]
3053 pub record_hash: Option<String>,
3054 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
3055 pub created_at: Option<String>,
3056}
3057
3058impl ExecutionBoundaryRecord {
3059 pub fn new() -> ExecutionBoundaryRecord {
3060 ExecutionBoundaryRecord {
3061 record_id: None,
3062 verdict: None,
3063 reason_code: None,
3064 tool_name: None,
3065 args_hash: None,
3066 policy_epoch: None,
3067 mcp_server_id: None,
3068 oauth_resource: None,
3069 oauth_scopes: None,
3070 sandbox_grant_hash: None,
3071 authz_snapshot_hash: None,
3072 approval_receipt_id: None,
3073 receipt_id: None,
3074 record_hash: None,
3075 created_at: None,
3076 }
3077 }
3078}
3079#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3081pub enum ExecutionBoundaryRecordVerdict {
3082 #[serde(rename = "ALLOW")]
3083 Allow,
3084 #[serde(rename = "DENY")]
3085 Deny,
3086 #[serde(rename = "ESCALATE")]
3087 Escalate,
3088}
3089
3090impl Default for ExecutionBoundaryRecordVerdict {
3091 fn default() -> ExecutionBoundaryRecordVerdict {
3092 Self::Allow
3093 }
3094}
3095
3096#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3108pub struct ExportRequest {
3109 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
3111 pub session_id: Option<String>,
3112 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
3113 pub format: Option<ExportRequestFormat>,
3114}
3115
3116impl ExportRequest {
3117 pub fn new() -> ExportRequest {
3118 ExportRequest {
3119 session_id: None,
3120 format: None,
3121 }
3122 }
3123}
3124#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3126pub enum ExportRequestFormat {
3127 #[serde(rename = "tar.gz")]
3128 TarPeriodGz,
3129}
3130
3131impl Default for ExportRequestFormat {
3132 fn default() -> ExportRequestFormat {
3133 Self::TarPeriodGz
3134 }
3135}
3136
3137#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3149pub struct FilesystemPreopen {
3150 #[serde(rename = "path")]
3151 pub path: String,
3152 #[serde(rename = "mode")]
3153 pub mode: FilesystemPreopenMode,
3154 #[serde(rename = "content_hash", skip_serializing_if = "Option::is_none")]
3155 pub content_hash: Option<String>,
3156}
3157
3158impl FilesystemPreopen {
3159 pub fn new(path: String, mode: FilesystemPreopenMode) -> FilesystemPreopen {
3160 FilesystemPreopen {
3161 path,
3162 mode,
3163 content_hash: None,
3164 }
3165 }
3166}
3167#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3169pub enum FilesystemPreopenMode {
3170 #[serde(rename = "ro")]
3171 Ro,
3172 #[serde(rename = "rw")]
3173 Rw,
3174}
3175
3176impl Default for FilesystemPreopenMode {
3177 fn default() -> FilesystemPreopenMode {
3178 Self::Ro
3179 }
3180}
3181
3182#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3194pub struct FrameworkAdapter {
3195 #[serde(rename = "apiVersion", skip_serializing_if = "Option::is_none")]
3196 pub api_version: Option<String>,
3197 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
3198 pub kind: Option<String>,
3199 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
3200 pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
3201 #[serde(rename = "match", skip_serializing_if = "Option::is_none")]
3202 pub r#match: Option<std::collections::HashMap<String, serde_json::Value>>,
3203 #[serde(rename = "capabilities", default, skip_serializing_if = "Option::is_none")]
3204 pub capabilities: Option<Option<serde_json::Value>>,
3205 #[serde(rename = "entrypoints", skip_serializing_if = "Option::is_none")]
3206 pub entrypoints: Option<std::collections::HashMap<String, serde_json::Value>>,
3207 #[serde(rename = "build", skip_serializing_if = "Option::is_none")]
3208 pub build: Option<std::collections::HashMap<String, serde_json::Value>>,
3209}
3210
3211impl FrameworkAdapter {
3212 pub fn new() -> FrameworkAdapter {
3213 FrameworkAdapter {
3214 api_version: None,
3215 kind: None,
3216 metadata: None,
3217 r#match: None,
3218 capabilities: None,
3219 entrypoints: None,
3220 build: None,
3221 }
3222 }
3223}
3224
3225#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3237pub struct GeneratedAppSpecCandidate {
3238 #[serde(rename = "candidate_id")]
3239 pub candidate_id: String,
3240 #[serde(rename = "trusted")]
3241 pub trusted: bool,
3242 #[serde(rename = "app_spec")]
3243 pub app_spec: Box<LaunchpadApp>,
3244 #[serde(rename = "promotion_requirements")]
3245 pub promotion_requirements: Vec<String>,
3246}
3247
3248impl GeneratedAppSpecCandidate {
3249 pub fn new(candidate_id: String, trusted: bool, app_spec: LaunchpadApp, promotion_requirements: Vec<String>) -> GeneratedAppSpecCandidate {
3250 GeneratedAppSpecCandidate {
3251 candidate_id,
3252 trusted,
3253 app_spec: Box::new(app_spec),
3254 promotion_requirements,
3255 }
3256 }
3257}
3258
3259#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3271pub struct GetAgentUiRuntimeInfo200Response {
3272 #[serde(rename = "runtime")]
3273 pub runtime: String,
3274 #[serde(rename = "protocol", deserialize_with = "Option::deserialize")]
3275 pub protocol: Option<serde_json::Value>,
3276 #[serde(rename = "transport", deserialize_with = "Option::deserialize")]
3277 pub transport: Option<serde_json::Value>,
3278 #[serde(rename = "tools", deserialize_with = "Option::deserialize")]
3279 pub tools: Option<serde_json::Value>,
3280}
3281
3282impl GetAgentUiRuntimeInfo200Response {
3283 pub fn new(runtime: String, protocol: Option<serde_json::Value>, transport: Option<serde_json::Value>, tools: Option<serde_json::Value>) -> GetAgentUiRuntimeInfo200Response {
3284 GetAgentUiRuntimeInfo200Response {
3285 runtime,
3286 protocol,
3287 transport,
3288 tools,
3289 }
3290 }
3291}
3292
3293#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3305pub struct GetLaunchpadImport200Response {
3306 #[serde(rename = "import")]
3307 pub import: Box<LaunchpadImportRecord>,
3308}
3309
3310impl GetLaunchpadImport200Response {
3311 pub fn new(import: LaunchpadImportRecord) -> GetLaunchpadImport200Response {
3312 GetLaunchpadImport200Response {
3313 import: Box::new(import),
3314 }
3315 }
3316}
3317
3318#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3330pub struct GetLaunchpadMatrix200Response {
3331 #[serde(rename = "matrix")]
3332 pub matrix: Vec<LaunchpadMatrixCell>,
3333}
3334
3335impl GetLaunchpadMatrix200Response {
3336 pub fn new(matrix: Vec<LaunchpadMatrixCell>) -> GetLaunchpadMatrix200Response {
3337 GetLaunchpadMatrix200Response {
3338 matrix,
3339 }
3340 }
3341}
3342
3343#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3355pub struct GetPublicDemoHealth200Response {
3356 #[serde(rename = "version")]
3357 pub version: String,
3358 #[serde(rename = "commit")]
3359 pub commit: String,
3360 #[serde(rename = "helm_ai_kernel_version")]
3361 pub helm_ai_kernel_version: String,
3362 #[serde(rename = "status")]
3363 pub status: String,
3364 #[serde(rename = "build_time")]
3365 pub build_time: String,
3366 #[serde(rename = "git_sha")]
3367 pub git_sha: String,
3368 #[serde(rename = "deployment_id")]
3369 pub deployment_id: String,
3370}
3371
3372impl GetPublicDemoHealth200Response {
3373 pub fn new(version: String, commit: String, helm_ai_kernel_version: String, status: String, build_time: String, git_sha: String, deployment_id: String) -> GetPublicDemoHealth200Response {
3374 GetPublicDemoHealth200Response {
3375 version,
3376 commit,
3377 helm_ai_kernel_version,
3378 status,
3379 build_time,
3380 git_sha,
3381 deployment_id,
3382 }
3383 }
3384}
3385
3386#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3399pub struct GovernanceDecision {
3400 #[serde(rename = "decision_id")]
3401 pub decision_id: String,
3402 #[serde(rename = "effect_id")]
3403 pub effect_id: String,
3404 #[serde(rename = "verdict")]
3405 pub verdict: GovernanceDecisionVerdict,
3406 #[serde(rename = "reason_code", default, skip_serializing_if = "Option::is_none")]
3408 pub reason_code: Option<Option<String>>,
3409 #[serde(rename = "receipt", skip_serializing_if = "Option::is_none")]
3410 pub receipt: Option<Box<Receipt>>,
3411 #[serde(rename = "active_packs", skip_serializing_if = "Option::is_none")]
3413 pub active_packs: Option<Vec<String>>,
3414}
3415
3416impl GovernanceDecision {
3417 pub fn new(decision_id: String, effect_id: String, verdict: GovernanceDecisionVerdict) -> GovernanceDecision {
3419 GovernanceDecision {
3420 decision_id,
3421 effect_id,
3422 verdict,
3423 reason_code: None,
3424 receipt: None,
3425 active_packs: None,
3426 }
3427 }
3428}
3429#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3431pub enum GovernanceDecisionVerdict {
3432 #[serde(rename = "ALLOW")]
3433 Allow,
3434 #[serde(rename = "DENY")]
3435 Deny,
3436 #[serde(rename = "ESCALATE")]
3437 Escalate,
3438}
3439
3440impl Default for GovernanceDecisionVerdict {
3441 fn default() -> GovernanceDecisionVerdict {
3442 Self::Allow
3443 }
3444}
3445
3446#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3458pub struct GroundedActionRef {
3459 #[serde(rename = "grounded_action_id")]
3460 pub grounded_action_id: String,
3461 #[serde(rename = "screenshot_hash")]
3462 pub screenshot_hash: String,
3463 #[serde(rename = "dom_or_ax_snapshot_hash")]
3464 pub dom_or_ax_snapshot_hash: String,
3465 #[serde(rename = "target_ref")]
3466 pub target_ref: String,
3467 #[serde(rename = "bbox_or_element_id")]
3468 pub bbox_or_element_id: String,
3469 #[serde(rename = "action_type")]
3470 pub action_type: GroundedActionRefActionType,
3471 #[serde(rename = "precondition")]
3472 pub precondition: String,
3473 #[serde(rename = "postcondition")]
3474 pub postcondition: String,
3475 #[serde(rename = "postcondition_ref")]
3476 pub postcondition_ref: String,
3477 #[serde(rename = "verification_scope_ref")]
3478 pub verification_scope_ref: String,
3479 #[serde(rename = "policy_hash")]
3480 pub policy_hash: String,
3481 #[serde(rename = "proof_graph_node_ref")]
3482 pub proof_graph_node_ref: String,
3483 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3484 pub sandbox_grant_hash: Option<String>,
3485 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
3486 pub created_at: Option<String>,
3487 #[serde(rename = "grounding_hash", skip_serializing_if = "Option::is_none")]
3488 pub grounding_hash: Option<String>,
3489}
3490
3491impl GroundedActionRef {
3492 pub fn new(grounded_action_id: String, screenshot_hash: String, dom_or_ax_snapshot_hash: String, target_ref: String, bbox_or_element_id: String, action_type: GroundedActionRefActionType, precondition: String, postcondition: String, postcondition_ref: String, verification_scope_ref: String, policy_hash: String, proof_graph_node_ref: String) -> GroundedActionRef {
3493 GroundedActionRef {
3494 grounded_action_id,
3495 screenshot_hash,
3496 dom_or_ax_snapshot_hash,
3497 target_ref,
3498 bbox_or_element_id,
3499 action_type,
3500 precondition,
3501 postcondition,
3502 postcondition_ref,
3503 verification_scope_ref,
3504 policy_hash,
3505 proof_graph_node_ref,
3506 sandbox_grant_hash: None,
3507 created_at: None,
3508 grounding_hash: None,
3509 }
3510 }
3511}
3512#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3514pub enum GroundedActionRefActionType {
3515 #[serde(rename = "click")]
3516 Click,
3517 #[serde(rename = "type")]
3518 Type,
3519 #[serde(rename = "select")]
3520 Select,
3521 #[serde(rename = "submit")]
3522 Submit,
3523 #[serde(rename = "navigate")]
3524 Navigate,
3525}
3526
3527impl Default for GroundedActionRefActionType {
3528 fn default() -> GroundedActionRefActionType {
3529 Self::Click
3530 }
3531}
3532
3533#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3545pub struct GuiActionReceipt {
3546 #[serde(rename = "receipt_id")]
3547 pub receipt_id: String,
3548 #[serde(rename = "grounded_action_ref")]
3549 pub grounded_action_ref: String,
3550 #[serde(rename = "screenshot_hash")]
3551 pub screenshot_hash: String,
3552 #[serde(rename = "dom_or_ax_snapshot_hash")]
3553 pub dom_or_ax_snapshot_hash: String,
3554 #[serde(rename = "target_ref")]
3555 pub target_ref: String,
3556 #[serde(rename = "bbox_or_element_id")]
3557 pub bbox_or_element_id: String,
3558 #[serde(rename = "action_type")]
3559 pub action_type: GuiActionReceiptActionType,
3560 #[serde(rename = "precondition")]
3561 pub precondition: String,
3562 #[serde(rename = "postcondition")]
3563 pub postcondition: String,
3564 #[serde(rename = "postcondition_ref")]
3565 pub postcondition_ref: String,
3566 #[serde(rename = "postcondition_verified")]
3567 pub postcondition_verified: bool,
3568 #[serde(rename = "verification_scope_ref")]
3569 pub verification_scope_ref: String,
3570 #[serde(rename = "policy_hash")]
3571 pub policy_hash: String,
3572 #[serde(rename = "proof_graph_node_ref")]
3573 pub proof_graph_node_ref: String,
3574 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3575 pub sandbox_grant_hash: Option<String>,
3576 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
3577 pub created_at: Option<String>,
3578 #[serde(rename = "receipt_hash", skip_serializing_if = "Option::is_none")]
3579 pub receipt_hash: Option<String>,
3580}
3581
3582impl GuiActionReceipt {
3583 pub fn new(receipt_id: String, grounded_action_ref: String, screenshot_hash: String, dom_or_ax_snapshot_hash: String, target_ref: String, bbox_or_element_id: String, action_type: GuiActionReceiptActionType, precondition: String, postcondition: String, postcondition_ref: String, postcondition_verified: bool, verification_scope_ref: String, policy_hash: String, proof_graph_node_ref: String) -> GuiActionReceipt {
3584 GuiActionReceipt {
3585 receipt_id,
3586 grounded_action_ref,
3587 screenshot_hash,
3588 dom_or_ax_snapshot_hash,
3589 target_ref,
3590 bbox_or_element_id,
3591 action_type,
3592 precondition,
3593 postcondition,
3594 postcondition_ref,
3595 postcondition_verified,
3596 verification_scope_ref,
3597 policy_hash,
3598 proof_graph_node_ref,
3599 sandbox_grant_hash: None,
3600 created_at: None,
3601 receipt_hash: None,
3602 }
3603 }
3604}
3605#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3607pub enum GuiActionReceiptActionType {
3608 #[serde(rename = "click")]
3609 Click,
3610 #[serde(rename = "type")]
3611 Type,
3612 #[serde(rename = "select")]
3613 Select,
3614 #[serde(rename = "submit")]
3615 Submit,
3616 #[serde(rename = "navigate")]
3617 Navigate,
3618}
3619
3620impl Default for GuiActionReceiptActionType {
3621 fn default() -> GuiActionReceiptActionType {
3622 Self::Click
3623 }
3624}
3625
3626#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3638pub struct HarnessChangeContract {
3639 #[serde(rename = "change_contract_id")]
3640 pub change_contract_id: String,
3641 #[serde(rename = "component_modified")]
3642 pub component_modified: HarnessChangeContractComponentModified,
3643 #[serde(rename = "failure_mode_targeted")]
3644 pub failure_mode_targeted: String,
3645 #[serde(rename = "predicted_improvement")]
3646 pub predicted_improvement: String,
3647 #[serde(rename = "invariants_preserved")]
3648 pub invariants_preserved: Vec<String>,
3649 #[serde(rename = "safety_properties")]
3650 pub safety_properties: Vec<String>,
3651 #[serde(rename = "regression_suite_refs")]
3652 pub regression_suite_refs: Vec<String>,
3653 #[serde(rename = "simulation_evidence_refs", skip_serializing_if = "Option::is_none")]
3654 pub simulation_evidence_refs: Option<Vec<String>>,
3655 #[serde(rename = "canary_scope", skip_serializing_if = "Option::is_none")]
3656 pub canary_scope: Option<std::collections::HashMap<String, serde_json::Value>>,
3657 #[serde(rename = "rollback_plan")]
3658 pub rollback_plan: std::collections::HashMap<String, serde_json::Value>,
3659 #[serde(rename = "approval_required")]
3660 pub approval_required: bool,
3661 #[serde(rename = "activation_receipt_ref", skip_serializing_if = "Option::is_none")]
3662 pub activation_receipt_ref: Option<String>,
3663 #[serde(rename = "created_at")]
3664 pub created_at: String,
3665 #[serde(rename = "contract_hash", skip_serializing_if = "Option::is_none")]
3666 pub contract_hash: Option<String>,
3667}
3668
3669impl HarnessChangeContract {
3670 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 {
3671 HarnessChangeContract {
3672 change_contract_id,
3673 component_modified,
3674 failure_mode_targeted,
3675 predicted_improvement,
3676 invariants_preserved,
3677 safety_properties,
3678 regression_suite_refs,
3679 simulation_evidence_refs: None,
3680 canary_scope: None,
3681 rollback_plan,
3682 approval_required,
3683 activation_receipt_ref: None,
3684 created_at,
3685 contract_hash: None,
3686 }
3687 }
3688}
3689#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3691pub enum HarnessChangeContractComponentModified {
3692 #[serde(rename = "connector_contract")]
3693 ConnectorContract,
3694 #[serde(rename = "tool_schema")]
3695 ToolSchema,
3696 #[serde(rename = "sandbox_grant")]
3697 SandboxGrant,
3698 #[serde(rename = "mcp_approval")]
3699 McpApproval,
3700 #[serde(rename = "policy_overlay")]
3701 PolicyOverlay,
3702 #[serde(rename = "verifier")]
3703 Verifier,
3704 #[serde(rename = "evidence_template")]
3705 EvidenceTemplate,
3706 #[serde(rename = "routing_rule")]
3707 RoutingRule,
3708}
3709
3710impl Default for HarnessChangeContractComponentModified {
3711 fn default() -> HarnessChangeContractComponentModified {
3712 Self::ConnectorContract
3713 }
3714}
3715
3716#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3728pub struct HarnessTrace {
3729 #[serde(rename = "trace_id")]
3730 pub trace_id: String,
3731 #[serde(rename = "plan_hash")]
3732 pub plan_hash: String,
3733 #[serde(rename = "context_refs", skip_serializing_if = "Option::is_none")]
3734 pub context_refs: Option<Vec<String>>,
3735 #[serde(rename = "memory_reads", skip_serializing_if = "Option::is_none")]
3736 pub memory_reads: Option<Vec<String>>,
3737 #[serde(rename = "memory_writes", skip_serializing_if = "Option::is_none")]
3738 pub memory_writes: Option<Vec<String>>,
3739 #[serde(rename = "tool_schema_hashes", skip_serializing_if = "Option::is_none")]
3740 pub tool_schema_hashes: Option<Vec<String>>,
3741 #[serde(rename = "permission_requests", skip_serializing_if = "Option::is_none")]
3742 pub permission_requests: Option<Vec<String>>,
3743 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
3744 pub sandbox_grant_hash: Option<String>,
3745 #[serde(rename = "mcp_approval_ref", skip_serializing_if = "Option::is_none")]
3746 pub mcp_approval_ref: Option<String>,
3747 #[serde(rename = "connector_contract_hash", skip_serializing_if = "Option::is_none")]
3748 pub connector_contract_hash: Option<String>,
3749 #[serde(rename = "policy_hash")]
3750 pub policy_hash: String,
3751 #[serde(rename = "cpi_output_hash", skip_serializing_if = "Option::is_none")]
3752 pub cpi_output_hash: Option<String>,
3753 #[serde(rename = "verifier_outputs", skip_serializing_if = "Option::is_none")]
3754 pub verifier_outputs: Option<Vec<String>>,
3755 #[serde(rename = "human_interventions", skip_serializing_if = "Option::is_none")]
3756 pub human_interventions: Option<Vec<String>>,
3757 #[serde(rename = "state_updates", skip_serializing_if = "Option::is_none")]
3758 pub state_updates: Option<Vec<String>>,
3759 #[serde(rename = "receipt_refs")]
3760 pub receipt_refs: Vec<String>,
3761 #[serde(rename = "created_at")]
3762 pub created_at: String,
3763 #[serde(rename = "trace_hash", skip_serializing_if = "Option::is_none")]
3764 pub trace_hash: Option<String>,
3765}
3766
3767impl HarnessTrace {
3768 pub fn new(trace_id: String, plan_hash: String, policy_hash: String, receipt_refs: Vec<String>, created_at: String) -> HarnessTrace {
3769 HarnessTrace {
3770 trace_id,
3771 plan_hash,
3772 context_refs: None,
3773 memory_reads: None,
3774 memory_writes: None,
3775 tool_schema_hashes: None,
3776 permission_requests: None,
3777 sandbox_grant_hash: None,
3778 mcp_approval_ref: None,
3779 connector_contract_hash: None,
3780 policy_hash,
3781 cpi_output_hash: None,
3782 verifier_outputs: None,
3783 human_interventions: None,
3784 state_updates: None,
3785 receipt_refs,
3786 created_at,
3787 trace_hash: None,
3788 }
3789 }
3790}
3791
3792#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3804pub struct HealthCheck200Response {
3805 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
3806 pub status: Option<String>,
3807 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
3808 pub version: Option<String>,
3809}
3810
3811impl HealthCheck200Response {
3812 pub fn new() -> HealthCheck200Response {
3813 HealthCheck200Response {
3814 status: None,
3815 version: None,
3816 }
3817 }
3818}
3819
3820#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3832pub struct HelmError {
3833 #[serde(rename = "error")]
3834 pub error: Box<HelmErrorError>,
3835}
3836
3837impl HelmError {
3838 pub fn new(error: HelmErrorError) -> HelmError {
3839 HelmError {
3840 error: Box::new(error),
3841 }
3842 }
3843}
3844
3845#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3857pub struct HelmErrorError {
3858 #[serde(rename = "message")]
3860 pub message: String,
3861 #[serde(rename = "type")]
3862 pub r#type: HelmErrorErrorType,
3863 #[serde(rename = "code")]
3865 pub code: String,
3866 #[serde(rename = "reason_code")]
3868 pub reason_code: HelmErrorErrorReasonCode,
3869 #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
3871 pub details: Option<std::collections::HashMap<String, serde_json::Value>>,
3872}
3873
3874impl HelmErrorError {
3875 pub fn new(message: String, r#type: HelmErrorErrorType, code: String, reason_code: HelmErrorErrorReasonCode) -> HelmErrorError {
3876 HelmErrorError {
3877 message,
3878 r#type,
3879 code,
3880 reason_code,
3881 details: None,
3882 }
3883 }
3884}
3885#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3887pub enum HelmErrorErrorType {
3888 #[serde(rename = "invalid_request")]
3889 InvalidRequest,
3890 #[serde(rename = "authentication_error")]
3891 AuthenticationError,
3892 #[serde(rename = "permission_denied")]
3893 PermissionDenied,
3894 #[serde(rename = "not_found")]
3895 NotFound,
3896 #[serde(rename = "internal_error")]
3897 InternalError,
3898}
3899
3900impl Default for HelmErrorErrorType {
3901 fn default() -> HelmErrorErrorType {
3902 Self::InvalidRequest
3903 }
3904}
3905#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
3907pub enum HelmErrorErrorReasonCode {
3908 #[serde(rename = "DENY_TOOL_NOT_FOUND")]
3909 DenyToolNotFound,
3910 #[serde(rename = "DENY_SCHEMA_MISMATCH")]
3911 DenySchemaMismatch,
3912 #[serde(rename = "DENY_OUTPUT_DRIFT")]
3913 DenyOutputDrift,
3914 #[serde(rename = "DENY_BUDGET_EXCEEDED")]
3915 DenyBudgetExceeded,
3916 #[serde(rename = "DENY_APPROVAL_REQUIRED")]
3917 DenyApprovalRequired,
3918 #[serde(rename = "DENY_APPROVAL_TIMEOUT")]
3919 DenyApprovalTimeout,
3920 #[serde(rename = "DENY_SANDBOX_TRAP")]
3921 DenySandboxTrap,
3922 #[serde(rename = "DENY_GAS_EXHAUSTION")]
3923 DenyGasExhaustion,
3924 #[serde(rename = "DENY_TIME_LIMIT")]
3925 DenyTimeLimit,
3926 #[serde(rename = "DENY_MEMORY_LIMIT")]
3927 DenyMemoryLimit,
3928 #[serde(rename = "DENY_POLICY_VIOLATION")]
3929 DenyPolicyViolation,
3930 #[serde(rename = "DENY_TRUST_KEY_REVOKED")]
3931 DenyTrustKeyRevoked,
3932 #[serde(rename = "DENY_IDEMPOTENCY_DUPLICATE")]
3933 DenyIdempotencyDuplicate,
3934 #[serde(rename = "ERROR_INTERNAL")]
3935 ErrorInternal,
3936}
3937
3938impl Default for HelmErrorErrorReasonCode {
3939 fn default() -> HelmErrorErrorReasonCode {
3940 Self::DenyToolNotFound
3941 }
3942}
3943
3944#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
3956pub struct ImportEvidenceLedger {
3957 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
3958 pub status: Option<String>,
3959 #[serde(rename = "receipt_refs", skip_serializing_if = "Option::is_none")]
3960 pub receipt_refs: Option<Vec<String>>,
3961 #[serde(rename = "evidence_pack_refs", skip_serializing_if = "Option::is_none")]
3962 pub evidence_pack_refs: Option<Vec<String>>,
3963 #[serde(rename = "sbom_ref", skip_serializing_if = "Option::is_none")]
3964 pub sbom_ref: Option<String>,
3965 #[serde(rename = "vulnerability_scan_ref", skip_serializing_if = "Option::is_none")]
3966 pub vulnerability_scan_ref: Option<String>,
3967 #[serde(rename = "provenance_ref", skip_serializing_if = "Option::is_none")]
3968 pub provenance_ref: Option<String>,
3969 #[serde(rename = "license_ref", skip_serializing_if = "Option::is_none")]
3970 pub license_ref: Option<String>,
3971 #[serde(rename = "policy_refs", skip_serializing_if = "Option::is_none")]
3972 pub policy_refs: Option<Vec<String>>,
3973 #[serde(rename = "offline_verify_command", skip_serializing_if = "Option::is_none")]
3974 pub offline_verify_command: Option<String>,
3975}
3976
3977impl ImportEvidenceLedger {
3978 pub fn new() -> ImportEvidenceLedger {
3979 ImportEvidenceLedger {
3980 status: None,
3981 receipt_refs: None,
3982 evidence_pack_refs: None,
3983 sbom_ref: None,
3984 vulnerability_scan_ref: None,
3985 provenance_ref: None,
3986 license_ref: None,
3987 policy_refs: None,
3988 offline_verify_command: None,
3989 }
3990 }
3991}
3992
3993#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4005pub struct ImportPreflightResult {
4006 #[serde(rename = "import_id")]
4007 pub import_id: String,
4008 #[serde(rename = "status")]
4009 pub status: String,
4010 #[serde(rename = "checks")]
4011 pub checks: Vec<PreflightCheck>,
4012 #[serde(rename = "blocked_reasons", skip_serializing_if = "Option::is_none")]
4013 pub blocked_reasons: Option<Vec<String>>,
4014 #[serde(rename = "evidence_ledger")]
4015 pub evidence_ledger: Box<ImportEvidenceLedger>,
4016}
4017
4018impl ImportPreflightResult {
4019 pub fn new(import_id: String, status: String, checks: Vec<PreflightCheck>, evidence_ledger: ImportEvidenceLedger) -> ImportPreflightResult {
4020 ImportPreflightResult {
4021 import_id,
4022 status,
4023 checks,
4024 blocked_reasons: None,
4025 evidence_ledger: Box::new(evidence_ledger),
4026 }
4027 }
4028}
4029
4030#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4042pub struct LaunchRecipe {
4043 #[serde(rename = "import_id")]
4044 pub import_id: String,
4045 #[serde(rename = "generated_at", skip_serializing_if = "Option::is_none")]
4046 pub generated_at: Option<String>,
4047 #[serde(rename = "detection_order")]
4048 pub detection_order: Vec<String>,
4049 #[serde(rename = "build_strategy")]
4050 pub build_strategy: Box<BuildStrategy>,
4051 #[serde(rename = "target_plans")]
4052 pub target_plans: Vec<TargetPlan>,
4053 #[serde(rename = "generated_app_specs")]
4054 pub generated_app_specs: Vec<GeneratedAppSpecCandidate>,
4055 #[serde(rename = "promotion_state")]
4056 pub promotion_state: String,
4057 #[serde(rename = "promotion_requirements", skip_serializing_if = "Option::is_none")]
4058 pub promotion_requirements: Option<Vec<String>>,
4059 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4060 pub cli_equivalent: Option<String>,
4061}
4062
4063impl LaunchRecipe {
4064 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 {
4065 LaunchRecipe {
4066 import_id,
4067 generated_at: None,
4068 detection_order,
4069 build_strategy: Box::new(build_strategy),
4070 target_plans,
4071 generated_app_specs,
4072 promotion_state,
4073 promotion_requirements: None,
4074 cli_equivalent: None,
4075 }
4076 }
4077}
4078
4079#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4091pub struct LaunchpadApp {
4092 #[serde(rename = "id")]
4093 pub id: String,
4094 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4095 pub app_id: Option<String>,
4096 #[serde(rename = "name")]
4097 pub name: String,
4098 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
4099 pub version: Option<String>,
4100 #[serde(rename = "oci_ref", skip_serializing_if = "Option::is_none")]
4101 pub oci_ref: Option<String>,
4102 #[serde(rename = "immutable_digest", skip_serializing_if = "Option::is_none")]
4103 pub immutable_digest: Option<String>,
4104 #[serde(rename = "oss_supported", skip_serializing_if = "Option::is_none")]
4105 pub oss_supported: Option<bool>,
4106 #[serde(rename = "availability", skip_serializing_if = "Option::is_none")]
4107 pub availability: Option<String>,
4108 #[serde(rename = "redistribution", skip_serializing_if = "Option::is_none")]
4109 pub redistribution: Option<String>,
4110 #[serde(rename = "install_strategy", skip_serializing_if = "Option::is_none")]
4111 pub install_strategy: Option<String>,
4112 #[serde(rename = "risk_class", skip_serializing_if = "Option::is_none")]
4113 pub risk_class: Option<String>,
4114 #[serde(rename = "blocked_reason", skip_serializing_if = "Option::is_none")]
4115 pub blocked_reason: Option<String>,
4116 #[serde(rename = "required_secrets", skip_serializing_if = "Option::is_none")]
4117 pub required_secrets: Option<Vec<String>>,
4118 #[serde(rename = "model_gateway_env", skip_serializing_if = "Option::is_none")]
4119 pub model_gateway_env: Option<Vec<String>>,
4120 #[serde(rename = "declared_capabilities", skip_serializing_if = "Option::is_none")]
4121 pub declared_capabilities: Option<Vec<String>>,
4122 #[serde(rename = "mcp_servers", skip_serializing_if = "Option::is_none")]
4123 pub mcp_servers: Option<Vec<LaunchpadMcpServer>>,
4124 #[serde(rename = "filesystem_needs", skip_serializing_if = "Option::is_none")]
4125 pub filesystem_needs: Option<Vec<String>>,
4126 #[serde(rename = "network_needs", skip_serializing_if = "Option::is_none")]
4127 pub network_needs: Option<Vec<String>>,
4128 #[serde(rename = "healthcheck", skip_serializing_if = "Option::is_none")]
4129 pub healthcheck: Option<std::collections::HashMap<String, serde_json::Value>>,
4130 #[serde(rename = "teardown_recipe", skip_serializing_if = "Option::is_none")]
4131 pub teardown_recipe: Option<std::collections::HashMap<String, serde_json::Value>>,
4132 #[serde(rename = "evidence_profile", skip_serializing_if = "Option::is_none")]
4133 pub evidence_profile: Option<std::collections::HashMap<String, serde_json::Value>>,
4134 #[serde(rename = "policy_ref", skip_serializing_if = "Option::is_none")]
4135 pub policy_ref: Option<String>,
4136 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
4137 pub user_state: Option<String>,
4138 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
4139 pub required_capability: Option<String>,
4140 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
4141 pub upgrade_reason: Option<String>,
4142 #[serde(rename = "entitlement_decision", skip_serializing_if = "Option::is_none")]
4143 pub entitlement_decision: Option<Box<EntitlementDecision>>,
4144 #[serde(rename = "action_states", skip_serializing_if = "Option::is_none")]
4145 pub action_states: Option<std::collections::HashMap<String, EntitlementDecision>>,
4146 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
4147 pub status: Option<Box<LaunchpadAppStatus>>,
4148}
4149
4150impl LaunchpadApp {
4151 pub fn new(id: String, name: String) -> LaunchpadApp {
4152 LaunchpadApp {
4153 id,
4154 app_id: None,
4155 name,
4156 version: None,
4157 oci_ref: None,
4158 immutable_digest: None,
4159 oss_supported: None,
4160 availability: None,
4161 redistribution: None,
4162 install_strategy: None,
4163 risk_class: None,
4164 blocked_reason: None,
4165 required_secrets: None,
4166 model_gateway_env: None,
4167 declared_capabilities: None,
4168 mcp_servers: None,
4169 filesystem_needs: None,
4170 network_needs: None,
4171 healthcheck: None,
4172 teardown_recipe: None,
4173 evidence_profile: None,
4174 policy_ref: None,
4175 user_state: None,
4176 required_capability: None,
4177 upgrade_reason: None,
4178 entitlement_decision: None,
4179 action_states: None,
4180 status: None,
4181 }
4182 }
4183}
4184
4185#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4197pub struct LaunchpadAppStatus {
4198 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
4199 pub state: Option<String>,
4200 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
4201 pub verdict: Option<String>,
4202 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4203 pub reason_code: Option<String>,
4204 #[serde(rename = "human_summary", skip_serializing_if = "Option::is_none")]
4205 pub human_summary: Option<String>,
4206 #[serde(rename = "missing_secrets", skip_serializing_if = "Option::is_none")]
4207 pub missing_secrets: Option<Vec<String>>,
4208 #[serde(rename = "quarantined_mcp", skip_serializing_if = "Option::is_none")]
4209 pub quarantined_mcp: Option<i32>,
4210 #[serde(rename = "last_run_id", skip_serializing_if = "Option::is_none")]
4211 pub last_run_id: Option<String>,
4212 #[serde(rename = "last_evidencepack_ref", skip_serializing_if = "Option::is_none")]
4213 pub last_evidencepack_ref: Option<String>,
4214 #[serde(rename = "proof_status", skip_serializing_if = "Option::is_none")]
4215 pub proof_status: Option<String>,
4216}
4217
4218impl LaunchpadAppStatus {
4219 pub fn new() -> LaunchpadAppStatus {
4220 LaunchpadAppStatus {
4221 state: None,
4222 verdict: None,
4223 reason_code: None,
4224 human_summary: None,
4225 missing_secrets: None,
4226 quarantined_mcp: None,
4227 last_run_id: None,
4228 last_evidencepack_ref: None,
4229 proof_status: None,
4230 }
4231 }
4232}
4233
4234#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4246pub struct LaunchpadFixAction {
4247 #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
4248 pub label: Option<String>,
4249 #[serde(rename = "cli", skip_serializing_if = "Option::is_none")]
4250 pub cli: Option<String>,
4251 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
4252 pub description: Option<String>,
4253}
4254
4255impl LaunchpadFixAction {
4256 pub fn new() -> LaunchpadFixAction {
4257 LaunchpadFixAction {
4258 label: None,
4259 cli: None,
4260 description: None,
4261 }
4262 }
4263}
4264
4265#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4277pub struct LaunchpadGateResult {
4278 #[serde(rename = "id")]
4279 pub id: String,
4280 #[serde(rename = "group")]
4281 pub group: String,
4282 #[serde(rename = "label")]
4283 pub label: String,
4284 #[serde(rename = "verdict")]
4285 pub verdict: String,
4286 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4287 pub reason_code: Option<String>,
4288 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4289 pub receipt_ref: Option<String>,
4290 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
4291 pub proofgraph_node: Option<String>,
4292 #[serde(rename = "evidence_refs", skip_serializing_if = "Option::is_none")]
4293 pub evidence_refs: Option<Vec<String>>,
4294 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
4295 pub summary: Option<String>,
4296 #[serde(rename = "why", skip_serializing_if = "Option::is_none")]
4297 pub why: Option<String>,
4298 #[serde(rename = "proof_status")]
4299 pub proof_status: String,
4300 #[serde(rename = "raw_detail_ref", skip_serializing_if = "Option::is_none")]
4301 pub raw_detail_ref: Option<String>,
4302 #[serde(rename = "raw_proof_ref", skip_serializing_if = "Option::is_none")]
4303 pub raw_proof_ref: Option<String>,
4304 #[serde(rename = "receipt_required", skip_serializing_if = "Option::is_none")]
4305 pub receipt_required: Option<bool>,
4306 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4307 pub cli_equivalent: Option<String>,
4308 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
4309 pub fix_actions: Option<Vec<LaunchpadFixAction>>,
4310}
4311
4312impl LaunchpadGateResult {
4313 pub fn new(id: String, group: String, label: String, verdict: String, proof_status: String) -> LaunchpadGateResult {
4314 LaunchpadGateResult {
4315 id,
4316 group,
4317 label,
4318 verdict,
4319 reason_code: None,
4320 receipt_ref: None,
4321 proofgraph_node: None,
4322 evidence_refs: None,
4323 summary: None,
4324 why: None,
4325 proof_status,
4326 raw_detail_ref: None,
4327 raw_proof_ref: None,
4328 receipt_required: None,
4329 cli_equivalent: None,
4330 fix_actions: None,
4331 }
4332 }
4333}
4334
4335#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4347pub struct LaunchpadImportRecord {
4348 #[serde(rename = "id")]
4349 pub id: String,
4350 #[serde(rename = "state")]
4351 pub state: LaunchpadImportRecordState,
4352 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
4353 pub created_at: Option<String>,
4354 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
4355 pub updated_at: Option<String>,
4356 #[serde(rename = "request")]
4357 pub request: Box<LaunchpadImportRequest>,
4358 #[serde(rename = "source_snapshot")]
4359 pub source_snapshot: Box<SourceSnapshot>,
4360 #[serde(rename = "capability_graph")]
4361 pub capability_graph: Box<CapabilityGraph>,
4362 #[serde(rename = "launch_recipe")]
4363 pub launch_recipe: Box<LaunchRecipe>,
4364 #[serde(rename = "preflight", skip_serializing_if = "Option::is_none")]
4365 pub preflight: Option<Box<ImportPreflightResult>>,
4366 #[serde(rename = "evidence_ledger")]
4367 pub evidence_ledger: Box<ImportEvidenceLedger>,
4368}
4369
4370impl LaunchpadImportRecord {
4371 pub fn new(id: String, state: LaunchpadImportRecordState, request: LaunchpadImportRequest, source_snapshot: SourceSnapshot, capability_graph: CapabilityGraph, launch_recipe: LaunchRecipe, evidence_ledger: ImportEvidenceLedger) -> LaunchpadImportRecord {
4372 LaunchpadImportRecord {
4373 id,
4374 state,
4375 created_at: None,
4376 updated_at: None,
4377 request: Box::new(request),
4378 source_snapshot: Box::new(source_snapshot),
4379 capability_graph: Box::new(capability_graph),
4380 launch_recipe: Box::new(launch_recipe),
4381 preflight: None,
4382 evidence_ledger: Box::new(evidence_ledger),
4383 }
4384 }
4385}
4386#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
4388pub enum LaunchpadImportRecordState {
4389 #[serde(rename = "IMPORTED")]
4390 Imported,
4391 #[serde(rename = "PREFLIGHTED")]
4392 Preflighted,
4393 #[serde(rename = "PROMOTABLE")]
4394 Promotable,
4395 #[serde(rename = "BLOCKED")]
4396 Blocked,
4397 #[serde(rename = "LAUNCHED")]
4398 Launched,
4399 #[serde(rename = "TORN_DOWN")]
4400 TornDown,
4401}
4402
4403impl Default for LaunchpadImportRecordState {
4404 fn default() -> LaunchpadImportRecordState {
4405 Self::Imported
4406 }
4407}
4408
4409#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4421pub struct LaunchpadImportRequest {
4422 #[serde(rename = "repo_url")]
4423 pub repo_url: String,
4424 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
4425 pub r#ref: Option<String>,
4426 #[serde(rename = "desired_target", skip_serializing_if = "Option::is_none")]
4427 pub desired_target: Option<String>,
4428}
4429
4430impl LaunchpadImportRequest {
4431 pub fn new(repo_url: String) -> LaunchpadImportRequest {
4432 LaunchpadImportRequest {
4433 repo_url,
4434 r#ref: None,
4435 desired_target: None,
4436 }
4437 }
4438}
4439
4440#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4452pub struct LaunchpadMatrixCell {
4453 #[serde(rename = "app_id")]
4454 pub app_id: String,
4455 #[serde(rename = "substrate_id")]
4456 pub substrate_id: String,
4457 #[serde(rename = "launchable")]
4458 pub launchable: bool,
4459 #[serde(rename = "verdict")]
4460 pub verdict: String,
4461 #[serde(rename = "reason")]
4462 pub reason: String,
4463 #[serde(rename = "availability")]
4464 pub availability: String,
4465 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
4466 pub user_state: Option<String>,
4467 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
4468 pub required_capability: Option<String>,
4469 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
4470 pub upgrade_reason: Option<String>,
4471 #[serde(rename = "entitlement_decision", skip_serializing_if = "Option::is_none")]
4472 pub entitlement_decision: Option<Box<EntitlementDecision>>,
4473 #[serde(rename = "action_states", skip_serializing_if = "Option::is_none")]
4474 pub action_states: Option<std::collections::HashMap<String, EntitlementDecision>>,
4475}
4476
4477impl LaunchpadMatrixCell {
4478 pub fn new(app_id: String, substrate_id: String, launchable: bool, verdict: String, reason: String, availability: String) -> LaunchpadMatrixCell {
4479 LaunchpadMatrixCell {
4480 app_id,
4481 substrate_id,
4482 launchable,
4483 verdict,
4484 reason,
4485 availability,
4486 user_state: None,
4487 required_capability: None,
4488 upgrade_reason: None,
4489 entitlement_decision: None,
4490 action_states: None,
4491 }
4492 }
4493}
4494
4495#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4507pub struct LaunchpadMcpServer {
4508 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
4509 pub id: Option<String>,
4510 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
4511 pub endpoint: Option<String>,
4512 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
4513 pub transport: Option<String>,
4514 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
4515 pub status: Option<String>,
4516 #[serde(rename = "risk_class", skip_serializing_if = "Option::is_none")]
4517 pub risk_class: Option<String>,
4518 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
4519 pub tools: Option<Vec<String>>,
4520 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4521 pub receipt_ref: Option<String>,
4522}
4523
4524impl LaunchpadMcpServer {
4525 pub fn new() -> LaunchpadMcpServer {
4526 LaunchpadMcpServer {
4527 id: None,
4528 endpoint: None,
4529 transport: None,
4530 status: None,
4531 risk_class: None,
4532 tools: None,
4533 receipt_ref: None,
4534 }
4535 }
4536}
4537
4538#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4550pub struct LaunchpadPlanRequest {
4551 #[serde(rename = "app_id")]
4552 pub app_id: String,
4553 #[serde(rename = "substrate_id")]
4554 pub substrate_id: String,
4555 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
4556 pub principal: Option<String>,
4557}
4558
4559impl LaunchpadPlanRequest {
4560 pub fn new(app_id: String, substrate_id: String) -> LaunchpadPlanRequest {
4561 LaunchpadPlanRequest {
4562 app_id,
4563 substrate_id,
4564 principal: None,
4565 }
4566 }
4567}
4568
4569#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4581pub struct LaunchpadPlanResponse {
4582 #[serde(rename = "launch_id", skip_serializing_if = "Option::is_none")]
4583 pub launch_id: Option<String>,
4584 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4585 pub app_id: Option<String>,
4586 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
4587 pub substrate_id: Option<String>,
4588 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
4589 pub state: Option<String>,
4590 #[serde(rename = "kernel_verdict", skip_serializing_if = "Option::is_none")]
4591 pub kernel_verdict: Option<String>,
4592 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
4593 pub reason: Option<String>,
4594 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4595 pub reason_code: Option<String>,
4596 #[serde(rename = "plan_hash", skip_serializing_if = "Option::is_none")]
4597 pub plan_hash: Option<String>,
4598 #[serde(rename = "user_state", skip_serializing_if = "Option::is_none")]
4599 pub user_state: Option<String>,
4600 #[serde(rename = "required_capability", skip_serializing_if = "Option::is_none")]
4601 pub required_capability: Option<String>,
4602 #[serde(rename = "upgrade_reason", skip_serializing_if = "Option::is_none")]
4603 pub upgrade_reason: Option<String>,
4604 #[serde(rename = "entitlement_decision", skip_serializing_if = "Option::is_none")]
4605 pub entitlement_decision: Option<Box<EntitlementDecision>>,
4606 #[serde(rename = "action_states", skip_serializing_if = "Option::is_none")]
4607 pub action_states: Option<std::collections::HashMap<String, EntitlementDecision>>,
4608}
4609
4610impl LaunchpadPlanResponse {
4611 pub fn new() -> LaunchpadPlanResponse {
4612 LaunchpadPlanResponse {
4613 launch_id: None,
4614 app_id: None,
4615 substrate_id: None,
4616 state: None,
4617 kernel_verdict: None,
4618 reason: None,
4619 reason_code: None,
4620 plan_hash: None,
4621 user_state: None,
4622 required_capability: None,
4623 upgrade_reason: None,
4624 entitlement_decision: None,
4625 action_states: None,
4626 }
4627 }
4628}
4629
4630#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4642pub struct LaunchpadPolicySimulation {
4643 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4644 pub app_id: Option<String>,
4645 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
4646 pub verdict: Option<String>,
4647 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4648 pub reason_code: Option<String>,
4649 #[serde(rename = "plain_english", skip_serializing_if = "Option::is_none")]
4650 pub plain_english: Option<String>,
4651 #[serde(rename = "structured", skip_serializing_if = "Option::is_none")]
4652 pub structured: Option<std::collections::HashMap<String, serde_json::Value>>,
4653 #[serde(rename = "diff", skip_serializing_if = "Option::is_none")]
4654 pub diff: Option<Vec<String>>,
4655 #[serde(rename = "raw", skip_serializing_if = "Option::is_none")]
4656 pub raw: Option<std::collections::HashMap<String, serde_json::Value>>,
4657 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4658 pub receipt_ref: Option<String>,
4659 #[serde(rename = "proof_status", skip_serializing_if = "Option::is_none")]
4660 pub proof_status: Option<String>,
4661 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4662 pub cli_equivalent: Option<String>,
4663 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
4664 pub fix_actions: Option<Vec<LaunchpadFixAction>>,
4665}
4666
4667impl LaunchpadPolicySimulation {
4668 pub fn new() -> LaunchpadPolicySimulation {
4669 LaunchpadPolicySimulation {
4670 app_id: None,
4671 verdict: None,
4672 reason_code: None,
4673 plain_english: None,
4674 structured: None,
4675 diff: None,
4676 raw: None,
4677 receipt_ref: None,
4678 proof_status: None,
4679 cli_equivalent: None,
4680 fix_actions: None,
4681 }
4682 }
4683}
4684
4685#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4697pub struct LaunchpadRun {
4698 #[serde(rename = "launch_id", skip_serializing_if = "Option::is_none")]
4699 pub launch_id: Option<String>,
4700 #[serde(rename = "run_id", skip_serializing_if = "Option::is_none")]
4701 pub run_id: Option<String>,
4702 #[serde(rename = "app_id", skip_serializing_if = "Option::is_none")]
4703 pub app_id: Option<String>,
4704 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
4705 pub substrate_id: Option<String>,
4706 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
4707 pub state: Option<String>,
4708 #[serde(rename = "kernel_verdict", skip_serializing_if = "Option::is_none")]
4709 pub kernel_verdict: Option<String>,
4710 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
4711 pub reason: Option<String>,
4712 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4713 pub reason_code: Option<String>,
4714 #[serde(rename = "plan_hash", skip_serializing_if = "Option::is_none")]
4715 pub plan_hash: Option<String>,
4716 #[serde(rename = "launchplan_hash", skip_serializing_if = "Option::is_none")]
4717 pub launchplan_hash: Option<String>,
4718 #[serde(rename = "install_receipt_ref", skip_serializing_if = "Option::is_none")]
4719 pub install_receipt_ref: Option<String>,
4720 #[serde(rename = "launch_receipt_ref", skip_serializing_if = "Option::is_none")]
4721 pub launch_receipt_ref: Option<String>,
4722 #[serde(rename = "health_receipt_ref", skip_serializing_if = "Option::is_none")]
4723 pub health_receipt_ref: Option<String>,
4724 #[serde(rename = "teardown_receipt_ref", skip_serializing_if = "Option::is_none")]
4725 pub teardown_receipt_ref: Option<String>,
4726 #[serde(rename = "evidence_pack_refs", skip_serializing_if = "Option::is_none")]
4727 pub evidence_pack_refs: Option<Vec<String>>,
4728 #[serde(rename = "secret_grant_refs", skip_serializing_if = "Option::is_none")]
4729 pub secret_grant_refs: Option<Vec<String>>,
4730 #[serde(rename = "start_receipt_refs", skip_serializing_if = "Option::is_none")]
4731 pub start_receipt_refs: Option<Vec<String>>,
4732 #[serde(rename = "verification_command", skip_serializing_if = "Option::is_none")]
4733 pub verification_command: Option<String>,
4734 #[serde(rename = "teardown_command", skip_serializing_if = "Option::is_none")]
4735 pub teardown_command: Option<String>,
4736 #[serde(rename = "runtime_handles", skip_serializing_if = "Option::is_none")]
4737 pub runtime_handles: Option<std::collections::HashMap<String, serde_json::Value>>,
4738}
4739
4740impl LaunchpadRun {
4741 pub fn new() -> LaunchpadRun {
4742 LaunchpadRun {
4743 launch_id: None,
4744 run_id: None,
4745 app_id: None,
4746 substrate_id: None,
4747 state: None,
4748 kernel_verdict: None,
4749 reason: None,
4750 reason_code: None,
4751 plan_hash: None,
4752 launchplan_hash: None,
4753 install_receipt_ref: None,
4754 launch_receipt_ref: None,
4755 health_receipt_ref: None,
4756 teardown_receipt_ref: None,
4757 evidence_pack_refs: None,
4758 secret_grant_refs: None,
4759 start_receipt_refs: None,
4760 verification_command: None,
4761 teardown_command: None,
4762 runtime_handles: None,
4763 }
4764 }
4765}
4766
4767#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4779pub struct LaunchpadRunDetail {
4780 #[serde(rename = "run")]
4781 pub run: Box<LaunchpadRun>,
4782 #[serde(rename = "app", skip_serializing_if = "Option::is_none")]
4783 pub app: Option<Box<LaunchpadApp>>,
4784 #[serde(rename = "instance")]
4785 pub instance: Box<LaunchpadRuntimeInstance>,
4786 #[serde(rename = "gates")]
4787 pub gates: Vec<LaunchpadGateResult>,
4788 #[serde(rename = "events")]
4789 pub events: Vec<LaunchpadRunEvent>,
4790 #[serde(rename = "offline_verification", skip_serializing_if = "Option::is_none")]
4791 pub offline_verification: Option<std::collections::HashMap<String, serde_json::Value>>,
4792}
4793
4794impl LaunchpadRunDetail {
4795 pub fn new(run: LaunchpadRun, instance: LaunchpadRuntimeInstance, gates: Vec<LaunchpadGateResult>, events: Vec<LaunchpadRunEvent>) -> LaunchpadRunDetail {
4796 LaunchpadRunDetail {
4797 run: Box::new(run),
4798 app: None,
4799 instance: Box::new(instance),
4800 gates,
4801 events,
4802 offline_verification: None,
4803 }
4804 }
4805}
4806
4807#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4819pub struct LaunchpadRunEvent {
4820 #[serde(rename = "run_id")]
4821 pub run_id: String,
4822 #[serde(rename = "stage")]
4823 pub stage: String,
4824 #[serde(rename = "verdict")]
4825 pub verdict: String,
4826 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
4827 pub reason_code: Option<String>,
4828 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
4829 pub receipt_ref: Option<String>,
4830 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
4831 pub proofgraph_node: Option<String>,
4832 #[serde(rename = "evidence_refs", skip_serializing_if = "Option::is_none")]
4833 pub evidence_refs: Option<Vec<String>>,
4834 #[serde(rename = "raw_payload_ref", skip_serializing_if = "Option::is_none")]
4835 pub raw_payload_ref: Option<String>,
4836 #[serde(rename = "human_summary", skip_serializing_if = "Option::is_none")]
4837 pub human_summary: Option<String>,
4838 #[serde(rename = "why", skip_serializing_if = "Option::is_none")]
4839 pub why: Option<String>,
4840 #[serde(rename = "proof_status")]
4841 pub proof_status: String,
4842 #[serde(rename = "receipt_required", skip_serializing_if = "Option::is_none")]
4843 pub receipt_required: Option<bool>,
4844 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4845 pub cli_equivalent: Option<String>,
4846 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
4847 pub fix_actions: Option<Vec<LaunchpadFixAction>>,
4848 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
4849 pub created_at: Option<String>,
4850}
4851
4852impl LaunchpadRunEvent {
4853 pub fn new(run_id: String, stage: String, verdict: String, proof_status: String) -> LaunchpadRunEvent {
4854 LaunchpadRunEvent {
4855 run_id,
4856 stage,
4857 verdict,
4858 reason_code: None,
4859 receipt_ref: None,
4860 proofgraph_node: None,
4861 evidence_refs: None,
4862 raw_payload_ref: None,
4863 human_summary: None,
4864 why: None,
4865 proof_status,
4866 receipt_required: None,
4867 cli_equivalent: None,
4868 fix_actions: None,
4869 created_at: None,
4870 }
4871 }
4872}
4873
4874#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4886pub struct LaunchpadRuntimeInstance {
4887 #[serde(rename = "run_id")]
4888 pub run_id: String,
4889 #[serde(rename = "container_id", skip_serializing_if = "Option::is_none")]
4890 pub container_id: Option<String>,
4891 #[serde(rename = "launchplan_hash", skip_serializing_if = "Option::is_none")]
4892 pub launchplan_hash: Option<String>,
4893 #[serde(rename = "state")]
4894 pub state: String,
4895 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
4896 pub verdict: Option<String>,
4897 #[serde(rename = "active_grants", skip_serializing_if = "Option::is_none")]
4898 pub active_grants: Option<Vec<String>>,
4899 #[serde(rename = "receipt_refs", skip_serializing_if = "Option::is_none")]
4900 pub receipt_refs: Option<Vec<String>>,
4901 #[serde(rename = "evidencepack_ref", skip_serializing_if = "Option::is_none")]
4902 pub evidencepack_ref: Option<String>,
4903 #[serde(rename = "offline_verify_command", skip_serializing_if = "Option::is_none")]
4904 pub offline_verify_command: Option<String>,
4905 #[serde(rename = "teardown_command", skip_serializing_if = "Option::is_none")]
4906 pub teardown_command: Option<String>,
4907 #[serde(rename = "sandbox_grant", skip_serializing_if = "Option::is_none")]
4908 pub sandbox_grant: Option<Box<LaunchpadSandboxGrant>>,
4909 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
4910 pub cli_equivalent: Option<String>,
4911}
4912
4913impl LaunchpadRuntimeInstance {
4914 pub fn new(run_id: String, state: String) -> LaunchpadRuntimeInstance {
4915 LaunchpadRuntimeInstance {
4916 run_id,
4917 container_id: None,
4918 launchplan_hash: None,
4919 state,
4920 verdict: None,
4921 active_grants: None,
4922 receipt_refs: None,
4923 evidencepack_ref: None,
4924 offline_verify_command: None,
4925 teardown_command: None,
4926 sandbox_grant: None,
4927 cli_equivalent: None,
4928 }
4929 }
4930}
4931
4932#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4944pub struct LaunchpadSandboxGrant {
4945 #[serde(rename = "backend_profile", skip_serializing_if = "Option::is_none")]
4946 pub backend_profile: Option<String>,
4947 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
4948 pub runtime: Option<String>,
4949 #[serde(rename = "runtime_version", skip_serializing_if = "Option::is_none")]
4950 pub runtime_version: Option<String>,
4951 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
4952 pub image_digest: Option<String>,
4953 #[serde(rename = "filesystem_preopens", skip_serializing_if = "Option::is_none")]
4954 pub filesystem_preopens: Option<Vec<String>>,
4955 #[serde(rename = "network_policy", skip_serializing_if = "Option::is_none")]
4956 pub network_policy: Option<Vec<String>>,
4957 #[serde(rename = "env", skip_serializing_if = "Option::is_none")]
4958 pub env: Option<Vec<String>>,
4959 #[serde(rename = "resource_limits", skip_serializing_if = "Option::is_none")]
4960 pub resource_limits: Option<std::collections::HashMap<String, String>>,
4961 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
4962 pub policy_epoch: Option<String>,
4963 #[serde(rename = "grant_hash", skip_serializing_if = "Option::is_none")]
4964 pub grant_hash: Option<String>,
4965 #[serde(rename = "proof_status", skip_serializing_if = "Option::is_none")]
4966 pub proof_status: Option<String>,
4967}
4968
4969impl LaunchpadSandboxGrant {
4970 pub fn new() -> LaunchpadSandboxGrant {
4971 LaunchpadSandboxGrant {
4972 backend_profile: None,
4973 runtime: None,
4974 runtime_version: None,
4975 image_digest: None,
4976 filesystem_preopens: None,
4977 network_policy: None,
4978 env: None,
4979 resource_limits: None,
4980 policy_epoch: None,
4981 grant_hash: None,
4982 proof_status: None,
4983 }
4984 }
4985}
4986
4987#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
4999pub struct LaunchpadSecretGrant {
5000 #[serde(rename = "name")]
5001 pub name: String,
5002 #[serde(rename = "required", skip_serializing_if = "Option::is_none")]
5003 pub required: Option<bool>,
5004 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
5005 pub provider: Option<String>,
5006 #[serde(rename = "scope", skip_serializing_if = "Option::is_none")]
5007 pub scope: Option<String>,
5008 #[serde(rename = "status")]
5009 pub status: String,
5010 #[serde(rename = "launch_impact", skip_serializing_if = "Option::is_none")]
5011 pub launch_impact: Option<String>,
5012 #[serde(rename = "grant_ref", skip_serializing_if = "Option::is_none")]
5013 pub grant_ref: Option<String>,
5014 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
5015 pub receipt_ref: Option<String>,
5016 #[serde(rename = "value_env", skip_serializing_if = "Option::is_none")]
5017 pub value_env: Option<String>,
5018}
5019
5020impl LaunchpadSecretGrant {
5021 pub fn new(name: String, status: String) -> LaunchpadSecretGrant {
5022 LaunchpadSecretGrant {
5023 name,
5024 required: None,
5025 provider: None,
5026 scope: None,
5027 status,
5028 launch_impact: None,
5029 grant_ref: None,
5030 receipt_ref: None,
5031 value_env: None,
5032 }
5033 }
5034}
5035
5036#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5048pub struct LaunchpadSubstrate {
5049 #[serde(rename = "id")]
5050 pub id: String,
5051 #[serde(rename = "name")]
5052 pub name: String,
5053 #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
5054 pub kind: Option<String>,
5055 #[serde(rename = "availability", skip_serializing_if = "Option::is_none")]
5056 pub availability: Option<String>,
5057 #[serde(rename = "default_dry_run", skip_serializing_if = "Option::is_none")]
5058 pub default_dry_run: Option<bool>,
5059 #[serde(rename = "blocked_reason", skip_serializing_if = "Option::is_none")]
5060 pub blocked_reason: Option<String>,
5061}
5062
5063impl LaunchpadSubstrate {
5064 pub fn new(id: String, name: String) -> LaunchpadSubstrate {
5065 LaunchpadSubstrate {
5066 id,
5067 name,
5068 kind: None,
5069 availability: None,
5070 default_dry_run: None,
5071 blocked_reason: None,
5072 }
5073 }
5074}
5075
5076#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5088pub struct ListConsoleSurfaces200Response {
5089 #[serde(rename = "surfaces", skip_serializing_if = "Option::is_none")]
5090 pub surfaces: Option<Vec<ConsoleSurfaceRef>>,
5091}
5092
5093impl ListConsoleSurfaces200Response {
5094 pub fn new() -> ListConsoleSurfaces200Response {
5095 ListConsoleSurfaces200Response {
5096 surfaces: None,
5097 }
5098 }
5099}
5100
5101#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5113pub struct ListLaunchpadApps200Response {
5114 #[serde(rename = "apps")]
5115 pub apps: Vec<LaunchpadApp>,
5116}
5117
5118impl ListLaunchpadApps200Response {
5119 pub fn new(apps: Vec<LaunchpadApp>) -> ListLaunchpadApps200Response {
5120 ListLaunchpadApps200Response {
5121 apps,
5122 }
5123 }
5124}
5125
5126#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5138pub struct ListLaunchpadImports200Response {
5139 #[serde(rename = "imports")]
5140 pub imports: Vec<LaunchpadImportRecord>,
5141 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
5142 pub cli_equivalent: Option<String>,
5143}
5144
5145impl ListLaunchpadImports200Response {
5146 pub fn new(imports: Vec<LaunchpadImportRecord>) -> ListLaunchpadImports200Response {
5147 ListLaunchpadImports200Response {
5148 imports,
5149 cli_equivalent: None,
5150 }
5151 }
5152}
5153
5154#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5166pub struct ListLaunchpadRunEvents200Response {
5167 #[serde(rename = "events", skip_serializing_if = "Option::is_none")]
5168 pub events: Option<Vec<LaunchpadRunEvent>>,
5169}
5170
5171impl ListLaunchpadRunEvents200Response {
5172 pub fn new() -> ListLaunchpadRunEvents200Response {
5173 ListLaunchpadRunEvents200Response {
5174 events: None,
5175 }
5176 }
5177}
5178
5179#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5191pub struct ListLaunchpadRuns200Response {
5192 #[serde(rename = "runs", skip_serializing_if = "Option::is_none")]
5193 pub runs: Option<Vec<LaunchpadRun>>,
5194 #[serde(rename = "instances", skip_serializing_if = "Option::is_none")]
5195 pub instances: Option<Vec<LaunchpadRuntimeInstance>>,
5196}
5197
5198impl ListLaunchpadRuns200Response {
5199 pub fn new() -> ListLaunchpadRuns200Response {
5200 ListLaunchpadRuns200Response {
5201 runs: None,
5202 instances: None,
5203 }
5204 }
5205}
5206
5207#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5219pub struct ListLaunchpadSecretGrants200Response {
5220 #[serde(rename = "secrets", skip_serializing_if = "Option::is_none")]
5221 pub secrets: Option<Vec<LaunchpadSecretGrant>>,
5222}
5223
5224impl ListLaunchpadSecretGrants200Response {
5225 pub fn new() -> ListLaunchpadSecretGrants200Response {
5226 ListLaunchpadSecretGrants200Response {
5227 secrets: None,
5228 }
5229 }
5230}
5231
5232#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5244pub struct ListLaunchpadSubstrates200Response {
5245 #[serde(rename = "substrates")]
5246 pub substrates: Vec<LaunchpadSubstrate>,
5247}
5248
5249impl ListLaunchpadSubstrates200Response {
5250 pub fn new(substrates: Vec<LaunchpadSubstrate>) -> ListLaunchpadSubstrates200Response {
5251 ListLaunchpadSubstrates200Response {
5252 substrates,
5253 }
5254 }
5255}
5256
5257#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5269pub struct LocalConsoleRuntimeConfig {
5270 #[serde(rename = "api_base_url")]
5271 pub api_base_url: String,
5272 #[serde(rename = "local_mode")]
5273 pub local_mode: bool,
5274 #[serde(rename = "start_onboarding")]
5275 pub start_onboarding: bool,
5276 #[serde(rename = "tenant_id")]
5277 pub tenant_id: String,
5278 #[serde(rename = "principal_id")]
5279 pub principal_id: String,
5280 #[serde(rename = "profile")]
5281 pub profile: LocalConsoleRuntimeConfigProfile,
5282 #[serde(rename = "entitlements")]
5283 pub entitlements: Vec<LocalConsoleRuntimeConfigEntitlements>,
5284}
5285
5286impl LocalConsoleRuntimeConfig {
5287 pub fn new(api_base_url: String, local_mode: bool, start_onboarding: bool, tenant_id: String, principal_id: String, profile: LocalConsoleRuntimeConfigProfile, entitlements: Vec<LocalConsoleRuntimeConfigEntitlements>) -> LocalConsoleRuntimeConfig {
5288 LocalConsoleRuntimeConfig {
5289 api_base_url,
5290 local_mode,
5291 start_onboarding,
5292 tenant_id,
5293 principal_id,
5294 profile,
5295 entitlements,
5296 }
5297 }
5298}
5299#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5301pub enum LocalConsoleRuntimeConfigProfile {
5302 #[serde(rename = "claude")]
5303 Claude,
5304 #[serde(rename = "codex")]
5305 Codex,
5306 #[serde(rename = "mcp")]
5307 Mcp,
5308 #[serde(rename = "openai-compatible")]
5309 OpenaiCompatible,
5310}
5311
5312impl Default for LocalConsoleRuntimeConfigProfile {
5313 fn default() -> LocalConsoleRuntimeConfigProfile {
5314 Self::Claude
5315 }
5316}
5317#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5319pub enum LocalConsoleRuntimeConfigEntitlements {
5320 #[serde(rename = "OSS_CORE")]
5321 OssCore,
5322}
5323
5324impl Default for LocalConsoleRuntimeConfigEntitlements {
5325 fn default() -> LocalConsoleRuntimeConfigEntitlements {
5326 Self::OssCore
5327 }
5328}
5329
5330#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5342pub struct LocalSessionExchangeRequest {
5343 #[serde(rename = "token")]
5344 pub token: String,
5345}
5346
5347impl LocalSessionExchangeRequest {
5348 pub fn new(token: String) -> LocalSessionExchangeRequest {
5349 LocalSessionExchangeRequest {
5350 token,
5351 }
5352 }
5353}
5354
5355#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5367pub struct LocalSessionExchangeResponse {
5368 #[serde(rename = "session_token")]
5369 pub session_token: String,
5370 #[serde(rename = "tenant_id")]
5371 pub tenant_id: String,
5372 #[serde(rename = "principal_id")]
5373 pub principal_id: String,
5374 #[serde(rename = "principal")]
5375 pub principal: String,
5376 #[serde(rename = "expires_at")]
5377 pub expires_at: String,
5378 #[serde(rename = "entitlements")]
5379 pub entitlements: Vec<LocalSessionExchangeResponseEntitlements>,
5380}
5381
5382impl LocalSessionExchangeResponse {
5383 pub fn new(session_token: String, tenant_id: String, principal_id: String, principal: String, expires_at: String, entitlements: Vec<LocalSessionExchangeResponseEntitlements>) -> LocalSessionExchangeResponse {
5384 LocalSessionExchangeResponse {
5385 session_token,
5386 tenant_id,
5387 principal_id,
5388 principal,
5389 expires_at,
5390 entitlements,
5391 }
5392 }
5393}
5394#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5396pub enum LocalSessionExchangeResponseEntitlements {
5397 #[serde(rename = "OSS_CORE")]
5398 OssCore,
5399}
5400
5401impl Default for LocalSessionExchangeResponseEntitlements {
5402 fn default() -> LocalSessionExchangeResponseEntitlements {
5403 Self::OssCore
5404 }
5405}
5406
5407#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5419pub struct McpAuthorizationProfile {
5420 #[serde(rename = "profile_id", skip_serializing_if = "Option::is_none")]
5421 pub profile_id: Option<String>,
5422 #[serde(rename = "protocol_version", skip_serializing_if = "Option::is_none")]
5423 pub protocol_version: Option<String>,
5424 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
5425 pub resource: Option<String>,
5426 #[serde(rename = "authorization_servers", skip_serializing_if = "Option::is_none")]
5427 pub authorization_servers: Option<Vec<String>>,
5428 #[serde(rename = "scopes_supported", skip_serializing_if = "Option::is_none")]
5429 pub scopes_supported: Option<Vec<String>>,
5430 #[serde(rename = "tool_scopes", skip_serializing_if = "Option::is_none")]
5431 pub tool_scopes: Option<std::collections::HashMap<String, serde_json::Value>>,
5432 #[serde(rename = "required_audience", skip_serializing_if = "Option::is_none")]
5433 pub required_audience: Option<String>,
5434 #[serde(rename = "stale_after", skip_serializing_if = "Option::is_none")]
5435 pub stale_after: Option<String>,
5436 #[serde(rename = "profile_hash", skip_serializing_if = "Option::is_none")]
5437 pub profile_hash: Option<String>,
5438}
5439
5440impl McpAuthorizationProfile {
5441 pub fn new() -> McpAuthorizationProfile {
5442 McpAuthorizationProfile {
5443 profile_id: None,
5444 protocol_version: None,
5445 resource: None,
5446 authorization_servers: None,
5447 scopes_supported: None,
5448 tool_scopes: None,
5449 required_audience: None,
5450 stale_after: None,
5451 profile_hash: None,
5452 }
5453 }
5454}
5455
5456#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5468pub struct McpAuthorizeCallRequest {
5469 #[serde(rename = "server_id")]
5470 pub server_id: String,
5471 #[serde(rename = "tool_name")]
5472 pub tool_name: String,
5473 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
5474 pub args_hash: Option<String>,
5475 #[serde(rename = "granted_scopes", skip_serializing_if = "Option::is_none")]
5476 pub granted_scopes: Option<Vec<String>>,
5477 #[serde(rename = "pinned_schema_hash", skip_serializing_if = "Option::is_none")]
5478 pub pinned_schema_hash: Option<String>,
5479 #[serde(rename = "tool_schema", skip_serializing_if = "Option::is_none")]
5480 pub tool_schema: Option<std::collections::HashMap<String, serde_json::Value>>,
5481 #[serde(rename = "output_schema", skip_serializing_if = "Option::is_none")]
5482 pub output_schema: Option<std::collections::HashMap<String, serde_json::Value>>,
5483 #[serde(rename = "oauth_resource", skip_serializing_if = "Option::is_none")]
5484 pub oauth_resource: Option<String>,
5485 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
5486 pub receipt_id: Option<String>,
5487}
5488
5489impl McpAuthorizeCallRequest {
5490 pub fn new(server_id: String, tool_name: String) -> McpAuthorizeCallRequest {
5491 McpAuthorizeCallRequest {
5492 server_id,
5493 tool_name,
5494 args_hash: None,
5495 granted_scopes: None,
5496 pinned_schema_hash: None,
5497 tool_schema: None,
5498 output_schema: None,
5499 oauth_resource: None,
5500 receipt_id: None,
5501 }
5502 }
5503}
5504
5505#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5517pub struct McpCapabilityManifest {
5518 #[serde(rename = "server_name", skip_serializing_if = "Option::is_none")]
5519 pub server_name: Option<String>,
5520 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
5521 pub version: Option<String>,
5522 #[serde(rename = "governance", skip_serializing_if = "Option::is_none")]
5523 pub governance: Option<String>,
5524 #[serde(rename = "tools", skip_serializing_if = "Option::is_none")]
5525 pub tools: Option<Vec<McpToolRef>>,
5526}
5527
5528impl McpCapabilityManifest {
5529 pub fn new() -> McpCapabilityManifest {
5530 McpCapabilityManifest {
5531 server_name: None,
5532 version: None,
5533 governance: None,
5534 tools: None,
5535 }
5536 }
5537}
5538
5539#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5551pub struct McpProtectedResourceMetadata {
5552 #[serde(rename = "resource", skip_serializing_if = "Option::is_none")]
5553 pub resource: Option<String>,
5554 #[serde(rename = "authorization_servers", skip_serializing_if = "Option::is_none")]
5555 pub authorization_servers: Option<Vec<String>>,
5556 #[serde(rename = "scopes_supported", skip_serializing_if = "Option::is_none")]
5557 pub scopes_supported: Option<Vec<String>>,
5558 #[serde(rename = "bearer_methods_supported", skip_serializing_if = "Option::is_none")]
5559 pub bearer_methods_supported: Option<Vec<String>>,
5560 #[serde(rename = "resource_documentation", skip_serializing_if = "Option::is_none")]
5561 pub resource_documentation: Option<String>,
5562}
5563
5564impl McpProtectedResourceMetadata {
5565 pub fn new() -> McpProtectedResourceMetadata {
5566 McpProtectedResourceMetadata {
5567 resource: None,
5568 authorization_servers: None,
5569 scopes_supported: None,
5570 bearer_methods_supported: None,
5571 resource_documentation: None,
5572 }
5573 }
5574}
5575
5576#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5588pub struct McpQuarantineRecord {
5589 #[serde(rename = "server_id")]
5590 pub server_id: String,
5591 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5592 pub name: Option<String>,
5593 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
5594 pub transport: Option<String>,
5595 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
5596 pub endpoint: Option<String>,
5597 #[serde(rename = "tool_names", skip_serializing_if = "Option::is_none")]
5598 pub tool_names: Option<Vec<String>>,
5599 #[serde(rename = "risk")]
5600 pub risk: McpQuarantineRecordRisk,
5601 #[serde(rename = "state")]
5602 pub state: McpQuarantineRecordState,
5603 #[serde(rename = "discovered_at")]
5604 pub discovered_at: String,
5605 #[serde(rename = "approved_at", skip_serializing_if = "Option::is_none")]
5606 pub approved_at: Option<String>,
5607 #[serde(rename = "approved_by", skip_serializing_if = "Option::is_none")]
5608 pub approved_by: Option<String>,
5609 #[serde(rename = "approval_receipt_id", skip_serializing_if = "Option::is_none")]
5610 pub approval_receipt_id: Option<String>,
5611 #[serde(rename = "revoked_at", skip_serializing_if = "Option::is_none")]
5612 pub revoked_at: Option<String>,
5613 #[serde(rename = "expires_at", skip_serializing_if = "Option::is_none")]
5614 pub expires_at: Option<String>,
5615 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
5616 pub reason: Option<String>,
5617}
5618
5619impl McpQuarantineRecord {
5620 pub fn new(server_id: String, risk: McpQuarantineRecordRisk, state: McpQuarantineRecordState, discovered_at: String) -> McpQuarantineRecord {
5621 McpQuarantineRecord {
5622 server_id,
5623 name: None,
5624 transport: None,
5625 endpoint: None,
5626 tool_names: None,
5627 risk,
5628 state,
5629 discovered_at,
5630 approved_at: None,
5631 approved_by: None,
5632 approval_receipt_id: None,
5633 revoked_at: None,
5634 expires_at: None,
5635 reason: None,
5636 }
5637 }
5638}
5639#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5641pub enum McpQuarantineRecordRisk {
5642 #[serde(rename = "unknown")]
5643 Unknown,
5644 #[serde(rename = "low")]
5645 Low,
5646 #[serde(rename = "medium")]
5647 Medium,
5648 #[serde(rename = "high")]
5649 High,
5650 #[serde(rename = "critical")]
5651 Critical,
5652}
5653
5654impl Default for McpQuarantineRecordRisk {
5655 fn default() -> McpQuarantineRecordRisk {
5656 Self::Unknown
5657 }
5658}
5659#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5661pub enum McpQuarantineRecordState {
5662 #[serde(rename = "discovered")]
5663 Discovered,
5664 #[serde(rename = "quarantined")]
5665 Quarantined,
5666 #[serde(rename = "approved")]
5667 Approved,
5668 #[serde(rename = "revoked")]
5669 Revoked,
5670 #[serde(rename = "expired")]
5671 Expired,
5672}
5673
5674impl Default for McpQuarantineRecordState {
5675 fn default() -> McpQuarantineRecordState {
5676 Self::Discovered
5677 }
5678}
5679
5680#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5692pub struct McpRegistryApprovalRequest {
5693 #[serde(rename = "server_id")]
5694 pub server_id: String,
5695 #[serde(rename = "approver_id")]
5696 pub approver_id: String,
5697 #[serde(rename = "approval_receipt_id")]
5698 pub approval_receipt_id: String,
5699 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
5700 pub reason: Option<String>,
5701}
5702
5703impl McpRegistryApprovalRequest {
5704 pub fn new(server_id: String, approver_id: String, approval_receipt_id: String) -> McpRegistryApprovalRequest {
5705 McpRegistryApprovalRequest {
5706 server_id,
5707 approver_id,
5708 approval_receipt_id,
5709 reason: None,
5710 }
5711 }
5712}
5713
5714#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5726pub struct McpRegistryDiscoverRequest {
5727 #[serde(rename = "server_id")]
5728 pub server_id: String,
5729 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5730 pub name: Option<String>,
5731 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
5732 pub transport: Option<String>,
5733 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
5734 pub endpoint: Option<String>,
5735 #[serde(rename = "tool_names", skip_serializing_if = "Option::is_none")]
5736 pub tool_names: Option<Vec<String>>,
5737 #[serde(rename = "risk", skip_serializing_if = "Option::is_none")]
5738 pub risk: Option<McpRegistryDiscoverRequestRisk>,
5739 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
5740 pub reason: Option<String>,
5741}
5742
5743impl McpRegistryDiscoverRequest {
5744 pub fn new(server_id: String) -> McpRegistryDiscoverRequest {
5745 McpRegistryDiscoverRequest {
5746 server_id,
5747 name: None,
5748 transport: None,
5749 endpoint: None,
5750 tool_names: None,
5751 risk: None,
5752 reason: None,
5753 }
5754 }
5755}
5756#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5758pub enum McpRegistryDiscoverRequestRisk {
5759 #[serde(rename = "unknown")]
5760 Unknown,
5761 #[serde(rename = "low")]
5762 Low,
5763 #[serde(rename = "medium")]
5764 Medium,
5765 #[serde(rename = "high")]
5766 High,
5767 #[serde(rename = "critical")]
5768 Critical,
5769}
5770
5771impl Default for McpRegistryDiscoverRequestRisk {
5772 fn default() -> McpRegistryDiscoverRequestRisk {
5773 Self::Unknown
5774 }
5775}
5776
5777#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5789pub struct McpRemoteDiscovery {
5790 #[serde(rename = "server_name", skip_serializing_if = "Option::is_none")]
5791 pub server_name: Option<String>,
5792 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
5793 pub version: Option<String>,
5794 #[serde(rename = "capabilities_url", skip_serializing_if = "Option::is_none")]
5795 pub capabilities_url: Option<String>,
5796 #[serde(rename = "execute_url", skip_serializing_if = "Option::is_none")]
5797 pub execute_url: Option<String>,
5798 #[serde(rename = "mcp_endpoint", skip_serializing_if = "Option::is_none")]
5799 pub mcp_endpoint: Option<String>,
5800 #[serde(rename = "supported_protocol_versions", skip_serializing_if = "Option::is_none")]
5801 pub supported_protocol_versions: Option<Vec<String>>,
5802 #[serde(rename = "auth_mode", skip_serializing_if = "Option::is_none")]
5803 pub auth_mode: Option<String>,
5804 #[serde(rename = "governance", skip_serializing_if = "Option::is_none")]
5805 pub governance: Option<String>,
5806}
5807
5808impl McpRemoteDiscovery {
5809 pub fn new() -> McpRemoteDiscovery {
5810 McpRemoteDiscovery {
5811 server_name: None,
5812 version: None,
5813 capabilities_url: None,
5814 execute_url: None,
5815 mcp_endpoint: None,
5816 supported_protocol_versions: None,
5817 auth_mode: None,
5818 governance: None,
5819 }
5820 }
5821}
5822
5823#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5835pub struct McpScanRequest {
5836 #[serde(rename = "server_id")]
5837 pub server_id: String,
5838 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
5839 pub name: Option<String>,
5840 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
5841 pub transport: Option<String>,
5842 #[serde(rename = "endpoint", skip_serializing_if = "Option::is_none")]
5843 pub endpoint: Option<String>,
5844 #[serde(rename = "tool_names", skip_serializing_if = "Option::is_none")]
5845 pub tool_names: Option<Vec<String>>,
5846 #[serde(rename = "manifest", skip_serializing_if = "Option::is_none")]
5847 pub manifest: Option<std::collections::HashMap<String, serde_json::Value>>,
5848}
5849
5850impl McpScanRequest {
5851 pub fn new(server_id: String) -> McpScanRequest {
5852 McpScanRequest {
5853 server_id,
5854 name: None,
5855 transport: None,
5856 endpoint: None,
5857 tool_names: None,
5858 manifest: None,
5859 }
5860 }
5861}
5862
5863#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5875pub struct McpScanResult {
5876 #[serde(rename = "server_id", skip_serializing_if = "Option::is_none")]
5877 pub server_id: Option<String>,
5878 #[serde(rename = "risk", skip_serializing_if = "Option::is_none")]
5879 pub risk: Option<String>,
5880 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
5881 pub state: Option<String>,
5882 #[serde(rename = "tool_count", skip_serializing_if = "Option::is_none")]
5883 pub tool_count: Option<i32>,
5884 #[serde(rename = "findings", skip_serializing_if = "Option::is_none")]
5885 pub findings: Option<Vec<String>>,
5886 #[serde(rename = "recommended_action", skip_serializing_if = "Option::is_none")]
5887 pub recommended_action: Option<String>,
5888 #[serde(rename = "quarantine_record_id", skip_serializing_if = "Option::is_none")]
5889 pub quarantine_record_id: Option<String>,
5890 #[serde(rename = "requires_approval", skip_serializing_if = "Option::is_none")]
5891 pub requires_approval: Option<bool>,
5892 #[serde(rename = "schema_pin_required", skip_serializing_if = "Option::is_none")]
5893 pub schema_pin_required: Option<bool>,
5894 #[serde(rename = "authorization_needed", skip_serializing_if = "Option::is_none")]
5895 pub authorization_needed: Option<bool>,
5896 #[serde(rename = "scanned_at", skip_serializing_if = "Option::is_none")]
5897 pub scanned_at: Option<String>,
5898}
5899
5900impl McpScanResult {
5901 pub fn new() -> McpScanResult {
5902 McpScanResult {
5903 server_id: None,
5904 risk: None,
5905 state: None,
5906 tool_count: None,
5907 findings: None,
5908 recommended_action: None,
5909 quarantine_record_id: None,
5910 requires_approval: None,
5911 schema_pin_required: None,
5912 authorization_needed: None,
5913 scanned_at: None,
5914 }
5915 }
5916}
5917
5918#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5930pub struct McpToolCallRequest {
5931 #[serde(rename = "method")]
5932 pub method: String,
5933 #[serde(rename = "params", skip_serializing_if = "Option::is_none")]
5934 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
5935}
5936
5937impl McpToolCallRequest {
5938 pub fn new(method: String) -> McpToolCallRequest {
5939 McpToolCallRequest {
5940 method,
5941 params: None,
5942 }
5943 }
5944}
5945
5946#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5958pub struct McpToolCallResponse {
5959 #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
5960 pub result: Option<Box<McpToolCallResponseResult>>,
5961 #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
5962 pub error: Option<String>,
5963 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
5964 pub reason_code: Option<String>,
5965 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
5966 pub args_hash: Option<String>,
5967 #[serde(rename = "proofgraph_node", skip_serializing_if = "Option::is_none")]
5968 pub proofgraph_node: Option<String>,
5969 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
5970 pub receipt_id: Option<String>,
5971}
5972
5973impl McpToolCallResponse {
5974 pub fn new() -> McpToolCallResponse {
5975 McpToolCallResponse {
5976 result: None,
5977 error: None,
5978 reason_code: None,
5979 args_hash: None,
5980 proofgraph_node: None,
5981 receipt_id: None,
5982 }
5983 }
5984}
5985
5986#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
6000#[serde(untagged)]
6001pub enum McpToolCallResponseResult {
6002 String(String),
6003 Object(std::collections::HashMap<String, serde_json::Value>),
6004}
6005
6006impl Default for McpToolCallResponseResult {
6007 fn default() -> Self {
6008 Self::String(Default::default())
6009 }
6010}
6011
6012#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6024pub struct McpToolRef {
6025 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
6026 pub name: Option<String>,
6027 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
6028 pub description: Option<String>,
6029 #[serde(rename = "server_id", skip_serializing_if = "Option::is_none")]
6030 pub server_id: Option<String>,
6031 #[serde(rename = "schema", skip_serializing_if = "Option::is_none")]
6032 pub schema: Option<std::collections::HashMap<String, serde_json::Value>>,
6033}
6034
6035impl McpToolRef {
6036 pub fn new() -> McpToolRef {
6037 McpToolRef {
6038 name: None,
6039 description: None,
6040 server_id: None,
6041 schema: None,
6042 }
6043 }
6044}
6045
6046#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6058pub struct McpjsonrpcError {
6059 #[serde(rename = "code", skip_serializing_if = "Option::is_none")]
6060 pub code: Option<i32>,
6061 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
6062 pub message: Option<String>,
6063}
6064
6065impl McpjsonrpcError {
6066 pub fn new() -> McpjsonrpcError {
6067 McpjsonrpcError {
6068 code: None,
6069 message: None,
6070 }
6071 }
6072}
6073
6074#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6086pub struct McpjsonrpcRequest {
6087 #[serde(rename = "jsonrpc")]
6088 pub jsonrpc: McpjsonrpcRequestJsonrpc,
6089 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
6090 pub id: Option<Box<McpjsonrpcRequestId>>,
6091 #[serde(rename = "method")]
6092 pub method: String,
6093 #[serde(rename = "params", skip_serializing_if = "Option::is_none")]
6094 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
6095}
6096
6097impl McpjsonrpcRequest {
6098 pub fn new(jsonrpc: McpjsonrpcRequestJsonrpc, method: String) -> McpjsonrpcRequest {
6099 McpjsonrpcRequest {
6100 jsonrpc,
6101 id: None,
6102 method,
6103 params: None,
6104 }
6105 }
6106}
6107#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6109pub enum McpjsonrpcRequestJsonrpc {
6110 #[serde(rename = "2.0")]
6111 Variant2Period0,
6112}
6113
6114impl Default for McpjsonrpcRequestJsonrpc {
6115 fn default() -> McpjsonrpcRequestJsonrpc {
6116 Self::Variant2Period0
6117 }
6118}
6119
6120#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
6134#[serde(untagged)]
6135pub enum McpjsonrpcRequestId {
6136 String(String),
6137 Integer(i32),
6138}
6139
6140impl Default for McpjsonrpcRequestId {
6141 fn default() -> Self {
6142 Self::String(Default::default())
6143 }
6144}
6145
6146#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6158pub struct McpjsonrpcResponse {
6159 #[serde(rename = "jsonrpc", skip_serializing_if = "Option::is_none")]
6160 pub jsonrpc: Option<McpjsonrpcResponseJsonrpc>,
6161 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
6162 pub id: Option<Box<McpjsonrpcResponseId>>,
6163 #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
6164 pub result: Option<std::collections::HashMap<String, serde_json::Value>>,
6165 #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
6166 pub error: Option<Box<McpjsonrpcError>>,
6167}
6168
6169impl McpjsonrpcResponse {
6170 pub fn new() -> McpjsonrpcResponse {
6171 McpjsonrpcResponse {
6172 jsonrpc: None,
6173 id: None,
6174 result: None,
6175 error: None,
6176 }
6177 }
6178}
6179#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6181pub enum McpjsonrpcResponseJsonrpc {
6182 #[serde(rename = "2.0")]
6183 Variant2Period0,
6184}
6185
6186impl Default for McpjsonrpcResponseJsonrpc {
6187 fn default() -> McpjsonrpcResponseJsonrpc {
6188 Self::Variant2Period0
6189 }
6190}
6191
6192#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
6204#[serde(untagged)]
6205pub enum McpjsonrpcResponseId {
6206 String(String),
6207 Integer(i32),
6208}
6209
6210impl Default for McpjsonrpcResponseId {
6211 fn default() -> Self {
6212 Self::String(Default::default())
6213 }
6214}
6215
6216#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6228pub struct NegativeBoundaryVector {
6229 #[serde(rename = "id")]
6230 pub id: String,
6231 #[serde(rename = "category")]
6232 pub category: String,
6233 #[serde(rename = "trigger")]
6234 pub trigger: String,
6235 #[serde(rename = "expected_verdict")]
6236 pub expected_verdict: NegativeBoundaryVectorExpectedVerdict,
6237 #[serde(rename = "expected_reason_code")]
6238 pub expected_reason_code: String,
6239 #[serde(rename = "must_emit_receipt")]
6240 pub must_emit_receipt: bool,
6241 #[serde(rename = "must_not_dispatch")]
6242 pub must_not_dispatch: bool,
6243 #[serde(rename = "must_bind_evidence", skip_serializing_if = "Option::is_none")]
6244 pub must_bind_evidence: Option<Vec<String>>,
6245}
6246
6247impl NegativeBoundaryVector {
6248 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 {
6249 NegativeBoundaryVector {
6250 id,
6251 category,
6252 trigger,
6253 expected_verdict,
6254 expected_reason_code,
6255 must_emit_receipt,
6256 must_not_dispatch,
6257 must_bind_evidence: None,
6258 }
6259 }
6260}
6261#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6263pub enum NegativeBoundaryVectorExpectedVerdict {
6264 #[serde(rename = "ALLOW")]
6265 Allow,
6266 #[serde(rename = "DENY")]
6267 Deny,
6268 #[serde(rename = "ESCALATE")]
6269 Escalate,
6270}
6271
6272impl Default for NegativeBoundaryVectorExpectedVerdict {
6273 fn default() -> NegativeBoundaryVectorExpectedVerdict {
6274 Self::Allow
6275 }
6276}
6277
6278#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6290pub struct NetworkGrant {
6291 #[serde(rename = "mode")]
6292 pub mode: NetworkGrantMode,
6293 #[serde(rename = "destinations", skip_serializing_if = "Option::is_none")]
6294 pub destinations: Option<Vec<String>>,
6295 #[serde(rename = "cidrs", skip_serializing_if = "Option::is_none")]
6296 pub cidrs: Option<Vec<String>>,
6297}
6298
6299impl NetworkGrant {
6300 pub fn new(mode: NetworkGrantMode) -> NetworkGrant {
6301 NetworkGrant {
6302 mode,
6303 destinations: None,
6304 cidrs: None,
6305 }
6306 }
6307}
6308#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6310pub enum NetworkGrantMode {
6311 #[serde(rename = "deny-all")]
6312 DenyAll,
6313 #[serde(rename = "allowlist")]
6314 Allowlist,
6315}
6316
6317impl Default for NetworkGrantMode {
6318 fn default() -> NetworkGrantMode {
6319 Self::DenyAll
6320 }
6321}
6322
6323#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6335pub struct OAuthRequirement {
6336 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
6337 pub provider: Option<String>,
6338 #[serde(rename = "scopes", skip_serializing_if = "Option::is_none")]
6339 pub scopes: Option<Vec<String>>,
6340 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
6341 pub source: Option<String>,
6342}
6343
6344impl OAuthRequirement {
6345 pub fn new() -> OAuthRequirement {
6346 OAuthRequirement {
6347 provider: None,
6348 scopes: None,
6349 source: None,
6350 }
6351 }
6352}
6353
6354#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6366pub struct OnboardingEvidenceExport {
6367 #[serde(rename = "evidence_pack_ref")]
6368 pub evidence_pack_ref: String,
6369 #[serde(rename = "sha256")]
6370 pub sha256: String,
6371 #[serde(rename = "receipt_refs")]
6372 pub receipt_refs: std::collections::HashMap<String, String>,
6373 #[serde(rename = "steps")]
6374 pub steps: Vec<OnboardingStep>,
6375}
6376
6377impl OnboardingEvidenceExport {
6378 pub fn new(evidence_pack_ref: String, sha256: String, receipt_refs: std::collections::HashMap<String, String>, steps: Vec<OnboardingStep>) -> OnboardingEvidenceExport {
6379 OnboardingEvidenceExport {
6380 evidence_pack_ref,
6381 sha256,
6382 receipt_refs,
6383 steps,
6384 }
6385 }
6386}
6387
6388#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6400pub struct OnboardingRunStepRequest {
6401 #[serde(rename = "step_id")]
6402 pub step_id: OnboardingRunStepRequestStepId,
6403}
6404
6405impl OnboardingRunStepRequest {
6406 pub fn new(step_id: OnboardingRunStepRequestStepId) -> OnboardingRunStepRequest {
6407 OnboardingRunStepRequest {
6408 step_id,
6409 }
6410 }
6411}
6412#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6414pub enum OnboardingRunStepRequestStepId {
6415 #[serde(rename = "health")]
6416 Health,
6417 #[serde(rename = "policy")]
6418 Policy,
6419 #[serde(rename = "allow")]
6420 Allow,
6421 #[serde(rename = "deny")]
6422 Deny,
6423 #[serde(rename = "mcp")]
6424 Mcp,
6425 #[serde(rename = "verify")]
6426 Verify,
6427}
6428
6429impl Default for OnboardingRunStepRequestStepId {
6430 fn default() -> OnboardingRunStepRequestStepId {
6431 Self::Health
6432 }
6433}
6434
6435#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6447pub struct OnboardingState {
6448 #[serde(rename = "mode")]
6449 pub mode: OnboardingStateMode,
6450 #[serde(rename = "entitlements")]
6451 pub entitlements: Vec<OnboardingStateEntitlements>,
6452 #[serde(rename = "profile")]
6453 pub profile: String,
6454 #[serde(rename = "policy_path", skip_serializing_if = "Option::is_none")]
6455 pub policy_path: Option<String>,
6456 #[serde(rename = "evidence_pack_ref", skip_serializing_if = "Option::is_none")]
6457 pub evidence_pack_ref: Option<String>,
6458 #[serde(rename = "steps")]
6459 pub steps: Vec<OnboardingStep>,
6460}
6461
6462impl OnboardingState {
6463 pub fn new(mode: OnboardingStateMode, entitlements: Vec<OnboardingStateEntitlements>, profile: String, steps: Vec<OnboardingStep>) -> OnboardingState {
6464 OnboardingState {
6465 mode,
6466 entitlements,
6467 profile,
6468 policy_path: None,
6469 evidence_pack_ref: None,
6470 steps,
6471 }
6472 }
6473}
6474#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6476pub enum OnboardingStateMode {
6477 #[serde(rename = "self-hosted-oss")]
6478 SelfHostedOss,
6479}
6480
6481impl Default for OnboardingStateMode {
6482 fn default() -> OnboardingStateMode {
6483 Self::SelfHostedOss
6484 }
6485}
6486#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6488pub enum OnboardingStateEntitlements {
6489 #[serde(rename = "OSS_CORE")]
6490 OssCore,
6491}
6492
6493impl Default for OnboardingStateEntitlements {
6494 fn default() -> OnboardingStateEntitlements {
6495 Self::OssCore
6496 }
6497}
6498
6499#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6511pub struct OnboardingStep {
6512 #[serde(rename = "id")]
6513 pub id: OnboardingStepId,
6514 #[serde(rename = "title")]
6515 pub title: String,
6516 #[serde(rename = "description")]
6517 pub description: String,
6518 #[serde(rename = "status")]
6519 pub status: OnboardingStepStatus,
6520 #[serde(rename = "verdict")]
6521 pub verdict: OnboardingStepVerdict,
6522 #[serde(rename = "reason_code")]
6523 pub reason_code: String,
6524 #[serde(rename = "receipt_ref", skip_serializing_if = "Option::is_none")]
6525 pub receipt_ref: Option<String>,
6526}
6527
6528impl OnboardingStep {
6529 pub fn new(id: OnboardingStepId, title: String, description: String, status: OnboardingStepStatus, verdict: OnboardingStepVerdict, reason_code: String) -> OnboardingStep {
6530 OnboardingStep {
6531 id,
6532 title,
6533 description,
6534 status,
6535 verdict,
6536 reason_code,
6537 receipt_ref: None,
6538 }
6539 }
6540}
6541#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6543pub enum OnboardingStepId {
6544 #[serde(rename = "health")]
6545 Health,
6546 #[serde(rename = "policy")]
6547 Policy,
6548 #[serde(rename = "allow")]
6549 Allow,
6550 #[serde(rename = "deny")]
6551 Deny,
6552 #[serde(rename = "mcp")]
6553 Mcp,
6554 #[serde(rename = "verify")]
6555 Verify,
6556}
6557
6558impl Default for OnboardingStepId {
6559 fn default() -> OnboardingStepId {
6560 Self::Health
6561 }
6562}
6563#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6565pub enum OnboardingStepStatus {
6566 #[serde(rename = "pending")]
6567 Pending,
6568 #[serde(rename = "pass")]
6569 Pass,
6570}
6571
6572impl Default for OnboardingStepStatus {
6573 fn default() -> OnboardingStepStatus {
6574 Self::Pending
6575 }
6576}
6577#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6579pub enum OnboardingStepVerdict {
6580 #[serde(rename = "ALLOW")]
6581 Allow,
6582 #[serde(rename = "DENY")]
6583 Deny,
6584 #[serde(rename = "ESCALATE")]
6585 Escalate,
6586}
6587
6588impl Default for OnboardingStepVerdict {
6589 fn default() -> OnboardingStepVerdict {
6590 Self::Allow
6591 }
6592}
6593
6594#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6607pub struct PdpRequest {
6608 #[serde(rename = "boundary")]
6609 pub boundary: Box<EffectBoundary>,
6610}
6611
6612impl PdpRequest {
6613 pub fn new(boundary: EffectBoundary) -> PdpRequest {
6615 PdpRequest {
6616 boundary: Box::new(boundary),
6617 }
6618 }
6619}
6620
6621#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6634pub struct PdpResponse {
6635 #[serde(rename = "decision")]
6636 pub decision: Box<GovernanceDecision>,
6637}
6638
6639impl PdpResponse {
6640 pub fn new(decision: GovernanceDecision) -> PdpResponse {
6642 PdpResponse {
6643 decision: Box::new(decision),
6644 }
6645 }
6646}
6647
6648#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6660pub struct PlanTransaction {
6661 #[serde(rename = "plan_transaction_id")]
6662 pub plan_transaction_id: String,
6663 #[serde(rename = "plan_hash")]
6664 pub plan_hash: String,
6665 #[serde(rename = "read_set")]
6666 pub read_set: Vec<String>,
6667 #[serde(rename = "write_set")]
6668 pub write_set: Vec<String>,
6669 #[serde(rename = "assumption_set")]
6670 pub assumption_set: Vec<String>,
6671 #[serde(rename = "version_dependencies", skip_serializing_if = "Option::is_none")]
6672 pub version_dependencies: Option<Vec<String>>,
6673 #[serde(rename = "verification_obligations")]
6674 pub verification_obligations: Vec<String>,
6675 #[serde(rename = "conflict_policy")]
6676 pub conflict_policy: PlanTransactionConflictPolicy,
6677 #[serde(rename = "rollback_policy", skip_serializing_if = "Option::is_none")]
6678 pub rollback_policy: Option<std::collections::HashMap<String, serde_json::Value>>,
6679 #[serde(rename = "rollback_or_compensation_policy", skip_serializing_if = "Option::is_none")]
6680 pub rollback_or_compensation_policy: Option<String>,
6681 #[serde(rename = "approval_state", skip_serializing_if = "Option::is_none")]
6682 pub approval_state: Option<PlanTransactionApprovalState>,
6683 #[serde(rename = "human_review_state", skip_serializing_if = "Option::is_none")]
6684 pub human_review_state: Option<String>,
6685 #[serde(rename = "transaction_hash", skip_serializing_if = "Option::is_none")]
6686 pub transaction_hash: Option<String>,
6687}
6688
6689impl PlanTransaction {
6690 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 {
6691 PlanTransaction {
6692 plan_transaction_id,
6693 plan_hash,
6694 read_set,
6695 write_set,
6696 assumption_set,
6697 version_dependencies: None,
6698 verification_obligations,
6699 conflict_policy,
6700 rollback_policy: None,
6701 rollback_or_compensation_policy: None,
6702 approval_state: None,
6703 human_review_state: None,
6704 transaction_hash: None,
6705 }
6706 }
6707}
6708#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6710pub enum PlanTransactionConflictPolicy {
6711 #[serde(rename = "deny")]
6712 Deny,
6713 #[serde(rename = "escalate")]
6714 Escalate,
6715 #[serde(rename = "last_writer_forbidden")]
6716 LastWriterForbidden,
6717}
6718
6719impl Default for PlanTransactionConflictPolicy {
6720 fn default() -> PlanTransactionConflictPolicy {
6721 Self::Deny
6722 }
6723}
6724#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6726pub enum PlanTransactionApprovalState {
6727 #[serde(rename = "none")]
6728 None,
6729 #[serde(rename = "required")]
6730 Required,
6731 #[serde(rename = "approved")]
6732 Approved,
6733 #[serde(rename = "denied")]
6734 Denied,
6735 #[serde(rename = "expired")]
6736 Expired,
6737}
6738
6739impl Default for PlanTransactionApprovalState {
6740 fn default() -> PlanTransactionApprovalState {
6741 Self::None
6742 }
6743}
6744
6745#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6758pub struct PolicyBundle {
6759 #[serde(rename = "name")]
6760 pub name: String,
6761 #[serde(rename = "version")]
6762 pub version: String,
6763 #[serde(rename = "content_hash")]
6765 pub content_hash: String,
6766 #[serde(rename = "signature", default, skip_serializing_if = "Option::is_none")]
6768 pub signature: Option<Option<String>>,
6769 #[serde(rename = "pack_type", skip_serializing_if = "Option::is_none")]
6770 pub pack_type: Option<PolicyBundlePackType>,
6771}
6772
6773impl PolicyBundle {
6774 pub fn new(name: String, version: String, content_hash: String) -> PolicyBundle {
6776 PolicyBundle {
6777 name,
6778 version,
6779 content_hash,
6780 signature: None,
6781 pack_type: None,
6782 }
6783 }
6784}
6785#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6787pub enum PolicyBundlePackType {
6788 #[serde(rename = "jurisdiction")]
6789 Jurisdiction,
6790 #[serde(rename = "industry")]
6791 Industry,
6792 #[serde(rename = "business")]
6793 Business,
6794 #[serde(rename = "custom")]
6795 Custom,
6796}
6797
6798impl Default for PolicyBundlePackType {
6799 fn default() -> PolicyBundlePackType {
6800 Self::Jurisdiction
6801 }
6802}
6803
6804#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6816pub struct PreflightCheck {
6817 #[serde(rename = "id")]
6818 pub id: String,
6819 #[serde(rename = "status")]
6820 pub status: String,
6821 #[serde(rename = "summary")]
6822 pub summary: String,
6823 #[serde(rename = "evidence_ref", skip_serializing_if = "Option::is_none")]
6824 pub evidence_ref: Option<String>,
6825 #[serde(rename = "fix_actions", skip_serializing_if = "Option::is_none")]
6826 pub fix_actions: Option<Vec<String>>,
6827}
6828
6829impl PreflightCheck {
6830 pub fn new(id: String, status: String, summary: String) -> PreflightCheck {
6831 PreflightCheck {
6832 id,
6833 status,
6834 summary,
6835 evidence_ref: None,
6836 fix_actions: None,
6837 }
6838 }
6839}
6840
6841#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6853pub struct PreflightLaunchpadImport202Response {
6854 #[serde(rename = "import")]
6855 pub import: Box<LaunchpadImportRecord>,
6856 #[serde(rename = "preflight")]
6857 pub preflight: Box<ImportPreflightResult>,
6858 #[serde(rename = "cli_equivalent", skip_serializing_if = "Option::is_none")]
6859 pub cli_equivalent: Option<String>,
6860}
6861
6862impl PreflightLaunchpadImport202Response {
6863 pub fn new(import: LaunchpadImportRecord, preflight: ImportPreflightResult) -> PreflightLaunchpadImport202Response {
6864 PreflightLaunchpadImport202Response {
6865 import: Box::new(import),
6866 preflight: Box::new(preflight),
6867 cli_equivalent: None,
6868 }
6869 }
6870}
6871
6872#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6884pub struct Receipt {
6885 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
6886 pub receipt_id: Option<String>,
6887 #[serde(rename = "decision_id", skip_serializing_if = "Option::is_none")]
6888 pub decision_id: Option<String>,
6889 #[serde(rename = "effect_id", skip_serializing_if = "Option::is_none")]
6890 pub effect_id: Option<String>,
6891 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
6892 pub status: Option<String>,
6893 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
6894 pub reason_code: Option<String>,
6895 #[serde(rename = "output_hash", skip_serializing_if = "Option::is_none")]
6896 pub output_hash: Option<String>,
6897 #[serde(rename = "blob_hash", skip_serializing_if = "Option::is_none")]
6898 pub blob_hash: Option<String>,
6899 #[serde(rename = "prev_hash", skip_serializing_if = "Option::is_none")]
6900 pub prev_hash: Option<String>,
6901 #[serde(rename = "lamport_clock", skip_serializing_if = "Option::is_none")]
6902 pub lamport_clock: Option<i32>,
6903 #[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
6904 pub signature: Option<String>,
6905 #[serde(rename = "signature_profile", skip_serializing_if = "Option::is_none")]
6907 pub signature_profile: Option<ReceiptSignatureProfile>,
6908 #[serde(rename = "signature_algorithm", skip_serializing_if = "Option::is_none")]
6910 pub signature_algorithm: Option<String>,
6911 #[serde(rename = "key_id", skip_serializing_if = "Option::is_none")]
6913 pub key_id: Option<String>,
6914 #[serde(rename = "public_key_set", skip_serializing_if = "Option::is_none")]
6916 pub public_key_set: Option<std::collections::HashMap<String, String>>,
6917 #[serde(rename = "timestamp", skip_serializing_if = "Option::is_none")]
6918 pub timestamp: Option<String>,
6919 #[serde(rename = "principal", skip_serializing_if = "Option::is_none")]
6920 pub principal: Option<String>,
6921 #[serde(rename = "executor_id", skip_serializing_if = "Option::is_none")]
6922 pub executor_id: Option<String>,
6923 #[serde(rename = "args_hash", skip_serializing_if = "Option::is_none")]
6924 pub args_hash: Option<String>,
6925 #[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
6926 pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
6927}
6928
6929impl Receipt {
6930 pub fn new() -> Receipt {
6931 Receipt {
6932 receipt_id: None,
6933 decision_id: None,
6934 effect_id: None,
6935 status: None,
6936 reason_code: None,
6937 output_hash: None,
6938 blob_hash: None,
6939 prev_hash: None,
6940 lamport_clock: None,
6941 signature: None,
6942 signature_profile: None,
6943 signature_algorithm: None,
6944 key_id: None,
6945 public_key_set: None,
6946 timestamp: None,
6947 principal: None,
6948 executor_id: None,
6949 args_hash: None,
6950 metadata: None,
6951 }
6952 }
6953}
6954#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6956pub enum ReceiptSignatureProfile {
6957 #[serde(rename = "classical")]
6958 Classical,
6959 #[serde(rename = "hybrid")]
6960 Hybrid,
6961 #[serde(rename = "pqc")]
6962 Pqc,
6963}
6964
6965impl Default for ReceiptSignatureProfile {
6966 fn default() -> ReceiptSignatureProfile {
6967 Self::Classical
6968 }
6969}
6970
6971#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6983pub struct ReceiptListResponse {
6984 #[serde(rename = "receipts", skip_serializing_if = "Option::is_none")]
6985 pub receipts: Option<Vec<Receipt>>,
6986 #[serde(rename = "count", skip_serializing_if = "Option::is_none")]
6987 pub count: Option<i32>,
6988 #[serde(rename = "next_cursor", skip_serializing_if = "Option::is_none")]
6989 pub next_cursor: Option<String>,
6990 #[serde(rename = "has_more", skip_serializing_if = "Option::is_none")]
6991 pub has_more: Option<bool>,
6992}
6993
6994impl ReceiptListResponse {
6995 pub fn new() -> ReceiptListResponse {
6996 ReceiptListResponse {
6997 receipts: None,
6998 count: None,
6999 next_cursor: None,
7000 has_more: None,
7001 }
7002 }
7003}
7004
7005#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7017pub struct RevokeMcpRegistryRecordRequest {
7018 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
7019 pub reason: Option<String>,
7020}
7021
7022impl RevokeMcpRegistryRecordRequest {
7023 pub fn new() -> RevokeMcpRegistryRecordRequest {
7024 RevokeMcpRegistryRecordRequest {
7025 reason: None,
7026 }
7027 }
7028}
7029
7030#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7042pub struct RevokeTrustKeyRequest {
7043 #[serde(rename = "tenant_id")]
7044 pub tenant_id: String,
7045 #[serde(rename = "key_id")]
7046 pub key_id: String,
7047}
7048
7049impl RevokeTrustKeyRequest {
7050 pub fn new(tenant_id: String, key_id: String) -> RevokeTrustKeyRequest {
7051 RevokeTrustKeyRequest {
7052 tenant_id,
7053 key_id,
7054 }
7055 }
7056}
7057
7058#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7070pub struct RunAgentUiRuntimeRequest {
7071 #[serde(rename = "threadId", skip_serializing_if = "Option::is_none")]
7072 pub thread_id: Option<String>,
7073 #[serde(rename = "runId", skip_serializing_if = "Option::is_none")]
7074 pub run_id: Option<String>,
7075 #[serde(rename = "workspaceId", skip_serializing_if = "Option::is_none")]
7076 pub workspace_id: Option<String>,
7077 #[serde(rename = "currentSurface", skip_serializing_if = "Option::is_none")]
7078 pub current_surface: Option<String>,
7079 #[serde(rename = "state", skip_serializing_if = "Option::is_none")]
7080 pub state: Option<std::collections::HashMap<String, serde_json::Value>>,
7081 #[serde(rename = "messages", default, skip_serializing_if = "Option::is_none")]
7082 pub messages: Option<Option<serde_json::Value>>,
7083}
7084
7085impl RunAgentUiRuntimeRequest {
7086 pub fn new() -> RunAgentUiRuntimeRequest {
7087 RunAgentUiRuntimeRequest {
7088 thread_id: None,
7089 run_id: None,
7090 workspace_id: None,
7091 current_surface: None,
7092 state: None,
7093 messages: None,
7094 }
7095 }
7096}
7097
7098#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7110pub struct RunPublicDemo200Response {
7111 #[serde(rename = "verdict")]
7112 pub verdict: RunPublicDemo200ResponseVerdict,
7113 #[serde(rename = "reason_code")]
7114 pub reason_code: String,
7115 #[serde(rename = "receipt")]
7116 pub receipt: Box<Receipt>,
7117 #[serde(rename = "proof_refs")]
7118 pub proof_refs: Box<RunPublicDemo200ResponseProofRefs>,
7119 #[serde(rename = "verification_hint")]
7120 pub verification_hint: String,
7121 #[serde(rename = "sandbox_label")]
7122 pub sandbox_label: String,
7123 #[serde(rename = "helm_ai_kernel_version")]
7124 pub helm_ai_kernel_version: String,
7125}
7126
7127impl RunPublicDemo200Response {
7128 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 {
7129 RunPublicDemo200Response {
7130 verdict,
7131 reason_code,
7132 receipt: Box::new(receipt),
7133 proof_refs: Box::new(proof_refs),
7134 verification_hint,
7135 sandbox_label,
7136 helm_ai_kernel_version,
7137 }
7138 }
7139}
7140#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7142pub enum RunPublicDemo200ResponseVerdict {
7143 #[serde(rename = "ALLOW")]
7144 Allow,
7145 #[serde(rename = "DENY")]
7146 Deny,
7147 #[serde(rename = "ESCALATE")]
7148 Escalate,
7149}
7150
7151impl Default for RunPublicDemo200ResponseVerdict {
7152 fn default() -> RunPublicDemo200ResponseVerdict {
7153 Self::Allow
7154 }
7155}
7156
7157#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7169pub struct RunPublicDemo200ResponseProofRefs {
7170 #[serde(rename = "decision_id")]
7171 pub decision_id: String,
7172 #[serde(rename = "receipt_id")]
7173 pub receipt_id: String,
7174 #[serde(rename = "receipt_hash")]
7175 pub receipt_hash: String,
7176}
7177
7178impl RunPublicDemo200ResponseProofRefs {
7179 pub fn new(decision_id: String, receipt_id: String, receipt_hash: String) -> RunPublicDemo200ResponseProofRefs {
7180 RunPublicDemo200ResponseProofRefs {
7181 decision_id,
7182 receipt_id,
7183 receipt_hash,
7184 }
7185 }
7186}
7187
7188#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7200pub struct RunPublicDemoRequest {
7201 #[serde(rename = "action_id")]
7202 pub action_id: RunPublicDemoRequestActionId,
7203 #[serde(rename = "policy_id", skip_serializing_if = "Option::is_none")]
7204 pub policy_id: Option<String>,
7205 #[serde(rename = "args", skip_serializing_if = "Option::is_none")]
7206 pub args: Option<std::collections::HashMap<String, serde_json::Value>>,
7207}
7208
7209impl RunPublicDemoRequest {
7210 pub fn new(action_id: RunPublicDemoRequestActionId) -> RunPublicDemoRequest {
7211 RunPublicDemoRequest {
7212 action_id,
7213 policy_id: None,
7214 args: None,
7215 }
7216 }
7217}
7218#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7220pub enum RunPublicDemoRequestActionId {
7221 #[serde(rename = "read_ticket")]
7222 ReadTicket,
7223 #[serde(rename = "draft_reply")]
7224 DraftReply,
7225 #[serde(rename = "small_refund")]
7226 SmallRefund,
7227 #[serde(rename = "large_refund")]
7228 LargeRefund,
7229 #[serde(rename = "dangerous_shell")]
7230 DangerousShell,
7231 #[serde(rename = "export_customer_list")]
7232 ExportCustomerList,
7233 #[serde(rename = "modify_policy")]
7234 ModifyPolicy,
7235}
7236
7237impl Default for RunPublicDemoRequestActionId {
7238 fn default() -> RunPublicDemoRequestActionId {
7239 Self::ReadTicket
7240 }
7241}
7242
7243#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7255pub struct SandboxBackendProfile {
7256 #[serde(rename = "name")]
7257 pub name: String,
7258 #[serde(rename = "kind")]
7259 pub kind: SandboxBackendProfileKind,
7260 #[serde(rename = "runtime")]
7261 pub runtime: String,
7262 #[serde(rename = "hosted")]
7263 pub hosted: bool,
7264 #[serde(rename = "deny_network_by_default")]
7265 pub deny_network_by_default: bool,
7266 #[serde(rename = "native_isolation")]
7267 pub native_isolation: bool,
7268 #[serde(rename = "experimental", skip_serializing_if = "Option::is_none")]
7269 pub experimental: Option<bool>,
7270}
7271
7272impl SandboxBackendProfile {
7273 pub fn new(name: String, kind: SandboxBackendProfileKind, runtime: String, hosted: bool, deny_network_by_default: bool, native_isolation: bool) -> SandboxBackendProfile {
7274 SandboxBackendProfile {
7275 name,
7276 kind,
7277 runtime,
7278 hosted,
7279 deny_network_by_default,
7280 native_isolation,
7281 experimental: None,
7282 }
7283 }
7284}
7285#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7287pub enum SandboxBackendProfileKind {
7288 #[serde(rename = "wasi-wazero")]
7289 WasiWazero,
7290 #[serde(rename = "wasi-wasmtime")]
7291 WasiWasmtime,
7292 #[serde(rename = "native-nsjail")]
7293 NativeNsjail,
7294 #[serde(rename = "native-gvisor")]
7295 NativeGvisor,
7296 #[serde(rename = "native-firecracker")]
7297 NativeFirecracker,
7298 #[serde(rename = "hosted-adapter")]
7299 HostedAdapter,
7300}
7301
7302impl Default for SandboxBackendProfileKind {
7303 fn default() -> SandboxBackendProfileKind {
7304 Self::WasiWazero
7305 }
7306}
7307
7308#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7320pub struct SandboxGrant {
7321 #[serde(rename = "grant_id")]
7322 pub grant_id: String,
7323 #[serde(rename = "runtime")]
7324 pub runtime: String,
7325 #[serde(rename = "runtime_version", skip_serializing_if = "Option::is_none")]
7326 pub runtime_version: Option<String>,
7327 #[serde(rename = "profile")]
7328 pub profile: String,
7329 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
7330 pub image_digest: Option<String>,
7331 #[serde(rename = "template_digest", skip_serializing_if = "Option::is_none")]
7332 pub template_digest: Option<String>,
7333 #[serde(rename = "filesystem_preopens", skip_serializing_if = "Option::is_none")]
7334 pub filesystem_preopens: Option<Vec<FilesystemPreopen>>,
7335 #[serde(rename = "env")]
7336 pub env: Box<EnvExposurePolicy>,
7337 #[serde(rename = "network")]
7338 pub network: Box<NetworkGrant>,
7339 #[serde(rename = "limits", skip_serializing_if = "Option::is_none")]
7340 pub limits: Option<Box<SandboxGrantLimits>>,
7341 #[serde(rename = "declared_at")]
7342 pub declared_at: String,
7343 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
7344 pub policy_epoch: Option<String>,
7345 #[serde(rename = "grant_hash", skip_serializing_if = "Option::is_none")]
7346 pub grant_hash: Option<String>,
7347}
7348
7349impl SandboxGrant {
7350 pub fn new(grant_id: String, runtime: String, profile: String, env: EnvExposurePolicy, network: NetworkGrant, declared_at: String) -> SandboxGrant {
7351 SandboxGrant {
7352 grant_id,
7353 runtime,
7354 runtime_version: None,
7355 profile,
7356 image_digest: None,
7357 template_digest: None,
7358 filesystem_preopens: None,
7359 env: Box::new(env),
7360 network: Box::new(network),
7361 limits: None,
7362 declared_at,
7363 policy_epoch: None,
7364 grant_hash: None,
7365 }
7366 }
7367}
7368
7369#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
7381#[serde(untagged)]
7382pub enum SandboxGrantInspection {
7383 SandboxBackendProfileList(Vec<SandboxBackendProfile>),
7384 SandboxGrant(Box<SandboxGrant>),
7385}
7386
7387impl Default for SandboxGrantInspection {
7388 fn default() -> Self {
7389 Self::SandboxBackendProfileList(Default::default())
7390 }
7391}
7392
7393#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7405pub struct SandboxGrantLimits {
7406 #[serde(rename = "memory_bytes", skip_serializing_if = "Option::is_none")]
7407 pub memory_bytes: Option<i64>,
7408 #[serde(rename = "cpu_time", skip_serializing_if = "Option::is_none")]
7410 pub cpu_time: Option<i64>,
7411 #[serde(rename = "output_bytes", skip_serializing_if = "Option::is_none")]
7412 pub output_bytes: Option<i64>,
7413 #[serde(rename = "open_files", skip_serializing_if = "Option::is_none")]
7414 pub open_files: Option<i32>,
7415}
7416
7417impl SandboxGrantLimits {
7418 pub fn new() -> SandboxGrantLimits {
7419 SandboxGrantLimits {
7420 memory_bytes: None,
7421 cpu_time: None,
7422 output_bytes: None,
7423 open_files: None,
7424 }
7425 }
7426}
7427
7428#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7440pub struct SandboxPreflightRequest {
7441 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
7442 pub runtime: Option<String>,
7443 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
7444 pub profile: Option<String>,
7445 #[serde(rename = "image_digest", skip_serializing_if = "Option::is_none")]
7446 pub image_digest: Option<String>,
7447 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
7448 pub policy_epoch: Option<String>,
7449 #[serde(rename = "requested_grant", skip_serializing_if = "Option::is_none")]
7450 pub requested_grant: Option<Box<SandboxGrant>>,
7451 #[serde(rename = "expected_grant_hash", skip_serializing_if = "Option::is_none")]
7452 pub expected_grant_hash: Option<String>,
7453}
7454
7455impl SandboxPreflightRequest {
7456 pub fn new() -> SandboxPreflightRequest {
7457 SandboxPreflightRequest {
7458 runtime: None,
7459 profile: None,
7460 image_digest: None,
7461 policy_epoch: None,
7462 requested_grant: None,
7463 expected_grant_hash: None,
7464 }
7465 }
7466}
7467
7468#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7480pub struct SandboxPreflightResult {
7481 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
7482 pub verdict: Option<SandboxPreflightResultVerdict>,
7483 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
7484 pub reason_code: Option<String>,
7485 #[serde(rename = "grant_id", skip_serializing_if = "Option::is_none")]
7486 pub grant_id: Option<String>,
7487 #[serde(rename = "grant_hash", skip_serializing_if = "Option::is_none")]
7488 pub grant_hash: Option<String>,
7489 #[serde(rename = "dispatch_ready", skip_serializing_if = "Option::is_none")]
7490 pub dispatch_ready: Option<bool>,
7491 #[serde(rename = "findings", skip_serializing_if = "Option::is_none")]
7492 pub findings: Option<Vec<String>>,
7493 #[serde(rename = "checked_at", skip_serializing_if = "Option::is_none")]
7494 pub checked_at: Option<String>,
7495}
7496
7497impl SandboxPreflightResult {
7498 pub fn new() -> SandboxPreflightResult {
7499 SandboxPreflightResult {
7500 verdict: None,
7501 reason_code: None,
7502 grant_id: None,
7503 grant_hash: None,
7504 dispatch_ready: None,
7505 findings: None,
7506 checked_at: None,
7507 }
7508 }
7509}
7510#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
7512pub enum SandboxPreflightResultVerdict {
7513 #[serde(rename = "ALLOW")]
7514 Allow,
7515 #[serde(rename = "DENY")]
7516 Deny,
7517 #[serde(rename = "ESCALATE")]
7518 Escalate,
7519}
7520
7521impl Default for SandboxPreflightResultVerdict {
7522 fn default() -> SandboxPreflightResultVerdict {
7523 Self::Allow
7524 }
7525}
7526
7527#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7539pub struct SecretContract {
7540 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
7541 pub name: Option<String>,
7542 #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
7543 pub source: Option<String>,
7544 #[serde(rename = "required", skip_serializing_if = "Option::is_none")]
7545 pub required: Option<bool>,
7546 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
7547 pub reason: Option<String>,
7548 #[serde(rename = "targets", skip_serializing_if = "Option::is_none")]
7549 pub targets: Option<Vec<String>>,
7550}
7551
7552impl SecretContract {
7553 pub fn new() -> SecretContract {
7554 SecretContract {
7555 name: None,
7556 source: None,
7557 required: None,
7558 reason: None,
7559 targets: None,
7560 }
7561 }
7562}
7563
7564#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7576pub struct Session {
7577 #[serde(rename = "session_id", skip_serializing_if = "Option::is_none")]
7578 pub session_id: Option<String>,
7579 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
7580 pub created_at: Option<String>,
7581 #[serde(rename = "receipt_count", skip_serializing_if = "Option::is_none")]
7582 pub receipt_count: Option<i32>,
7583 #[serde(rename = "last_lamport_clock", skip_serializing_if = "Option::is_none")]
7584 pub last_lamport_clock: Option<i32>,
7585}
7586
7587impl Session {
7588 pub fn new() -> Session {
7589 Session {
7590 session_id: None,
7591 created_at: None,
7592 receipt_count: None,
7593 last_lamport_clock: None,
7594 }
7595 }
7596}
7597
7598#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7610pub struct SourceFileSummary {
7611 #[serde(rename = "path")]
7612 pub path: String,
7613 #[serde(rename = "kind")]
7614 pub kind: String,
7615 #[serde(rename = "size", skip_serializing_if = "Option::is_none")]
7616 pub size: Option<i32>,
7617 #[serde(rename = "sha", skip_serializing_if = "Option::is_none")]
7618 pub sha: Option<String>,
7619 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
7620 pub language: Option<String>,
7621 #[serde(rename = "content", skip_serializing_if = "Option::is_none")]
7622 pub content: Option<String>,
7623}
7624
7625impl SourceFileSummary {
7626 pub fn new(path: String, kind: String) -> SourceFileSummary {
7627 SourceFileSummary {
7628 path,
7629 kind,
7630 size: None,
7631 sha: None,
7632 language: None,
7633 content: None,
7634 }
7635 }
7636}
7637
7638#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7650pub struct SourceSnapshot {
7651 #[serde(rename = "repo_url")]
7652 pub repo_url: String,
7653 #[serde(rename = "provider")]
7654 pub provider: String,
7655 #[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
7656 pub owner: Option<String>,
7657 #[serde(rename = "repo", skip_serializing_if = "Option::is_none")]
7658 pub repo: Option<String>,
7659 #[serde(rename = "ref", skip_serializing_if = "Option::is_none")]
7660 pub r#ref: Option<String>,
7661 #[serde(rename = "commit", skip_serializing_if = "Option::is_none")]
7662 pub commit: Option<String>,
7663 #[serde(rename = "license_spdx", skip_serializing_if = "Option::is_none")]
7664 pub license_spdx: Option<String>,
7665 #[serde(rename = "license_state")]
7666 pub license_state: String,
7667 #[serde(rename = "fetched_at", skip_serializing_if = "Option::is_none")]
7668 pub fetched_at: Option<String>,
7669 #[serde(rename = "files")]
7670 pub files: Vec<SourceFileSummary>,
7671 #[serde(rename = "api_source", skip_serializing_if = "Option::is_none")]
7672 pub api_source: Option<String>,
7673}
7674
7675impl SourceSnapshot {
7676 pub fn new(repo_url: String, provider: String, license_state: String, files: Vec<SourceFileSummary>) -> SourceSnapshot {
7677 SourceSnapshot {
7678 repo_url,
7679 provider,
7680 owner: None,
7681 repo: None,
7682 r#ref: None,
7683 commit: None,
7684 license_spdx: None,
7685 license_state,
7686 fetched_at: None,
7687 files,
7688 api_source: None,
7689 }
7690 }
7691}
7692
7693#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7705pub struct TamperPublicDemoReceipt200Response {
7706 #[serde(rename = "valid")]
7707 pub valid: bool,
7708 #[serde(rename = "signature_valid")]
7709 pub signature_valid: bool,
7710 #[serde(rename = "hash_matches")]
7711 pub hash_matches: bool,
7712 #[serde(rename = "reason")]
7713 pub reason: String,
7714 #[serde(rename = "receipt_hash")]
7715 pub receipt_hash: String,
7716 #[serde(rename = "expected_receipt_hash")]
7717 pub expected_receipt_hash: String,
7718 #[serde(rename = "original_hash")]
7719 pub original_hash: String,
7720 #[serde(rename = "tampered_hash")]
7721 pub tampered_hash: String,
7722}
7723
7724impl TamperPublicDemoReceipt200Response {
7725 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 {
7726 TamperPublicDemoReceipt200Response {
7727 valid,
7728 signature_valid,
7729 hash_matches,
7730 reason,
7731 receipt_hash,
7732 expected_receipt_hash,
7733 original_hash,
7734 tampered_hash,
7735 }
7736 }
7737}
7738
7739#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7751pub struct TamperPublicDemoReceiptRequest {
7752 #[serde(rename = "receipt")]
7753 pub receipt: Box<Receipt>,
7754 #[serde(rename = "expected_receipt_hash")]
7756 pub expected_receipt_hash: String,
7757 #[serde(rename = "mutation", skip_serializing_if = "Option::is_none")]
7758 pub mutation: Option<String>,
7759}
7760
7761impl TamperPublicDemoReceiptRequest {
7762 pub fn new(receipt: Receipt, expected_receipt_hash: String) -> TamperPublicDemoReceiptRequest {
7763 TamperPublicDemoReceiptRequest {
7764 receipt: Box::new(receipt),
7765 expected_receipt_hash,
7766 mutation: None,
7767 }
7768 }
7769}
7770
7771#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7783pub struct TargetPlan {
7784 #[serde(rename = "target_id")]
7785 pub target_id: String,
7786 #[serde(rename = "kind")]
7787 pub kind: String,
7788 #[serde(rename = "substrate_id", skip_serializing_if = "Option::is_none")]
7789 pub substrate_id: Option<String>,
7790 #[serde(rename = "deployable")]
7791 pub deployable: bool,
7792 #[serde(rename = "requires_approval", skip_serializing_if = "Option::is_none")]
7793 pub requires_approval: Option<bool>,
7794 #[serde(rename = "commands", skip_serializing_if = "Option::is_none")]
7795 pub commands: Option<Vec<Vec<String>>>,
7796 #[serde(rename = "artifacts", skip_serializing_if = "Option::is_none")]
7797 pub artifacts: Option<Vec<String>>,
7798 #[serde(rename = "secrets_backend", skip_serializing_if = "Option::is_none")]
7799 pub secrets_backend: Option<String>,
7800 #[serde(rename = "healthcheck", skip_serializing_if = "Option::is_none")]
7801 pub healthcheck: Option<std::collections::HashMap<String, String>>,
7802 #[serde(rename = "rollback", skip_serializing_if = "Option::is_none")]
7803 pub rollback: Option<Vec<String>>,
7804 #[serde(rename = "risk")]
7805 pub risk: String,
7806 #[serde(rename = "reason")]
7807 pub reason: String,
7808}
7809
7810impl TargetPlan {
7811 pub fn new(target_id: String, kind: String, deployable: bool, risk: String, reason: String) -> TargetPlan {
7812 TargetPlan {
7813 target_id,
7814 kind,
7815 substrate_id: None,
7816 deployable,
7817 requires_approval: None,
7818 commands: None,
7819 artifacts: None,
7820 secrets_backend: None,
7821 healthcheck: None,
7822 rollback: None,
7823 risk,
7824 reason,
7825 }
7826 }
7827}
7828
7829#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7841pub struct TeardownLaunchpadRuntimeRunRequest {
7842 #[serde(rename = "cascade", skip_serializing_if = "Option::is_none")]
7843 pub cascade: Option<bool>,
7844}
7845
7846impl TeardownLaunchpadRuntimeRunRequest {
7847 pub fn new() -> TeardownLaunchpadRuntimeRunRequest {
7848 TeardownLaunchpadRuntimeRunRequest {
7849 cascade: None,
7850 }
7851 }
7852}
7853
7854#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7866pub struct TelemetryExportRequest {
7867 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
7868 pub format: Option<String>,
7869 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
7870 pub receipt_id: Option<String>,
7871 #[serde(rename = "record_hash", skip_serializing_if = "Option::is_none")]
7872 pub record_hash: Option<String>,
7873 #[serde(rename = "policy_epoch", skip_serializing_if = "Option::is_none")]
7874 pub policy_epoch: Option<String>,
7875 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
7876 pub verdict: Option<String>,
7877 #[serde(rename = "reason_code", skip_serializing_if = "Option::is_none")]
7878 pub reason_code: Option<String>,
7879 #[serde(rename = "sandbox_grant_hash", skip_serializing_if = "Option::is_none")]
7880 pub sandbox_grant_hash: Option<String>,
7881 #[serde(rename = "authz_snapshot_hash", skip_serializing_if = "Option::is_none")]
7882 pub authz_snapshot_hash: Option<String>,
7883 #[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
7884 pub attributes: Option<std::collections::HashMap<String, String>>,
7885}
7886
7887impl TelemetryExportRequest {
7888 pub fn new() -> TelemetryExportRequest {
7889 TelemetryExportRequest {
7890 format: None,
7891 receipt_id: None,
7892 record_hash: None,
7893 policy_epoch: None,
7894 verdict: None,
7895 reason_code: None,
7896 sandbox_grant_hash: None,
7897 authz_snapshot_hash: None,
7898 attributes: None,
7899 }
7900 }
7901}
7902
7903#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7915pub struct TelemetryExportResult {
7916 #[serde(rename = "export_id", skip_serializing_if = "Option::is_none")]
7917 pub export_id: Option<String>,
7918 #[serde(rename = "format", skip_serializing_if = "Option::is_none")]
7919 pub format: Option<String>,
7920 #[serde(rename = "authoritative", skip_serializing_if = "Option::is_none")]
7921 pub authoritative: Option<bool>,
7922 #[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
7923 pub attributes: Option<std::collections::HashMap<String, String>>,
7924 #[serde(rename = "exported_at", skip_serializing_if = "Option::is_none")]
7925 pub exported_at: Option<String>,
7926}
7927
7928impl TelemetryExportResult {
7929 pub fn new() -> TelemetryExportResult {
7930 TelemetryExportResult {
7931 export_id: None,
7932 format: None,
7933 authoritative: None,
7934 attributes: None,
7935 exported_at: None,
7936 }
7937 }
7938}
7939
7940#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7952pub struct TelemetryOTelConfig {
7953 #[serde(rename = "service_name", skip_serializing_if = "Option::is_none")]
7954 pub service_name: Option<String>,
7955 #[serde(rename = "signal_type", skip_serializing_if = "Option::is_none")]
7956 pub signal_type: Option<String>,
7957 #[serde(rename = "authoritative", skip_serializing_if = "Option::is_none")]
7958 pub authoritative: Option<bool>,
7959 #[serde(rename = "span_attributes", skip_serializing_if = "Option::is_none")]
7960 pub span_attributes: Option<std::collections::HashMap<String, String>>,
7961 #[serde(rename = "exported_signals", skip_serializing_if = "Option::is_none")]
7962 pub exported_signals: Option<Vec<String>>,
7963}
7964
7965impl TelemetryOTelConfig {
7966 pub fn new() -> TelemetryOTelConfig {
7967 TelemetryOTelConfig {
7968 service_name: None,
7969 signal_type: None,
7970 authoritative: None,
7971 span_attributes: None,
7972 exported_signals: None,
7973 }
7974 }
7975}
7976
7977#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
7989pub struct TransitionApprovalCeremonyRequest {
7990 #[serde(rename = "actor", skip_serializing_if = "Option::is_none")]
7991 pub actor: Option<String>,
7992 #[serde(rename = "receipt_id", skip_serializing_if = "Option::is_none")]
7993 pub receipt_id: Option<String>,
7994 #[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
7995 pub reason: Option<String>,
7996}
7997
7998impl TransitionApprovalCeremonyRequest {
7999 pub fn new() -> TransitionApprovalCeremonyRequest {
8000 TransitionApprovalCeremonyRequest {
8001 actor: None,
8002 receipt_id: None,
8003 reason: None,
8004 }
8005 }
8006}
8007
8008#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8020pub struct VerificationResult {
8021 #[serde(rename = "verdict", skip_serializing_if = "Option::is_none")]
8022 pub verdict: Option<VerificationResultVerdict>,
8023 #[serde(rename = "checks", skip_serializing_if = "Option::is_none")]
8024 pub checks: Option<Box<VerificationResultChecks>>,
8025 #[serde(rename = "roots", skip_serializing_if = "Option::is_none")]
8026 pub roots: Option<Box<VerificationResultRoots>>,
8027 #[serde(rename = "errors", skip_serializing_if = "Option::is_none")]
8028 pub errors: Option<Vec<String>>,
8029}
8030
8031impl VerificationResult {
8032 pub fn new() -> VerificationResult {
8033 VerificationResult {
8034 verdict: None,
8035 checks: None,
8036 roots: None,
8037 errors: None,
8038 }
8039 }
8040}
8041#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
8043pub enum VerificationResultVerdict {
8044 #[serde(rename = "PASS")]
8045 Pass,
8046 #[serde(rename = "FAIL")]
8047 Fail,
8048}
8049
8050impl Default for VerificationResultVerdict {
8051 fn default() -> VerificationResultVerdict {
8052 Self::Pass
8053 }
8054}
8055
8056#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8068pub struct VerificationResultChecks {
8069 #[serde(rename = "signatures", skip_serializing_if = "Option::is_none")]
8070 pub signatures: Option<VerificationResultChecksSignatures>,
8071 #[serde(rename = "causal_chain", skip_serializing_if = "Option::is_none")]
8072 pub causal_chain: Option<VerificationResultChecksCausalChain>,
8073 #[serde(rename = "policy_compliance", skip_serializing_if = "Option::is_none")]
8074 pub policy_compliance: Option<VerificationResultChecksPolicyCompliance>,
8075}
8076
8077impl VerificationResultChecks {
8078 pub fn new() -> VerificationResultChecks {
8079 VerificationResultChecks {
8080 signatures: None,
8081 causal_chain: None,
8082 policy_compliance: None,
8083 }
8084 }
8085}
8086#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
8088pub enum VerificationResultChecksSignatures {
8089 #[serde(rename = "PASS")]
8090 Pass,
8091 #[serde(rename = "FAIL")]
8092 Fail,
8093}
8094
8095impl Default for VerificationResultChecksSignatures {
8096 fn default() -> VerificationResultChecksSignatures {
8097 Self::Pass
8098 }
8099}
8100#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
8102pub enum VerificationResultChecksCausalChain {
8103 #[serde(rename = "PASS")]
8104 Pass,
8105 #[serde(rename = "FAIL")]
8106 Fail,
8107}
8108
8109impl Default for VerificationResultChecksCausalChain {
8110 fn default() -> VerificationResultChecksCausalChain {
8111 Self::Pass
8112 }
8113}
8114#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
8116pub enum VerificationResultChecksPolicyCompliance {
8117 #[serde(rename = "PASS")]
8118 Pass,
8119 #[serde(rename = "FAIL")]
8120 Fail,
8121}
8122
8123impl Default for VerificationResultChecksPolicyCompliance {
8124 fn default() -> VerificationResultChecksPolicyCompliance {
8125 Self::Pass
8126 }
8127}
8128
8129#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8141pub struct VerificationResultRoots {
8142 #[serde(rename = "manifest_root_hash", skip_serializing_if = "Option::is_none")]
8143 pub manifest_root_hash: Option<String>,
8144 #[serde(rename = "merkle_root", skip_serializing_if = "Option::is_none")]
8145 pub merkle_root: Option<String>,
8146 #[serde(rename = "entry_count", skip_serializing_if = "Option::is_none")]
8147 pub entry_count: Option<i32>,
8148}
8149
8150impl VerificationResultRoots {
8151 pub fn new() -> VerificationResultRoots {
8152 VerificationResultRoots {
8153 manifest_root_hash: None,
8154 merkle_root: None,
8155 entry_count: None,
8156 }
8157 }
8158}
8159
8160#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8172pub struct VerificationScope {
8173 #[serde(rename = "verification_scope_id")]
8174 pub verification_scope_id: String,
8175 #[serde(rename = "subject_hash")]
8176 pub subject_hash: String,
8177 #[serde(rename = "risk_class", skip_serializing_if = "Option::is_none")]
8178 pub risk_class: Option<VerificationScopeRiskClass>,
8179 #[serde(rename = "checks_performed")]
8180 pub checks_performed: Vec<String>,
8181 #[serde(rename = "assumptions", skip_serializing_if = "Option::is_none")]
8182 pub assumptions: Option<Vec<String>>,
8183 #[serde(rename = "untested_regions", skip_serializing_if = "Option::is_none")]
8184 pub untested_regions: Option<Vec<String>>,
8185 #[serde(rename = "known_limits", skip_serializing_if = "Option::is_none")]
8186 pub known_limits: Option<Vec<String>>,
8187 #[serde(rename = "remaining_risks", skip_serializing_if = "Option::is_none")]
8188 pub remaining_risks: Option<Vec<String>>,
8189 #[serde(rename = "required_followup", skip_serializing_if = "Option::is_none")]
8190 pub required_followup: Option<Vec<String>>,
8191 #[serde(rename = "verifier_hash")]
8192 pub verifier_hash: String,
8193 #[serde(rename = "policy_hash")]
8194 pub policy_hash: String,
8195 #[serde(rename = "created_at")]
8196 pub created_at: String,
8197 #[serde(rename = "scope_hash", skip_serializing_if = "Option::is_none")]
8198 pub scope_hash: Option<String>,
8199}
8200
8201impl VerificationScope {
8202 pub fn new(verification_scope_id: String, subject_hash: String, checks_performed: Vec<String>, verifier_hash: String, policy_hash: String, created_at: String) -> VerificationScope {
8203 VerificationScope {
8204 verification_scope_id,
8205 subject_hash,
8206 risk_class: None,
8207 checks_performed,
8208 assumptions: None,
8209 untested_regions: None,
8210 known_limits: None,
8211 remaining_risks: None,
8212 required_followup: None,
8213 verifier_hash,
8214 policy_hash,
8215 created_at,
8216 scope_hash: None,
8217 }
8218 }
8219}
8220#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
8222pub enum VerificationScopeRiskClass {
8223 #[serde(rename = "T0")]
8224 T0,
8225 #[serde(rename = "T1")]
8226 T1,
8227 #[serde(rename = "T2")]
8228 T2,
8229 #[serde(rename = "T3")]
8230 T3,
8231}
8232
8233impl Default for VerificationScopeRiskClass {
8234 fn default() -> VerificationScopeRiskClass {
8235 Self::T0
8236 }
8237}
8238
8239#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8251pub struct VerifyPublicDemoReceipt200Response {
8252 #[serde(rename = "valid")]
8253 pub valid: bool,
8254 #[serde(rename = "signature_valid")]
8255 pub signature_valid: bool,
8256 #[serde(rename = "hash_matches")]
8257 pub hash_matches: bool,
8258 #[serde(rename = "reason")]
8259 pub reason: String,
8260 #[serde(rename = "verified_fields")]
8261 pub verified_fields: Vec<String>,
8262 #[serde(rename = "receipt_hash")]
8263 pub receipt_hash: String,
8264 #[serde(rename = "expected_receipt_hash")]
8265 pub expected_receipt_hash: String,
8266}
8267
8268impl VerifyPublicDemoReceipt200Response {
8269 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 {
8270 VerifyPublicDemoReceipt200Response {
8271 valid,
8272 signature_valid,
8273 hash_matches,
8274 reason,
8275 verified_fields,
8276 receipt_hash,
8277 expected_receipt_hash,
8278 }
8279 }
8280}
8281
8282#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8294pub struct VerifyPublicDemoReceiptRequest {
8295 #[serde(rename = "receipt")]
8296 pub receipt: Box<Receipt>,
8297 #[serde(rename = "expected_receipt_hash")]
8299 pub expected_receipt_hash: String,
8300}
8301
8302impl VerifyPublicDemoReceiptRequest {
8303 pub fn new(receipt: Receipt, expected_receipt_hash: String) -> VerifyPublicDemoReceiptRequest {
8304 VerifyPublicDemoReceiptRequest {
8305 receipt: Box::new(receipt),
8306 expected_receipt_hash,
8307 }
8308 }
8309}
8310
8311#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
8323pub struct VersionInfo {
8324 #[serde(rename = "version", skip_serializing_if = "Option::is_none")]
8325 pub version: Option<String>,
8326 #[serde(rename = "commit", skip_serializing_if = "Option::is_none")]
8327 pub commit: Option<String>,
8328 #[serde(rename = "build_time", skip_serializing_if = "Option::is_none")]
8329 pub build_time: Option<String>,
8330 #[serde(rename = "go_version", skip_serializing_if = "Option::is_none")]
8331 pub go_version: Option<String>,
8332}
8333
8334impl VersionInfo {
8335 pub fn new() -> VersionInfo {
8336 VersionInfo {
8337 version: None,
8338 commit: None,
8339 build_time: None,
8340 go_version: None,
8341 }
8342 }
8343}
8344
8345
8346pub type ReasonCode = HelmErrorErrorReasonCode;