use conjure_http::endpoint;
/// Channel search over a `Dataset`, which can expand to multiple locators.
#[conjure_http::conjure_client(name = "ChannelSearchService")]
pub trait ChannelSearchService<
    #[response_body]
    I: Iterator<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Returns the expanded locator topology for a dataset plus per-locator delimiter
    /// info.
    #[endpoint(
        method = POST,
        path = "/channels/v1/delimiters",
        name = "getLocatorDelimiters",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn get_locator_delimiters(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::GetLocatorDelimitersRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::GetLocatorDelimitersResponse,
        conjure_http::private::Error,
    >;
    /// Lazy one-level hierarchical expansion under `parent`. Returns a mix of leaf
    /// channels and prefix nodes, each labelled with the set of locators where
    /// they exist.
    #[endpoint(
        method = POST,
        path = "/channels/v1/browse",
        name = "listChannelChildren",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn list_channel_children(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::ListChannelChildrenRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::ListChannelChildrenResponse,
        conjure_http::private::Error,
    >;
    /// Flat text search across the dataset. Returns matching channels, each labelled
    /// with the set of locators in which they exist.
    #[endpoint(
        method = POST,
        path = "/channels/v1/search",
        name = "searchChannels",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn search_channels(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::SearchChannelsRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::SearchChannelsResponse,
        conjure_http::private::Error,
    >;
    /// Batched form of `getLocatorDelimiters`.
    #[endpoint(
        method = POST,
        path = "/channels/v1/delimiters/batch",
        name = "batchGetLocatorDelimiters",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn batch_get_locator_delimiters(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::BatchGetLocatorDelimitersRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::BatchGetLocatorDelimitersResponse,
        conjure_http::private::Error,
    >;
    /// Batched form of `searchChannels`. The channel search is performed across the
    /// union of all entry scopes and so is the limit and top-n selection by relevance.
    #[endpoint(
        method = POST,
        path = "/channels/v1/search/batch",
        name = "batchSearchChannels",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn batch_search_channels(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::BatchSearchChannelsRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::BatchSearchChannelsResponse,
        conjure_http::private::Error,
    >;
    /// Batched form of `listChannelChildren`. The hierarchical expansion is performed
    /// across the union of all entry scopes for the shared `parent` path.
    #[endpoint(
        method = POST,
        path = "/channels/v1/browse/batch",
        name = "batchListChannelChildren",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn batch_list_channel_children(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::BatchListChannelChildrenRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::BatchListChannelChildrenResponse,
        conjure_http::private::Error,
    >;
}
/// Channel search over a `Dataset`, which can expand to multiple locators.
#[conjure_http::conjure_client(name = "ChannelSearchService")]
pub trait AsyncChannelSearchService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Returns the expanded locator topology for a dataset plus per-locator delimiter
    /// info.
    #[endpoint(
        method = POST,
        path = "/channels/v1/delimiters",
        name = "getLocatorDelimiters",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get_locator_delimiters(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::GetLocatorDelimitersRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::GetLocatorDelimitersResponse,
        conjure_http::private::Error,
    >;
    /// Lazy one-level hierarchical expansion under `parent`. Returns a mix of leaf
    /// channels and prefix nodes, each labelled with the set of locators where
    /// they exist.
    #[endpoint(
        method = POST,
        path = "/channels/v1/browse",
        name = "listChannelChildren",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn list_channel_children(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::ListChannelChildrenRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::ListChannelChildrenResponse,
        conjure_http::private::Error,
    >;
    /// Flat text search across the dataset. Returns matching channels, each labelled
    /// with the set of locators in which they exist.
    #[endpoint(
        method = POST,
        path = "/channels/v1/search",
        name = "searchChannels",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn search_channels(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::SearchChannelsRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::SearchChannelsResponse,
        conjure_http::private::Error,
    >;
    /// Batched form of `getLocatorDelimiters`.
    #[endpoint(
        method = POST,
        path = "/channels/v1/delimiters/batch",
        name = "batchGetLocatorDelimiters",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn batch_get_locator_delimiters(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::BatchGetLocatorDelimitersRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::BatchGetLocatorDelimitersResponse,
        conjure_http::private::Error,
    >;
    /// Batched form of `searchChannels`. The channel search is performed across the
    /// union of all entry scopes and so is the limit and top-n selection by relevance.
    #[endpoint(
        method = POST,
        path = "/channels/v1/search/batch",
        name = "batchSearchChannels",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn batch_search_channels(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::BatchSearchChannelsRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::BatchSearchChannelsResponse,
        conjure_http::private::Error,
    >;
    /// Batched form of `listChannelChildren`. The hierarchical expansion is performed
    /// across the union of all entry scopes for the shared `parent` path.
    #[endpoint(
        method = POST,
        path = "/channels/v1/browse/batch",
        name = "batchListChannelChildren",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn batch_list_channel_children(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::BatchListChannelChildrenRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::BatchListChannelChildrenResponse,
        conjure_http::private::Error,
    >;
}
/// Channel search over a `Dataset`, which can expand to multiple locators.
#[conjure_http::conjure_client(name = "ChannelSearchService", local)]
pub trait LocalAsyncChannelSearchService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Returns the expanded locator topology for a dataset plus per-locator delimiter
    /// info.
    #[endpoint(
        method = POST,
        path = "/channels/v1/delimiters",
        name = "getLocatorDelimiters",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get_locator_delimiters(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::GetLocatorDelimitersRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::GetLocatorDelimitersResponse,
        conjure_http::private::Error,
    >;
    /// Lazy one-level hierarchical expansion under `parent`. Returns a mix of leaf
    /// channels and prefix nodes, each labelled with the set of locators where
    /// they exist.
    #[endpoint(
        method = POST,
        path = "/channels/v1/browse",
        name = "listChannelChildren",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn list_channel_children(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::ListChannelChildrenRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::ListChannelChildrenResponse,
        conjure_http::private::Error,
    >;
    /// Flat text search across the dataset. Returns matching channels, each labelled
    /// with the set of locators in which they exist.
    #[endpoint(
        method = POST,
        path = "/channels/v1/search",
        name = "searchChannels",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn search_channels(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::SearchChannelsRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::SearchChannelsResponse,
        conjure_http::private::Error,
    >;
    /// Batched form of `getLocatorDelimiters`.
    #[endpoint(
        method = POST,
        path = "/channels/v1/delimiters/batch",
        name = "batchGetLocatorDelimiters",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn batch_get_locator_delimiters(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::BatchGetLocatorDelimitersRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::BatchGetLocatorDelimitersResponse,
        conjure_http::private::Error,
    >;
    /// Batched form of `searchChannels`. The channel search is performed across the
    /// union of all entry scopes and so is the limit and top-n selection by relevance.
    #[endpoint(
        method = POST,
        path = "/channels/v1/search/batch",
        name = "batchSearchChannels",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn batch_search_channels(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::BatchSearchChannelsRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::BatchSearchChannelsResponse,
        conjure_http::private::Error,
    >;
    /// Batched form of `listChannelChildren`. The hierarchical expansion is performed
    /// across the union of all entry scopes for the shared `parent` path.
    #[endpoint(
        method = POST,
        path = "/channels/v1/browse/batch",
        name = "batchListChannelChildren",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn batch_list_channel_children(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::super::objects::scout::channel::api::BatchListChannelChildrenRequest,
    ) -> Result<
        super::super::super::super::super::objects::scout::channel::api::BatchListChannelChildrenResponse,
        conjure_http::private::Error,
    >;
}
