use conjure_http::endpoint;
/// The spatial asset service manages spatial assets (point clouds, etc.) and their metadata.
/// Spatial asset data is stored in Dagger; Scout tracks metadata and references.
#[conjure_http::conjure_client(name = "SpatialService")]
pub trait SpatialService<
    #[response_body]
    I: Iterator<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Returns spatial asset metadata associated with a spatial asset rid.
    #[endpoint(
        method = GET,
        path = "/spatial/v1/spatials/{spatialRid}",
        name = "get",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn get(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::Spatial,
        conjure_http::private::Error,
    >;
    /// Returns spatial asset metadata for each given spatial asset rid.
    #[endpoint(
        method = POST,
        path = "/spatial/v1/spatials/batchGet",
        name = "batchGet",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn batch_get(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::GetSpatialsRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::GetSpatialsResponse,
        conjure_http::private::Error,
    >;
    /// Returns metadata about spatial assets that match a given query.
    #[endpoint(
        method = POST,
        path = "/spatial/v1/spatials/search",
        name = "search",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn search(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::SearchSpatialsRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::SearchSpatialsResponse,
        conjure_http::private::Error,
    >;
    /// Creates and persists a spatial asset entity with the given metadata.
    #[endpoint(
        method = POST,
        path = "/spatial/v1/spatials",
        name = "create",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn create(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::CreateSpatialRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::Spatial,
        conjure_http::private::Error,
    >;
    /// Updates the metadata for a spatial asset associated with the given rid.
    #[endpoint(
        method = PUT,
        path = "/spatial/v1/spatials/{spatialRid}",
        name = "updateMetadata",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    fn update_metadata(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::UpdateSpatialMetadataRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::Spatial,
        conjure_http::private::Error,
    >;
    /// Archives a spatial asset, excluding it from search. Can be unarchived.
    #[endpoint(
        method = PUT,
        path = "/spatial/v1/spatials/{spatialRid}/archive",
        name = "archive",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    fn archive(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
    /// Unarchives a previously archived spatial asset.
    #[endpoint(
        method = PUT,
        path = "/spatial/v1/spatials/{spatialRid}/unarchive",
        name = "unarchive",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    fn unarchive(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
/// The spatial asset service manages spatial assets (point clouds, etc.) and their metadata.
/// Spatial asset data is stored in Dagger; Scout tracks metadata and references.
#[conjure_http::conjure_client(name = "SpatialService")]
pub trait AsyncSpatialService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Returns spatial asset metadata associated with a spatial asset rid.
    #[endpoint(
        method = GET,
        path = "/spatial/v1/spatials/{spatialRid}",
        name = "get",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::Spatial,
        conjure_http::private::Error,
    >;
    /// Returns spatial asset metadata for each given spatial asset rid.
    #[endpoint(
        method = POST,
        path = "/spatial/v1/spatials/batchGet",
        name = "batchGet",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn batch_get(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::GetSpatialsRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::GetSpatialsResponse,
        conjure_http::private::Error,
    >;
    /// Returns metadata about spatial assets that match a given query.
    #[endpoint(
        method = POST,
        path = "/spatial/v1/spatials/search",
        name = "search",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn search(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::SearchSpatialsRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::SearchSpatialsResponse,
        conjure_http::private::Error,
    >;
    /// Creates and persists a spatial asset entity with the given metadata.
    #[endpoint(
        method = POST,
        path = "/spatial/v1/spatials",
        name = "create",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn create(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::CreateSpatialRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::Spatial,
        conjure_http::private::Error,
    >;
    /// Updates the metadata for a spatial asset associated with the given rid.
    #[endpoint(
        method = PUT,
        path = "/spatial/v1/spatials/{spatialRid}",
        name = "updateMetadata",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn update_metadata(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::UpdateSpatialMetadataRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::Spatial,
        conjure_http::private::Error,
    >;
    /// Archives a spatial asset, excluding it from search. Can be unarchived.
    #[endpoint(
        method = PUT,
        path = "/spatial/v1/spatials/{spatialRid}/archive",
        name = "archive",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn archive(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
    /// Unarchives a previously archived spatial asset.
    #[endpoint(
        method = PUT,
        path = "/spatial/v1/spatials/{spatialRid}/unarchive",
        name = "unarchive",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn unarchive(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
/// The spatial asset service manages spatial assets (point clouds, etc.) and their metadata.
/// Spatial asset data is stored in Dagger; Scout tracks metadata and references.
#[conjure_http::conjure_client(name = "SpatialService", local)]
pub trait LocalAsyncSpatialService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Returns spatial asset metadata associated with a spatial asset rid.
    #[endpoint(
        method = GET,
        path = "/spatial/v1/spatials/{spatialRid}",
        name = "get",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn get(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::Spatial,
        conjure_http::private::Error,
    >;
    /// Returns spatial asset metadata for each given spatial asset rid.
    #[endpoint(
        method = POST,
        path = "/spatial/v1/spatials/batchGet",
        name = "batchGet",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn batch_get(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::GetSpatialsRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::GetSpatialsResponse,
        conjure_http::private::Error,
    >;
    /// Returns metadata about spatial assets that match a given query.
    #[endpoint(
        method = POST,
        path = "/spatial/v1/spatials/search",
        name = "search",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn search(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::SearchSpatialsRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::SearchSpatialsResponse,
        conjure_http::private::Error,
    >;
    /// Creates and persists a spatial asset entity with the given metadata.
    #[endpoint(
        method = POST,
        path = "/spatial/v1/spatials",
        name = "create",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn create(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::CreateSpatialRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::Spatial,
        conjure_http::private::Error,
    >;
    /// Updates the metadata for a spatial asset associated with the given rid.
    #[endpoint(
        method = PUT,
        path = "/spatial/v1/spatials/{spatialRid}",
        name = "updateMetadata",
        accept = conjure_http::client::StdResponseDeserializer
    )]
    async fn update_metadata(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
        #[body(serializer = conjure_http::client::StdRequestSerializer)]
        request: &super::super::super::super::objects::scout::spatial::api::UpdateSpatialMetadataRequest,
    ) -> Result<
        super::super::super::super::objects::scout::spatial::api::Spatial,
        conjure_http::private::Error,
    >;
    /// Archives a spatial asset, excluding it from search. Can be unarchived.
    #[endpoint(
        method = PUT,
        path = "/spatial/v1/spatials/{spatialRid}/archive",
        name = "archive",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn archive(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
    /// Unarchives a previously archived spatial asset.
    #[endpoint(
        method = PUT,
        path = "/spatial/v1/spatials/{spatialRid}/unarchive",
        name = "unarchive",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn unarchive(
        &self,
        #[auth]
        auth_: &conjure_object::BearerToken,
        #[path(
            name = "spatialRid",
            encoder = conjure_http::client::conjure::PlainEncoder
        )]
        spatial_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
