use conjure_http::endpoint;
/// The Resource Metadata Service provides common metadata about resources.
#[conjure_http::conjure_endpoints(
    name = "ResourceMetadataService",
    use_legacy_error_serialization
)]
pub trait ResourceMetadataService {
    /// Returns all existing properties (key value pairs) and labels, which can be used to organize resources
    /// such as runs and videos.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/list-properties-labels",
        name = "listPropertiesAndLabels",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn list_properties_and_labels(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::ListPropertiesAndLabelsRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::ListPropertiesAndLabelsResponse,
        conjure_http::private::Error,
    >;
    /// Returns the count of resources that use a given label or property. The query can
    /// match by label, property name (key only), or a full property key+value pair.
    /// Counts are scoped to the caller's accessible workspaces unless specific workspaces
    /// are provided.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/usage-count",
        name = "getMetadataUsageCount",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn get_metadata_usage_count(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::GetMetadataUsageCountRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::GetMetadataUsageCountResponse,
        conjure_http::private::Error,
    >;
    /// Given a set of labels, finds similar labels across the specified workspaces and resource types.
    /// Includes document count. Useful for detecting unintentional duplicate labels.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/label/find-similar",
        name = "findSimilarLabelMatches",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn find_similar_label_matches(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::FindSimilarLabelMatchesRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::FindSimilarLabelMatchesResponse,
        conjure_http::private::Error,
    >;
    /// Given a set of property keys, finds similar property keys across the specified workspaces and resource types.
    /// Includes document count. Useful for detecting unintentional duplicate property keys.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/property/find-similar",
        name = "findSimilarPropertyKeyMatches",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn find_similar_property_key_matches(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::FindSimilarPropertyKeyMatchesRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::FindSimilarPropertyKeyMatchesResponse,
        conjure_http::private::Error,
    >;
    /// Returns a paginated list of labels with document usage counts, filterable by
    /// resource type, workspace, and search text.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/search-labels",
        name = "searchLabels",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn search_labels(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::SearchMetadataRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::SearchLabelsResponse,
        conjure_http::private::Error,
    >;
    /// Returns a paginated list of property keys with document usage counts, filterable
    /// by resource type, workspace, and search text.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/search-property-keys",
        name = "searchPropertyKeys",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn search_property_keys(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::SearchMetadataRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::SearchPropertyKeysResponse,
        conjure_http::private::Error,
    >;
    /// Returns a paginated list of property values for a given property key with document
    /// usage counts, filterable by resource type, workspace, and search text.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/search-property-values",
        name = "searchPropertyValues",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn search_property_values(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::SearchPropertyValuesRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::SearchPropertyValuesResponse,
        conjure_http::private::Error,
    >;
}
/// The Resource Metadata Service provides common metadata about resources.
#[conjure_http::conjure_endpoints(
    name = "ResourceMetadataService",
    use_legacy_error_serialization
)]
pub trait AsyncResourceMetadataService {
    /// Returns all existing properties (key value pairs) and labels, which can be used to organize resources
    /// such as runs and videos.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/list-properties-labels",
        name = "listPropertiesAndLabels",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn list_properties_and_labels(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::ListPropertiesAndLabelsRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::ListPropertiesAndLabelsResponse,
        conjure_http::private::Error,
    >;
    /// Returns the count of resources that use a given label or property. The query can
    /// match by label, property name (key only), or a full property key+value pair.
    /// Counts are scoped to the caller's accessible workspaces unless specific workspaces
    /// are provided.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/usage-count",
        name = "getMetadataUsageCount",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn get_metadata_usage_count(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::GetMetadataUsageCountRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::GetMetadataUsageCountResponse,
        conjure_http::private::Error,
    >;
    /// Given a set of labels, finds similar labels across the specified workspaces and resource types.
    /// Includes document count. Useful for detecting unintentional duplicate labels.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/label/find-similar",
        name = "findSimilarLabelMatches",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn find_similar_label_matches(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::FindSimilarLabelMatchesRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::FindSimilarLabelMatchesResponse,
        conjure_http::private::Error,
    >;
    /// Given a set of property keys, finds similar property keys across the specified workspaces and resource types.
    /// Includes document count. Useful for detecting unintentional duplicate property keys.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/property/find-similar",
        name = "findSimilarPropertyKeyMatches",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn find_similar_property_key_matches(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::FindSimilarPropertyKeyMatchesRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::FindSimilarPropertyKeyMatchesResponse,
        conjure_http::private::Error,
    >;
    /// Returns a paginated list of labels with document usage counts, filterable by
    /// resource type, workspace, and search text.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/search-labels",
        name = "searchLabels",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn search_labels(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::SearchMetadataRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::SearchLabelsResponse,
        conjure_http::private::Error,
    >;
    /// Returns a paginated list of property keys with document usage counts, filterable
    /// by resource type, workspace, and search text.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/search-property-keys",
        name = "searchPropertyKeys",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn search_property_keys(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::SearchMetadataRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::SearchPropertyKeysResponse,
        conjure_http::private::Error,
    >;
    /// Returns a paginated list of property values for a given property key with document
    /// usage counts, filterable by resource type, workspace, and search text.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/search-property-values",
        name = "searchPropertyValues",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn search_property_values(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::SearchPropertyValuesRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::SearchPropertyValuesResponse,
        conjure_http::private::Error,
    >;
}
/// The Resource Metadata Service provides common metadata about resources.
#[conjure_http::conjure_endpoints(
    name = "ResourceMetadataService",
    use_legacy_error_serialization,
    local
)]
pub trait LocalAsyncResourceMetadataService {
    /// Returns all existing properties (key value pairs) and labels, which can be used to organize resources
    /// such as runs and videos.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/list-properties-labels",
        name = "listPropertiesAndLabels",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn list_properties_and_labels(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::ListPropertiesAndLabelsRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::ListPropertiesAndLabelsResponse,
        conjure_http::private::Error,
    >;
    /// Returns the count of resources that use a given label or property. The query can
    /// match by label, property name (key only), or a full property key+value pair.
    /// Counts are scoped to the caller's accessible workspaces unless specific workspaces
    /// are provided.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/usage-count",
        name = "getMetadataUsageCount",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn get_metadata_usage_count(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::GetMetadataUsageCountRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::GetMetadataUsageCountResponse,
        conjure_http::private::Error,
    >;
    /// Given a set of labels, finds similar labels across the specified workspaces and resource types.
    /// Includes document count. Useful for detecting unintentional duplicate labels.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/label/find-similar",
        name = "findSimilarLabelMatches",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn find_similar_label_matches(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::FindSimilarLabelMatchesRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::FindSimilarLabelMatchesResponse,
        conjure_http::private::Error,
    >;
    /// Given a set of property keys, finds similar property keys across the specified workspaces and resource types.
    /// Includes document count. Useful for detecting unintentional duplicate property keys.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/property/find-similar",
        name = "findSimilarPropertyKeyMatches",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn find_similar_property_key_matches(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::FindSimilarPropertyKeyMatchesRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::FindSimilarPropertyKeyMatchesResponse,
        conjure_http::private::Error,
    >;
    /// Returns a paginated list of labels with document usage counts, filterable by
    /// resource type, workspace, and search text.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/search-labels",
        name = "searchLabels",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn search_labels(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::SearchMetadataRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::SearchLabelsResponse,
        conjure_http::private::Error,
    >;
    /// Returns a paginated list of property keys with document usage counts, filterable
    /// by resource type, workspace, and search text.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/search-property-keys",
        name = "searchPropertyKeys",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn search_property_keys(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::SearchMetadataRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::SearchPropertyKeysResponse,
        conjure_http::private::Error,
    >;
    /// Returns a paginated list of property values for a given property key with document
    /// usage counts, filterable by resource type, workspace, and search text.
    #[endpoint(
        method = POST,
        path = "/scout/v1/metadata/search-property-values",
        name = "searchPropertyValues",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn search_property_values(
        &self,
        #[auth]
        auth_: conjure_object::BearerToken,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::super::objects::scout::metadata::SearchPropertyValuesRequest,
    ) -> Result<
        super::super::super::super::objects::scout::metadata::SearchPropertyValuesResponse,
        conjure_http::private::Error,
    >;
}
