// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::search_listings::_search_listings_input::SearchListingsInputBuilder;
pub use crate::operation::search_listings::_search_listings_output::SearchListingsOutputBuilder;
impl crate::operation::search_listings::builders::SearchListingsInputBuilder {
/// Sends a request with this input using the given client.
pub async fn send_with(
self,
client: &crate::Client,
) -> ::std::result::Result<
crate::operation::search_listings::SearchListingsOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::search_listings::SearchListingsError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let mut fluent_builder = client.search_listings();
fluent_builder.inner = self;
fluent_builder.send().await
}
}
/// Fluent builder constructing a request to `SearchListings`.
///
/// <p>Searches listings in Amazon DataZone.</p>
/// <p>SearchListings is a powerful capability that enables users to discover and explore published assets and data products across their organization. It provides both basic and advanced search functionality, allowing users to find resources based on names, descriptions, metadata, and other attributes. SearchListings also supports filtering using various criteria such as creation date, owner, or status. This API is essential for making the wealth of data resources in an organization discoverable and usable, helping users find the right data for their needs quickly and efficiently.</p>
/// <p>SearchListings returns results in a paginated format. When the result set is large, the response will include a nextToken, which can be used to retrieve the next page of results.</p>
/// <p>The SearchListings API gives users flexibility in specifying what kind of search is run.</p>
/// <p>To run a standard free-text search, the <code>searchText</code> parameter must be supplied. By default, all searchable fields are indexed for semantic search and will return semantic matches for SearchListings queries. To prevent semantic search indexing for a custom form attribute, see the <a href="https://docs.aws.amazon.com/datazone/latest/APIReference/API_CreateFormType.html">CreateFormType API documentation</a>. To run a lexical search query, enclose the query with double quotes (""). This will disable semantic search even for fields that have semantic search enabled and will only return results that contain the keywords wrapped by double quotes (order of tokens in the query is not enforced). Free-text search is supported for all attributes annotated with @amazon.datazone#searchable.</p>
/// <p>To run a filtered search, provide filter clause using the <code>filters</code> parameter. To filter on glossary terms, use the special attribute <code>__DataZoneGlossaryTerms</code>. To filter on an indexed numeric attribute (i.e., a numeric attribute annotated with <code>@amazon.datazone#sortable</code>), provide a filter using the <code>intValue</code> parameter. The filters parameter can also be used to run more advanced free-text searches that target specific attributes (attributes must be annotated with <code>@amazon.datazone#searchable</code> for free-text search). Create/update timestamp filtering is supported using the special <code>creationTime</code>/<code>lastUpdatedTime</code> attributes. Filter types can be mixed and matched to power complex queries.</p>
/// <p>To find out whether an attribute has been annotated and indexed for a given search type, use the GetFormType API to retrieve the form containing the attribute.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct SearchListingsFluentBuilder {
handle: ::std::sync::Arc<crate::client::Handle>,
inner: crate::operation::search_listings::builders::SearchListingsInputBuilder,
config_override: ::std::option::Option<crate::config::Builder>,
}
impl
crate::client::customize::internal::CustomizableSend<
crate::operation::search_listings::SearchListingsOutput,
crate::operation::search_listings::SearchListingsError,
> for SearchListingsFluentBuilder
{
fn send(
self,
config_override: crate::config::Builder,
) -> crate::client::customize::internal::BoxFuture<
crate::client::customize::internal::SendResult<
crate::operation::search_listings::SearchListingsOutput,
crate::operation::search_listings::SearchListingsError,
>,
> {
::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
}
}
impl SearchListingsFluentBuilder {
/// Creates a new `SearchListingsFluentBuilder`.
pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
Self {
handle,
inner: ::std::default::Default::default(),
config_override: ::std::option::Option::None,
}
}
/// Access the SearchListings as a reference.
pub fn as_input(&self) -> &crate::operation::search_listings::builders::SearchListingsInputBuilder {
&self.inner
}
/// Sends the request and returns the response.
///
/// If an error occurs, an `SdkError` will be returned with additional details that
/// can be matched against.
///
/// By default, any retryable failures will be retried twice. Retry behavior
/// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
/// set when configuring the client.
pub async fn send(
self,
) -> ::std::result::Result<
crate::operation::search_listings::SearchListingsOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::search_listings::SearchListingsError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let input = self
.inner
.build()
.map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
let runtime_plugins = crate::operation::search_listings::SearchListings::operation_runtime_plugins(
self.handle.runtime_plugins.clone(),
&self.handle.conf,
self.config_override,
);
crate::operation::search_listings::SearchListings::orchestrate(&runtime_plugins, input).await
}
/// Consumes this builder, creating a customizable operation that can be modified before being sent.
pub fn customize(
self,
) -> crate::client::customize::CustomizableOperation<
crate::operation::search_listings::SearchListingsOutput,
crate::operation::search_listings::SearchListingsError,
Self,
> {
crate::client::customize::CustomizableOperation::new(self)
}
pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
self.set_config_override(::std::option::Option::Some(config_override.into()));
self
}
pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
self.config_override = config_override;
self
}
/// Create a paginator for this request
///
/// Paginators are used by calling [`send().await`](crate::operation::search_listings::paginator::SearchListingsPaginator::send) which returns a [`PaginationStream`](aws_smithy_async::future::pagination_stream::PaginationStream).
pub fn into_paginator(self) -> crate::operation::search_listings::paginator::SearchListingsPaginator {
crate::operation::search_listings::paginator::SearchListingsPaginator::new(self.handle, self.inner)
}
/// <p>The identifier of the domain in which to search listings.</p>
pub fn domain_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.domain_identifier(input.into());
self
}
/// <p>The identifier of the domain in which to search listings.</p>
pub fn set_domain_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_domain_identifier(input);
self
}
/// <p>The identifier of the domain in which to search listings.</p>
pub fn get_domain_identifier(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_domain_identifier()
}
/// <p>Specifies the text for which to search.</p>
pub fn search_text(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.search_text(input.into());
self
}
/// <p>Specifies the text for which to search.</p>
pub fn set_search_text(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_search_text(input);
self
}
/// <p>Specifies the text for which to search.</p>
pub fn get_search_text(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_search_text()
}
///
/// Appends an item to `searchIn`.
///
/// To override the contents of this collection use [`set_search_in`](Self::set_search_in).
///
/// <p>The details of the search.</p>
pub fn search_in(mut self, input: crate::types::SearchInItem) -> Self {
self.inner = self.inner.search_in(input);
self
}
/// <p>The details of the search.</p>
pub fn set_search_in(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SearchInItem>>) -> Self {
self.inner = self.inner.set_search_in(input);
self
}
/// <p>The details of the search.</p>
pub fn get_search_in(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SearchInItem>> {
self.inner.get_search_in()
}
/// <p>The maximum number of results to return in a single call to <code>SearchListings</code>. When the number of results to be listed is greater than the value of <code>MaxResults</code>, the response contains a <code>NextToken</code> value that you can use in a subsequent call to <code>SearchListings</code> to list the next set of results.</p>
pub fn max_results(mut self, input: i32) -> Self {
self.inner = self.inner.max_results(input);
self
}
/// <p>The maximum number of results to return in a single call to <code>SearchListings</code>. When the number of results to be listed is greater than the value of <code>MaxResults</code>, the response contains a <code>NextToken</code> value that you can use in a subsequent call to <code>SearchListings</code> to list the next set of results.</p>
pub fn set_max_results(mut self, input: ::std::option::Option<i32>) -> Self {
self.inner = self.inner.set_max_results(input);
self
}
/// <p>The maximum number of results to return in a single call to <code>SearchListings</code>. When the number of results to be listed is greater than the value of <code>MaxResults</code>, the response contains a <code>NextToken</code> value that you can use in a subsequent call to <code>SearchListings</code> to list the next set of results.</p>
pub fn get_max_results(&self) -> &::std::option::Option<i32> {
self.inner.get_max_results()
}
/// <p>When the number of results is greater than the default value for the <code>MaxResults</code> parameter, or if you explicitly specify a value for <code>MaxResults</code> that is less than the number of results, the response includes a pagination token named <code>NextToken</code>. You can specify this <code>NextToken</code> value in a subsequent call to <code>SearchListings</code> to list the next set of results.</p>
pub fn next_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.next_token(input.into());
self
}
/// <p>When the number of results is greater than the default value for the <code>MaxResults</code> parameter, or if you explicitly specify a value for <code>MaxResults</code> that is less than the number of results, the response includes a pagination token named <code>NextToken</code>. You can specify this <code>NextToken</code> value in a subsequent call to <code>SearchListings</code> to list the next set of results.</p>
pub fn set_next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_next_token(input);
self
}
/// <p>When the number of results is greater than the default value for the <code>MaxResults</code> parameter, or if you explicitly specify a value for <code>MaxResults</code> that is less than the number of results, the response includes a pagination token named <code>NextToken</code>. You can specify this <code>NextToken</code> value in a subsequent call to <code>SearchListings</code> to list the next set of results.</p>
pub fn get_next_token(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_next_token()
}
/// <p>Specifies the filters for the search of listings.</p>
pub fn filters(mut self, input: crate::types::FilterClause) -> Self {
self.inner = self.inner.filters(input);
self
}
/// <p>Specifies the filters for the search of listings.</p>
pub fn set_filters(mut self, input: ::std::option::Option<crate::types::FilterClause>) -> Self {
self.inner = self.inner.set_filters(input);
self
}
/// <p>Specifies the filters for the search of listings.</p>
pub fn get_filters(&self) -> &::std::option::Option<crate::types::FilterClause> {
self.inner.get_filters()
}
///
/// Appends an item to `aggregations`.
///
/// To override the contents of this collection use [`set_aggregations`](Self::set_aggregations).
///
/// <p>Enables you to specify one or more attributes to compute and return counts grouped by field values.</p>
pub fn aggregations(mut self, input: crate::types::AggregationListItem) -> Self {
self.inner = self.inner.aggregations(input);
self
}
/// <p>Enables you to specify one or more attributes to compute and return counts grouped by field values.</p>
pub fn set_aggregations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::AggregationListItem>>) -> Self {
self.inner = self.inner.set_aggregations(input);
self
}
/// <p>Enables you to specify one or more attributes to compute and return counts grouped by field values.</p>
pub fn get_aggregations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::AggregationListItem>> {
self.inner.get_aggregations()
}
/// <p>Specifies the way for sorting the search results.</p>
pub fn sort(mut self, input: crate::types::SearchSort) -> Self {
self.inner = self.inner.sort(input);
self
}
/// <p>Specifies the way for sorting the search results.</p>
pub fn set_sort(mut self, input: ::std::option::Option<crate::types::SearchSort>) -> Self {
self.inner = self.inner.set_sort(input);
self
}
/// <p>Specifies the way for sorting the search results.</p>
pub fn get_sort(&self) -> &::std::option::Option<crate::types::SearchSort> {
self.inner.get_sort()
}
///
/// Appends an item to `additionalAttributes`.
///
/// To override the contents of this collection use [`set_additional_attributes`](Self::set_additional_attributes).
///
/// <p>Specifies additional attributes for the search.</p>
pub fn additional_attributes(mut self, input: crate::types::SearchOutputAdditionalAttribute) -> Self {
self.inner = self.inner.additional_attributes(input);
self
}
/// <p>Specifies additional attributes for the search.</p>
pub fn set_additional_attributes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SearchOutputAdditionalAttribute>>) -> Self {
self.inner = self.inner.set_additional_attributes(input);
self
}
/// <p>Specifies additional attributes for the search.</p>
pub fn get_additional_attributes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SearchOutputAdditionalAttribute>> {
self.inner.get_additional_attributes()
}
}