webhook_bridge/src/crd_pipeline_run.rs
2024-09-28 21:40:00 -04:00

46 lines
1.4 KiB
Rust

use kube::CustomResource;
use schemars::JsonSchema;
use serde::Deserialize;
use serde::Serialize;
use serde_json::Value;
/// A single execution of a Pipeline.
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema)]
#[kube(
group = "tekton.dev",
version = "v1",
kind = "PipelineRun",
singular = "pipelinerun",
plural = "pipelineruns"
)]
#[kube(namespaced)]
#[serde(deny_unknown_fields)]
pub(crate) struct PipelineRunSpec {
/// Contents of the Pipeline
#[serde(default, skip_serializing_if = "Option::is_none")]
pub(crate) pipelineSpec: Option<Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub(crate) timeouts: Option<Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub(crate) taskRunTemplate: Option<Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub(crate) workspaces: Option<Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub(crate) params: Option<Vec<PipelineParam>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
#[serde(deny_unknown_fields)]
pub(crate) struct PipelineParam {
/// Contents of the Pipeline
#[serde(default, skip_serializing_if = "Option::is_none")]
pub(crate) name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub(crate) value: Option<Value>,
}