/// Diagnostic details for a data source within the dataset that does
/// not support streaming.
#[derive(
    Debug,
    Clone,
    conjure_object::serde::Serialize,
    conjure_object::serde::Deserialize,
    PartialEq,
    Eq,
    PartialOrd,
    Ord,
    Hash
)]
#[serde(crate = "conjure_object::serde")]
#[conjure_object::private::staged_builder::staged_builder]
#[builder(crate = conjure_object::private::staged_builder, update, inline)]
pub struct DataSourceStreamingSupport {
    #[builder(
        custom(type = super::super::super::run::api::DataSource, convert = Box::new)
    )]
    #[serde(rename = "dataSource")]
    data_source: Box<super::super::super::run::api::DataSource>,
    #[serde(rename = "unsupportedReason")]
    unsupported_reason: super::StreamingNotSupportedReason,
}
impl DataSourceStreamingSupport {
    /// Constructs a new instance of the type.
    #[inline]
    pub fn new(
        data_source: super::super::super::run::api::DataSource,
        unsupported_reason: super::StreamingNotSupportedReason,
    ) -> Self {
        Self::builder()
            .data_source(data_source)
            .unsupported_reason(unsupported_reason)
            .build()
    }
    #[inline]
    pub fn data_source(&self) -> &super::super::super::run::api::DataSource {
        &*self.data_source
    }
    /// Why this data source does not support live streaming.
    #[inline]
    pub fn unsupported_reason(&self) -> &super::StreamingNotSupportedReason {
        &self.unsupported_reason
    }
}
