use conjure_http::endpoint;
/// Internal service for managing per-workspace usage tracking dataset metadata.
#[conjure_http::conjure_client(name = "InternalUsageMetadataService")]
pub trait InternalUsageMetadataService<
    #[response_body]
    I: Iterator<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Sets the usage tracking dataset RID for the specified workspace. Creates or updates the mapping.
    #[endpoint(
        method = PUT,
        path = "/internal/scout/v2/usage-metadata/workspaces/{workspaceRid}/usage-dataset",
        name = "setUsageDatasetForWorkspace",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    fn set_usage_dataset_for_workspace(
        &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)]
        dataset_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
/// Internal service for managing per-workspace usage tracking dataset metadata.
#[conjure_http::conjure_client(name = "InternalUsageMetadataService")]
pub trait AsyncInternalUsageMetadataService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Sets the usage tracking dataset RID for the specified workspace. Creates or updates the mapping.
    #[endpoint(
        method = PUT,
        path = "/internal/scout/v2/usage-metadata/workspaces/{workspaceRid}/usage-dataset",
        name = "setUsageDatasetForWorkspace",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn set_usage_dataset_for_workspace(
        &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)]
        dataset_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
/// Internal service for managing per-workspace usage tracking dataset metadata.
#[conjure_http::conjure_client(name = "InternalUsageMetadataService", local)]
pub trait LocalAsyncInternalUsageMetadataService<
    #[response_body]
    I: conjure_http::private::Stream<
            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
        >,
> {
    /// Sets the usage tracking dataset RID for the specified workspace. Creates or updates the mapping.
    #[endpoint(
        method = PUT,
        path = "/internal/scout/v2/usage-metadata/workspaces/{workspaceRid}/usage-dataset",
        name = "setUsageDatasetForWorkspace",
        accept = conjure_http::client::conjure::EmptyResponseDeserializer
    )]
    async fn set_usage_dataset_for_workspace(
        &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)]
        dataset_rid: &conjure_object::ResourceIdentifier,
    ) -> Result<(), conjure_http::private::Error>;
}
