aws-sdk-opensearch 1.121.0

AWS SDK for Amazon OpenSearch Service
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::update_direct_query_data_source::_update_direct_query_data_source_input::UpdateDirectQueryDataSourceInputBuilder;

pub use crate::operation::update_direct_query_data_source::_update_direct_query_data_source_output::UpdateDirectQueryDataSourceOutputBuilder;

impl crate::operation::update_direct_query_data_source::builders::UpdateDirectQueryDataSourceInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::update_direct_query_data_source::UpdateDirectQueryDataSourceOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::update_direct_query_data_source::UpdateDirectQueryDataSourceError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.update_direct_query_data_source();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `UpdateDirectQueryDataSource`.
///
/// <p>Updates the configuration or properties of an existing direct query data source in Amazon OpenSearch Service.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct UpdateDirectQueryDataSourceFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::update_direct_query_data_source::builders::UpdateDirectQueryDataSourceInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::update_direct_query_data_source::UpdateDirectQueryDataSourceOutput,
        crate::operation::update_direct_query_data_source::UpdateDirectQueryDataSourceError,
    > for UpdateDirectQueryDataSourceFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::update_direct_query_data_source::UpdateDirectQueryDataSourceOutput,
            crate::operation::update_direct_query_data_source::UpdateDirectQueryDataSourceError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl UpdateDirectQueryDataSourceFluentBuilder {
    /// Creates a new `UpdateDirectQueryDataSourceFluentBuilder`.
    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 UpdateDirectQueryDataSource as a reference.
    pub fn as_input(&self) -> &crate::operation::update_direct_query_data_source::builders::UpdateDirectQueryDataSourceInputBuilder {
        &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::update_direct_query_data_source::UpdateDirectQueryDataSourceOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::update_direct_query_data_source::UpdateDirectQueryDataSourceError,
            ::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::update_direct_query_data_source::UpdateDirectQueryDataSource::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::update_direct_query_data_source::UpdateDirectQueryDataSource::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::update_direct_query_data_source::UpdateDirectQueryDataSourceOutput,
        crate::operation::update_direct_query_data_source::UpdateDirectQueryDataSourceError,
        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
    }
    /// <p>A unique, user-defined label to identify the data source within your OpenSearch Service environment.</p>
    pub fn data_source_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.data_source_name(input.into());
        self
    }
    /// <p>A unique, user-defined label to identify the data source within your OpenSearch Service environment.</p>
    pub fn set_data_source_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_data_source_name(input);
        self
    }
    /// <p>A unique, user-defined label to identify the data source within your OpenSearch Service environment.</p>
    pub fn get_data_source_name(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_data_source_name()
    }
    /// <p>The supported Amazon Web Services service that you want to use as the source for direct queries in OpenSearch Service.</p>
    pub fn data_source_type(mut self, input: crate::types::DirectQueryDataSourceType) -> Self {
        self.inner = self.inner.data_source_type(input);
        self
    }
    /// <p>The supported Amazon Web Services service that you want to use as the source for direct queries in OpenSearch Service.</p>
    pub fn set_data_source_type(mut self, input: ::std::option::Option<crate::types::DirectQueryDataSourceType>) -> Self {
        self.inner = self.inner.set_data_source_type(input);
        self
    }
    /// <p>The supported Amazon Web Services service that you want to use as the source for direct queries in OpenSearch Service.</p>
    pub fn get_data_source_type(&self) -> &::std::option::Option<crate::types::DirectQueryDataSourceType> {
        self.inner.get_data_source_type()
    }
    /// <p>An optional text field for providing additional context and details about the data source.</p>
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.description(input.into());
        self
    }
    /// <p>An optional text field for providing additional context and details about the data source.</p>
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_description(input);
        self
    }
    /// <p>An optional text field for providing additional context and details about the data source.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_description()
    }
    ///
    /// Appends an item to `OpenSearchArns`.
    ///
    /// To override the contents of this collection use [`set_open_search_arns`](Self::set_open_search_arns).
    ///
    /// <p>An optional list of Amazon Resource Names (ARNs) for the OpenSearch collections that are associated with the direct query data source. This field is required for CloudWatchLogs and SecurityLake datasource types.</p>
    pub fn open_search_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.open_search_arns(input.into());
        self
    }
    /// <p>An optional list of Amazon Resource Names (ARNs) for the OpenSearch collections that are associated with the direct query data source. This field is required for CloudWatchLogs and SecurityLake datasource types.</p>
    pub fn set_open_search_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.inner = self.inner.set_open_search_arns(input);
        self
    }
    /// <p>An optional list of Amazon Resource Names (ARNs) for the OpenSearch collections that are associated with the direct query data source. This field is required for CloudWatchLogs and SecurityLake datasource types.</p>
    pub fn get_open_search_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        self.inner.get_open_search_arns()
    }
    /// <p>An optional IAM access policy document that defines the updated permissions for accessing the direct query data source. The policy document must be in valid JSON format and follow IAM policy syntax. If not specified, the existing access policy if present remains unchanged.</p>
    pub fn data_source_access_policy(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.data_source_access_policy(input.into());
        self
    }
    /// <p>An optional IAM access policy document that defines the updated permissions for accessing the direct query data source. The policy document must be in valid JSON format and follow IAM policy syntax. If not specified, the existing access policy if present remains unchanged.</p>
    pub fn set_data_source_access_policy(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_data_source_access_policy(input);
        self
    }
    /// <p>An optional IAM access policy document that defines the updated permissions for accessing the direct query data source. The policy document must be in valid JSON format and follow IAM policy syntax. If not specified, the existing access policy if present remains unchanged.</p>
    pub fn get_data_source_access_policy(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_data_source_access_policy()
    }
}