canic_host/deployment_truth/promotion/
request.rs1use super::super::{
2 ArtifactPromotionPlanV1, ArtifactPromotionProvenanceReportV1, BuildMaterializationEvidenceV1,
3 BuildMaterializationInputV1, BuildMaterializationResultV1, BuildRecipeIdentityV1,
4 DeploymentExecutionPreflightV1, DeploymentPlanV1, DeploymentReceiptV1,
5 PromotionArtifactIdentityReportV1, PromotionMaterializationIdentityReportV1,
6 PromotionPlanTransformV1, PromotionReadinessV1, PromotionTargetExecutionLineageV1,
7 PromotionWasmStoreCatalogEntryV1, PromotionWasmStoreCatalogVerificationV1,
8 PromotionWasmStoreIdentityReportV1, RolePromotionInputV1, RolePromotionPolicyV1,
9 StagingReceiptV1,
10};
11
12#[derive(Clone, Debug, Eq, PartialEq)]
16pub struct PromotionReadinessRequest {
17 pub readiness_id: String,
18 pub target_plan: DeploymentPlanV1,
19 pub inputs: Vec<RolePromotionInputV1>,
20}
21
22#[derive(Clone, Debug, Eq, PartialEq)]
26pub struct PromotionReadinessWithPolicyRequest {
27 pub readiness_id: String,
28 pub target_plan: DeploymentPlanV1,
29 pub inputs: Vec<RolePromotionInputV1>,
30 pub policies: Vec<RolePromotionPolicyV1>,
31}
32
33#[derive(Clone, Debug, Eq, PartialEq)]
37pub struct PromotionPlanTransformRequest {
38 pub promoted_plan_id: String,
39 pub target_plan: DeploymentPlanV1,
40 pub inputs: Vec<RolePromotionInputV1>,
41}
42
43#[derive(Clone, Debug, Eq, PartialEq)]
47pub struct PromotionPlanTransformWithMaterializationRequest {
48 pub promoted_plan_id: String,
49 pub target_plan: DeploymentPlanV1,
50 pub inputs: Vec<RolePromotionInputV1>,
51 pub materialization_evidence: Vec<BuildMaterializationEvidenceV1>,
52}
53
54#[derive(Clone, Debug, Eq, PartialEq)]
58pub struct PromotionPlanTransformEvidenceRequest {
59 pub evidence_id: String,
60 pub generated_at: String,
61 pub transform: PromotionPlanTransformV1,
62}
63
64#[derive(Clone, Debug, Eq, PartialEq)]
68pub struct ArtifactPromotionPlanRequest {
69 pub plan_id: String,
70 pub generated_at: String,
71 pub readiness: PromotionReadinessV1,
72 pub artifact_identity_report: PromotionArtifactIdentityReportV1,
73 pub transform: PromotionPlanTransformV1,
74 pub target_execution_lineage: Option<PromotionTargetExecutionLineageV1>,
75}
76
77#[derive(Clone, Debug, Eq, PartialEq)]
81pub struct ArtifactPromotionProvenanceReportRequest {
82 pub report_id: String,
83 pub artifact_promotion_plan: ArtifactPromotionPlanV1,
84 pub wasm_store_identity_report: Option<PromotionWasmStoreIdentityReportV1>,
85 pub wasm_store_catalog_verification: Option<PromotionWasmStoreCatalogVerificationV1>,
86 pub materialization_identity_report: Option<PromotionMaterializationIdentityReportV1>,
87}
88
89#[derive(Clone, Debug, Eq, PartialEq)]
93pub struct ArtifactPromotionExecutionReceiptRequest {
94 pub receipt_id: String,
95 pub provenance_report: ArtifactPromotionProvenanceReportV1,
96 pub deployment_receipt: DeploymentReceiptV1,
97}
98
99#[derive(Clone, Debug, Eq, PartialEq)]
103pub struct PromotionTargetExecutionLineageRequest {
104 pub lineage_id: String,
105 pub generated_at: String,
106 pub transform: PromotionPlanTransformV1,
107 pub execution_preflight: DeploymentExecutionPreflightV1,
108}
109
110#[derive(Clone, Debug, Eq, PartialEq)]
114pub struct PromotionArtifactIdentityReportRequest {
115 pub report_id: String,
116 pub inputs: Vec<RolePromotionInputV1>,
117}
118
119#[derive(Clone, Debug, Eq, PartialEq)]
123pub struct PromotionWasmStoreIdentityReportRequest {
124 pub report_id: String,
125 pub staging_receipts: Vec<StagingReceiptV1>,
126}
127
128#[derive(Clone, Debug, Eq, PartialEq)]
132pub struct PromotionWasmStoreCatalogVerificationRequest {
133 pub verification_id: String,
134 pub wasm_store_identity_report: PromotionWasmStoreIdentityReportV1,
135 pub catalog_entries: Vec<PromotionWasmStoreCatalogEntryV1>,
136}
137
138#[derive(Clone, Debug, Eq, PartialEq)]
142pub struct BuildMaterializationEvidenceRequest {
143 pub evidence_id: String,
144 pub recipe: BuildRecipeIdentityV1,
145 pub materialization_input: BuildMaterializationInputV1,
146 pub materialization_result: BuildMaterializationResultV1,
147}
148
149#[derive(Clone, Debug, Eq, PartialEq)]
153pub struct PromotionMaterializationIdentityReportRequest {
154 pub report_id: String,
155 pub evidence: Vec<BuildMaterializationEvidenceV1>,
156}
157
158#[derive(Clone, Debug, Eq, PartialEq)]
162pub struct PromotionPolicyCheckRequest {
163 pub check_id: String,
164 pub inputs: Vec<RolePromotionInputV1>,
165 pub policies: Vec<RolePromotionPolicyV1>,
166}