use kube::CustomResource;
use knative::{
source_types::{SourceSpec, SourceStatus, SourceCondition},
binding_types::BindingSpec,
};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(CustomResource, Serialize, Deserialize, Debug, Clone, JsonSchema)]
#[kube(
kind = "SinkBinding",
group = "sources.knative.dev",
status = "SinkBindingStatus",
version = "v1alpha2",
namespaced
)]
#[serde(rename_all = "camelCase")]
pub struct SinkBindingSpec {
#[serde(flatten)]
pub source_spec: SourceSpec,
#[serde(flatten)]
pub binding_spec: BindingSpec,
}
#[derive(Serialize, Deserialize, Debug, Clone, JsonSchema)]
pub struct SinkBindingStatus {
#[serde(flatten)]
pub source_status: SourceStatus<SourceCondition>,
}