use conjure_http::endpoint;
/// Provides functionality for exporting data from Scout.
#[conjure_http::conjure_endpoints(
    name = "DataExportService",
    use_legacy_error_serialization
)]
pub trait DataExportService<#[response_writer] O> {
    ///The body type returned by the `export_channel_data` method.
    type ExportChannelDataBody: conjure_http::server::WriteBody<O> + 'static;
    /// Required permissions matches those required to compute the channels via the compute API.
    #[endpoint(
        method = POST,
        path = "/export/v1/export",
        name = "exportChannelData",
        produces = conjure_http::server::conjure::BinaryResponseSerializer
    )]
    fn export_channel_data(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::super::objects::scout::dataexport::api::ExportDataRequest,
    ) -> Result<Self::ExportChannelDataBody, 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",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn generate_export_channel_data_presigned_link(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        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_endpoints(
    name = "DataExportService",
    use_legacy_error_serialization
)]
pub trait AsyncDataExportService<#[response_writer] O> {
    ///The body type returned by the `export_channel_data` method.
    type ExportChannelDataBody: conjure_http::server::AsyncWriteBody<O> + 'static + Send;
    /// Required permissions matches those required to compute the channels via the compute API.
    #[endpoint(
        method = POST,
        path = "/export/v1/export",
        name = "exportChannelData",
        produces = conjure_http::server::conjure::BinaryResponseSerializer
    )]
    async fn export_channel_data(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::super::objects::scout::dataexport::api::ExportDataRequest,
    ) -> Result<Self::ExportChannelDataBody, 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",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn generate_export_channel_data_presigned_link(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        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_endpoints(
    name = "DataExportService",
    use_legacy_error_serialization,
    local
)]
pub trait LocalAsyncDataExportService<#[response_writer] O> {
    ///The body type returned by the `export_channel_data` method.
    type ExportChannelDataBody: conjure_http::server::LocalAsyncWriteBody<O> + 'static;
    /// Required permissions matches those required to compute the channels via the compute API.
    #[endpoint(
        method = POST,
        path = "/export/v1/export",
        name = "exportChannelData",
        produces = conjure_http::server::conjure::BinaryResponseSerializer
    )]
    async fn export_channel_data(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::super::objects::scout::dataexport::api::ExportDataRequest,
    ) -> Result<Self::ExportChannelDataBody, 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",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn generate_export_channel_data_presigned_link(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        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,
    >;
}
