use conjure_http::endpoint;
/// The Containerized Extractor service provides functionality for creating, updating, and archiving containerized extractors.
#[conjure_http::conjure_endpoints(
    name = "ContainerizedExtractorService",
    use_legacy_error_serialization
)]
pub trait ContainerizedExtractorService {
    /// Registers a containerized extractor for a given set of containerized files.
    #[endpoint(
        method = POST,
        path = "/extractors/v1/container",
        name = "registerContainerizedExtractor",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn register_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::ingest::api::RegisterContainerizedExtractorRequest,
    ) -> Result<
        super::super::super::super::objects::ingest::api::RegisterContainerizedExtractorResponse,
        conjure_http::private::Error,
    >;
    /// Get a containerized extractor by its RID.
    #[endpoint(
        method = GET,
        path = "/extractors/v1/container/{extractorRid}",
        name = "getContainerizedExtractor",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn get_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
    ) -> Result<
        super::super::super::super::objects::ingest::api::ContainerizedExtractor,
        conjure_http::private::Error,
    >;
    /// Search for containerized extractors based on query parameters.
    #[endpoint(
        method = POST,
        path = "/extractors/v1/container/search",
        name = "searchContainerizedExtractors",
        produces = conjure_http::server::conjure::CollectionResponseSerializer
    )]
    fn search_containerized_extractors(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::ingest::api::SearchContainerizedExtractorsRequest,
    ) -> Result<
        Vec<super::super::super::super::objects::ingest::api::ContainerizedExtractor>,
        conjure_http::private::Error,
    >;
    /// Update a containerized extractor. Only the fields that are set in the request will be updated.
    #[endpoint(
        method = PUT,
        path = "/extractors/v1/container/{extractorRid}",
        name = "updateContainerizedExtractor",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn update_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::ingest::api::UpdateContainerizedExtractorRequest,
    ) -> Result<
        super::super::super::super::objects::ingest::api::ContainerizedExtractor,
        conjure_http::private::Error,
    >;
    /// Archive a containerized extractor.
    #[endpoint(
        method = PUT,
        path = "/extractors/v1/container/{extractorRid}/archive",
        name = "archiveContainerizedExtractor"
    )]
    fn archive_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
    /// Unarchive a containerized extractor.
    #[endpoint(
        method = PUT,
        path = "/extractors/v1/container/{extractorRid}/unarchive",
        name = "unarchiveContainerizedExtractor"
    )]
    fn unarchive_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
/// The Containerized Extractor service provides functionality for creating, updating, and archiving containerized extractors.
#[conjure_http::conjure_endpoints(
    name = "ContainerizedExtractorService",
    use_legacy_error_serialization
)]
pub trait AsyncContainerizedExtractorService {
    /// Registers a containerized extractor for a given set of containerized files.
    #[endpoint(
        method = POST,
        path = "/extractors/v1/container",
        name = "registerContainerizedExtractor",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn register_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::ingest::api::RegisterContainerizedExtractorRequest,
    ) -> Result<
        super::super::super::super::objects::ingest::api::RegisterContainerizedExtractorResponse,
        conjure_http::private::Error,
    >;
    /// Get a containerized extractor by its RID.
    #[endpoint(
        method = GET,
        path = "/extractors/v1/container/{extractorRid}",
        name = "getContainerizedExtractor",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn get_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
    ) -> Result<
        super::super::super::super::objects::ingest::api::ContainerizedExtractor,
        conjure_http::private::Error,
    >;
    /// Search for containerized extractors based on query parameters.
    #[endpoint(
        method = POST,
        path = "/extractors/v1/container/search",
        name = "searchContainerizedExtractors",
        produces = conjure_http::server::conjure::CollectionResponseSerializer
    )]
    async fn search_containerized_extractors(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::ingest::api::SearchContainerizedExtractorsRequest,
    ) -> Result<
        Vec<super::super::super::super::objects::ingest::api::ContainerizedExtractor>,
        conjure_http::private::Error,
    >;
    /// Update a containerized extractor. Only the fields that are set in the request will be updated.
    #[endpoint(
        method = PUT,
        path = "/extractors/v1/container/{extractorRid}",
        name = "updateContainerizedExtractor",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn update_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::ingest::api::UpdateContainerizedExtractorRequest,
    ) -> Result<
        super::super::super::super::objects::ingest::api::ContainerizedExtractor,
        conjure_http::private::Error,
    >;
    /// Archive a containerized extractor.
    #[endpoint(
        method = PUT,
        path = "/extractors/v1/container/{extractorRid}/archive",
        name = "archiveContainerizedExtractor"
    )]
    async fn archive_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
    /// Unarchive a containerized extractor.
    #[endpoint(
        method = PUT,
        path = "/extractors/v1/container/{extractorRid}/unarchive",
        name = "unarchiveContainerizedExtractor"
    )]
    async fn unarchive_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
/// The Containerized Extractor service provides functionality for creating, updating, and archiving containerized extractors.
#[conjure_http::conjure_endpoints(
    name = "ContainerizedExtractorService",
    use_legacy_error_serialization,
    local
)]
pub trait LocalAsyncContainerizedExtractorService {
    /// Registers a containerized extractor for a given set of containerized files.
    #[endpoint(
        method = POST,
        path = "/extractors/v1/container",
        name = "registerContainerizedExtractor",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn register_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::ingest::api::RegisterContainerizedExtractorRequest,
    ) -> Result<
        super::super::super::super::objects::ingest::api::RegisterContainerizedExtractorResponse,
        conjure_http::private::Error,
    >;
    /// Get a containerized extractor by its RID.
    #[endpoint(
        method = GET,
        path = "/extractors/v1/container/{extractorRid}",
        name = "getContainerizedExtractor",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn get_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
    ) -> Result<
        super::super::super::super::objects::ingest::api::ContainerizedExtractor,
        conjure_http::private::Error,
    >;
    /// Search for containerized extractors based on query parameters.
    #[endpoint(
        method = POST,
        path = "/extractors/v1/container/search",
        name = "searchContainerizedExtractors",
        produces = conjure_http::server::conjure::CollectionResponseSerializer
    )]
    async fn search_containerized_extractors(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::ingest::api::SearchContainerizedExtractorsRequest,
    ) -> Result<
        Vec<super::super::super::super::objects::ingest::api::ContainerizedExtractor>,
        conjure_http::private::Error,
    >;
    /// Update a containerized extractor. Only the fields that are set in the request will be updated.
    #[endpoint(
        method = PUT,
        path = "/extractors/v1/container/{extractorRid}",
        name = "updateContainerizedExtractor",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn update_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::ingest::api::UpdateContainerizedExtractorRequest,
    ) -> Result<
        super::super::super::super::objects::ingest::api::ContainerizedExtractor,
        conjure_http::private::Error,
    >;
    /// Archive a containerized extractor.
    #[endpoint(
        method = PUT,
        path = "/extractors/v1/container/{extractorRid}/archive",
        name = "archiveContainerizedExtractor"
    )]
    async fn archive_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
    /// Unarchive a containerized extractor.
    #[endpoint(
        method = PUT,
        path = "/extractors/v1/container/{extractorRid}/unarchive",
        name = "unarchiveContainerizedExtractor"
    )]
    async fn unarchive_containerized_extractor(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "extractorRid"
        )]
        extractor_rid: conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
