use conjure_http::endpoint;
/// Provides functionality for exporting data from Scout.
#[conjure_http::conjure_client(name = "DataExportService")]
pub trait DataExportService<
    #[response_body]
    I: Iterator<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Required permissions matches those required to compute the channels via the compute API.
    #[endpoint(
        method = POST,
        path = "/export/v1/export",
        name = "exportChannelData",
        accept = conjure_http::client::conjure::BinaryResponseDeserializer
    )]
    fn export_channel_data(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::dataexport::api::ExportDataRequest,
    ) -> Result<I, conjure_http::private::Error>;
    /// Required permissions matches those required to compute the channels via the compute API.
    #[endpoint(
        method = POST,
        path = "/export/v1/generateExportPresignedLink",
        name = "generateExportChannelDataPresignedLink",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn generate_export_channel_data_presigned_link(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::dataexport::api::ExportDataRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::dataexport::api::GeneratePresignedLinkResponse,
        conjure_http::private::Error,
    >;
}
/// Provides functionality for exporting data from Scout.
#[conjure_http::conjure_client(name = "DataExportService")]
pub trait AsyncDataExportService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Required permissions matches those required to compute the channels via the compute API.
    #[endpoint(
        method = POST,
        path = "/export/v1/export",
        name = "exportChannelData",
        accept = conjure_http::client::conjure::BinaryResponseDeserializer
    )]
    async fn export_channel_data(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::dataexport::api::ExportDataRequest,
    ) -> Result<I, conjure_http::private::Error>;
    /// Required permissions matches those required to compute the channels via the compute API.
    #[endpoint(
        method = POST,
        path = "/export/v1/generateExportPresignedLink",
        name = "generateExportChannelDataPresignedLink",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn generate_export_channel_data_presigned_link(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::dataexport::api::ExportDataRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::dataexport::api::GeneratePresignedLinkResponse,
        conjure_http::private::Error,
    >;
}
/// Provides functionality for exporting data from Scout.
#[conjure_http::conjure_client(name = "DataExportService", local)]
pub trait LocalAsyncDataExportService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Required permissions matches those required to compute the channels via the compute API.
    #[endpoint(
        method = POST,
        path = "/export/v1/export",
        name = "exportChannelData",
        accept = conjure_http::client::conjure::BinaryResponseDeserializer
    )]
    async fn export_channel_data(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::dataexport::api::ExportDataRequest,
    ) -> Result<I, conjure_http::private::Error>;
    /// Required permissions matches those required to compute the channels via the compute API.
    #[endpoint(
        method = POST,
        path = "/export/v1/generateExportPresignedLink",
        name = "generateExportChannelDataPresignedLink",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn generate_export_channel_data_presigned_link(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::dataexport::api::ExportDataRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::dataexport::api::GeneratePresignedLinkResponse,
        conjure_http::private::Error,
    >;
}
