use conjure_http::endpoint;
/// Creating favorites allows users to pin specific resources (i.e. assets, workbooks, etc.) as favorites for
/// quick access within search pages throughout the application for themselves.
#[conjure_http::conjure_client(name = "FavoritesService")]
pub trait FavoritesService<
    #[response_body]
    I: Iterator<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Retrieves the favorites list for the current user in the specified workspace.
    #[endpoint(
        method = GET,
        path = "/scout/v2/favorites/workspace/{workspaceRid}",
        name = "getFavoritesList",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn get_favorites_list(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "workspaceRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        workspace_rid: &conjure_object::ResourceIdentifier,
        #[query(
            name = "resourceTypes",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        resource_types: &std::collections::BTreeSet<
            super::super::super::super::objects::scout::favorites::api::ResourceType,
        >,
    ) -> Result<
        super::super::super::super::objects::scout::favorites::api::FavoritesListResponse,
        conjure_http::private::Error,
    >;
    /// Overwrites the favorites list for the current user in the specified workspace.
    #[endpoint(
        method = PUT,
        path = "/scout/v2/favorites/workspace/{workspaceRid}",
        name = "setFavoritesList",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn set_favorites_list(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "workspaceRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        workspace_rid: &conjure_object::ResourceIdentifier,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::favorites::api::SetFavoritesListRequest,
    ) -> Result<
        super::super::super::super::objects::scout::favorites::api::FavoritesListResponse,
        conjure_http::private::Error,
    >;
}
/// Creating favorites allows users to pin specific resources (i.e. assets, workbooks, etc.) as favorites for
/// quick access within search pages throughout the application for themselves.
#[conjure_http::conjure_client(name = "FavoritesService")]
pub trait AsyncFavoritesService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Retrieves the favorites list for the current user in the specified workspace.
    #[endpoint(
        method = GET,
        path = "/scout/v2/favorites/workspace/{workspaceRid}",
        name = "getFavoritesList",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get_favorites_list(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "workspaceRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        workspace_rid: &conjure_object::ResourceIdentifier,
        #[query(
            name = "resourceTypes",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        resource_types: &std::collections::BTreeSet<
            super::super::super::super::objects::scout::favorites::api::ResourceType,
        >,
    ) -> Result<
        super::super::super::super::objects::scout::favorites::api::FavoritesListResponse,
        conjure_http::private::Error,
    >;
    /// Overwrites the favorites list for the current user in the specified workspace.
    #[endpoint(
        method = PUT,
        path = "/scout/v2/favorites/workspace/{workspaceRid}",
        name = "setFavoritesList",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn set_favorites_list(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "workspaceRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        workspace_rid: &conjure_object::ResourceIdentifier,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::favorites::api::SetFavoritesListRequest,
    ) -> Result<
        super::super::super::super::objects::scout::favorites::api::FavoritesListResponse,
        conjure_http::private::Error,
    >;
}
/// Creating favorites allows users to pin specific resources (i.e. assets, workbooks, etc.) as favorites for
/// quick access within search pages throughout the application for themselves.
#[conjure_http::conjure_client(name = "FavoritesService", local)]
pub trait LocalAsyncFavoritesService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Retrieves the favorites list for the current user in the specified workspace.
    #[endpoint(
        method = GET,
        path = "/scout/v2/favorites/workspace/{workspaceRid}",
        name = "getFavoritesList",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get_favorites_list(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "workspaceRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        workspace_rid: &conjure_object::ResourceIdentifier,
        #[query(
            name = "resourceTypes",
            encoder = conjure_http::client::conjure::PlainSeqEncoder
        )]
        resource_types: &std::collections::BTreeSet<
            super::super::super::super::objects::scout::favorites::api::ResourceType,
        >,
    ) -> Result<
        super::super::super::super::objects::scout::favorites::api::FavoritesListResponse,
        conjure_http::private::Error,
    >;
    /// Overwrites the favorites list for the current user in the specified workspace.
    #[endpoint(
        method = PUT,
        path = "/scout/v2/favorites/workspace/{workspaceRid}",
        name = "setFavoritesList",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn set_favorites_list(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "workspaceRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        workspace_rid: &conjure_object::ResourceIdentifier,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::favorites::api::SetFavoritesListRequest,
    ) -> Result<
        super::super::super::super::objects::scout::favorites::api::FavoritesListResponse,
        conjure_http::private::Error,
    >;
}
