use conjure_http::endpoint;
/// The Containerized Extractor service provides functionality for creating, updating, and archiving containerized extractors.
#[conjure_http::conjure_client(name = "ContainerizedExtractorService")]
pub trait ContainerizedExtractorService<
    #[response_body]
    I: Iterator<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Registers a containerized extractor for a given set of containerized files.
    #[endpoint(
        method = POST,
        path = "/extractors/v1/container",
        name = "registerContainerizedExtractor",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn register_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        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",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn get_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        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",
        accept = conjure_http::client::conjure::CollectionResponseDeserializer
    )]
    fn search_containerized_extractors(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        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",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn update_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        extractor_rid: &conjure_object::ResourceIdentifier,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        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",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    fn archive_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        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",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    fn unarchive_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        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_client(name = "ContainerizedExtractorService")]
pub trait AsyncContainerizedExtractorService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Registers a containerized extractor for a given set of containerized files.
    #[endpoint(
        method = POST,
        path = "/extractors/v1/container",
        name = "registerContainerizedExtractor",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn register_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        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",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        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",
        accept = conjure_http::client::conjure::CollectionResponseDeserializer
    )]
    async fn search_containerized_extractors(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        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",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn update_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        extractor_rid: &conjure_object::ResourceIdentifier,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        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",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn archive_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        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",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn unarchive_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        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_client(name = "ContainerizedExtractorService", local)]
pub trait LocalAsyncContainerizedExtractorService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Registers a containerized extractor for a given set of containerized files.
    #[endpoint(
        method = POST,
        path = "/extractors/v1/container",
        name = "registerContainerizedExtractor",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn register_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        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",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        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",
        accept = conjure_http::client::conjure::CollectionResponseDeserializer
    )]
    async fn search_containerized_extractors(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        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",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn update_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        extractor_rid: &conjure_object::ResourceIdentifier,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        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",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn archive_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        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",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn unarchive_containerized_extractor(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "extractorRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        extractor_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
