aws-sdk-keyspacesstreams 1.26.0

AWS SDK for Amazon Keyspaces Streams
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::get_shard_iterator::_get_shard_iterator_input::GetShardIteratorInputBuilder;

pub use crate::operation::get_shard_iterator::_get_shard_iterator_output::GetShardIteratorOutputBuilder;

impl crate::operation::get_shard_iterator::builders::GetShardIteratorInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::get_shard_iterator::GetShardIteratorOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::get_shard_iterator::GetShardIteratorError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.get_shard_iterator();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `GetShardIterator`.
///
/// <p>Returns a shard iterator that serves as a bookmark for reading data from a specific position in an Amazon Keyspaces data stream's shard. The shard iterator specifies the shard position from which to start reading data records sequentially. You can specify whether to begin reading at the latest record, the oldest record, or at a particular sequence number within the shard.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct GetShardIteratorFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::get_shard_iterator::builders::GetShardIteratorInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::get_shard_iterator::GetShardIteratorOutput,
        crate::operation::get_shard_iterator::GetShardIteratorError,
    > for GetShardIteratorFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::get_shard_iterator::GetShardIteratorOutput,
            crate::operation::get_shard_iterator::GetShardIteratorError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl GetShardIteratorFluentBuilder {
    /// Creates a new `GetShardIteratorFluentBuilder`.
    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 GetShardIterator as a reference.
    pub fn as_input(&self) -> &crate::operation::get_shard_iterator::builders::GetShardIteratorInputBuilder {
        &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::get_shard_iterator::GetShardIteratorOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::get_shard_iterator::GetShardIteratorError,
            ::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::get_shard_iterator::GetShardIterator::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::get_shard_iterator::GetShardIterator::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::get_shard_iterator::GetShardIteratorOutput,
        crate::operation::get_shard_iterator::GetShardIteratorError,
        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>The Amazon Resource Name (ARN) of the stream for which to get the shard iterator. The ARN uniquely identifies the stream within Amazon Keyspaces.</p>
    pub fn stream_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.stream_arn(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the stream for which to get the shard iterator. The ARN uniquely identifies the stream within Amazon Keyspaces.</p>
    pub fn set_stream_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_stream_arn(input);
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the stream for which to get the shard iterator. The ARN uniquely identifies the stream within Amazon Keyspaces.</p>
    pub fn get_stream_arn(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_stream_arn()
    }
    /// <p>The identifier of the shard within the stream. The shard ID uniquely identifies a subset of the stream's data records that you want to access.</p>
    pub fn shard_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.shard_id(input.into());
        self
    }
    /// <p>The identifier of the shard within the stream. The shard ID uniquely identifies a subset of the stream's data records that you want to access.</p>
    pub fn set_shard_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_shard_id(input);
        self
    }
    /// <p>The identifier of the shard within the stream. The shard ID uniquely identifies a subset of the stream's data records that you want to access.</p>
    pub fn get_shard_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_shard_id()
    }
    /// <p>Determines how the shard iterator is positioned. Must be one of the following:</p>
    /// <ul>
    /// <li>
    /// <p><code>TRIM_HORIZON</code> - Start reading at the last untrimmed record in the shard, which is the oldest data record in the shard.</p></li>
    /// <li>
    /// <p><code>AT_SEQUENCE_NUMBER</code> - Start reading exactly from the specified sequence number.</p></li>
    /// <li>
    /// <p><code>AFTER_SEQUENCE_NUMBER</code> - Start reading right after the specified sequence number.</p></li>
    /// <li>
    /// <p><code>LATEST</code> - Start reading just after the most recent record in the shard, so that you always read the most recent data.</p></li>
    /// </ul>
    pub fn shard_iterator_type(mut self, input: crate::types::ShardIteratorType) -> Self {
        self.inner = self.inner.shard_iterator_type(input);
        self
    }
    /// <p>Determines how the shard iterator is positioned. Must be one of the following:</p>
    /// <ul>
    /// <li>
    /// <p><code>TRIM_HORIZON</code> - Start reading at the last untrimmed record in the shard, which is the oldest data record in the shard.</p></li>
    /// <li>
    /// <p><code>AT_SEQUENCE_NUMBER</code> - Start reading exactly from the specified sequence number.</p></li>
    /// <li>
    /// <p><code>AFTER_SEQUENCE_NUMBER</code> - Start reading right after the specified sequence number.</p></li>
    /// <li>
    /// <p><code>LATEST</code> - Start reading just after the most recent record in the shard, so that you always read the most recent data.</p></li>
    /// </ul>
    pub fn set_shard_iterator_type(mut self, input: ::std::option::Option<crate::types::ShardIteratorType>) -> Self {
        self.inner = self.inner.set_shard_iterator_type(input);
        self
    }
    /// <p>Determines how the shard iterator is positioned. Must be one of the following:</p>
    /// <ul>
    /// <li>
    /// <p><code>TRIM_HORIZON</code> - Start reading at the last untrimmed record in the shard, which is the oldest data record in the shard.</p></li>
    /// <li>
    /// <p><code>AT_SEQUENCE_NUMBER</code> - Start reading exactly from the specified sequence number.</p></li>
    /// <li>
    /// <p><code>AFTER_SEQUENCE_NUMBER</code> - Start reading right after the specified sequence number.</p></li>
    /// <li>
    /// <p><code>LATEST</code> - Start reading just after the most recent record in the shard, so that you always read the most recent data.</p></li>
    /// </ul>
    pub fn get_shard_iterator_type(&self) -> &::std::option::Option<crate::types::ShardIteratorType> {
        self.inner.get_shard_iterator_type()
    }
    /// <p>The sequence number of the data record in the shard from which to start reading. Required if <code>ShardIteratorType</code> is <code>AT_SEQUENCE_NUMBER</code> or <code>AFTER_SEQUENCE_NUMBER</code>. This parameter is ignored for other iterator types.</p>
    pub fn sequence_number(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.sequence_number(input.into());
        self
    }
    /// <p>The sequence number of the data record in the shard from which to start reading. Required if <code>ShardIteratorType</code> is <code>AT_SEQUENCE_NUMBER</code> or <code>AFTER_SEQUENCE_NUMBER</code>. This parameter is ignored for other iterator types.</p>
    pub fn set_sequence_number(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_sequence_number(input);
        self
    }
    /// <p>The sequence number of the data record in the shard from which to start reading. Required if <code>ShardIteratorType</code> is <code>AT_SEQUENCE_NUMBER</code> or <code>AFTER_SEQUENCE_NUMBER</code>. This parameter is ignored for other iterator types.</p>
    pub fn get_sequence_number(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_sequence_number()
    }
}