use std::fmt::Write;
pub mod describe_stream_input {
#[non_exhaustive]
#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct Builder {
pub(crate) stream_arn: std::option::Option<std::string::String>,
pub(crate) limit: std::option::Option<i32>,
pub(crate) exclusive_start_shard_id: std::option::Option<std::string::String>,
}
impl Builder {
pub fn stream_arn(mut self, input: impl Into<std::string::String>) -> Self {
self.stream_arn = Some(input.into());
self
}
pub fn set_stream_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
self.stream_arn = input;
self
}
pub fn limit(mut self, input: i32) -> Self {
self.limit = Some(input);
self
}
pub fn set_limit(mut self, input: std::option::Option<i32>) -> Self {
self.limit = input;
self
}
pub fn exclusive_start_shard_id(mut self, input: impl Into<std::string::String>) -> Self {
self.exclusive_start_shard_id = Some(input.into());
self
}
pub fn set_exclusive_start_shard_id(
mut self,
input: std::option::Option<std::string::String>,
) -> Self {
self.exclusive_start_shard_id = input;
self
}
pub fn build(
self,
) -> std::result::Result<
crate::input::DescribeStreamInput,
aws_smithy_http::operation::BuildError,
> {
Ok(crate::input::DescribeStreamInput {
stream_arn: self.stream_arn,
limit: self.limit,
exclusive_start_shard_id: self.exclusive_start_shard_id,
})
}
}
}
#[doc(hidden)]
pub type DescribeStreamInputOperationOutputAlias = crate::operation::DescribeStream;
#[doc(hidden)]
pub type DescribeStreamInputOperationRetryAlias = aws_http::retry::AwsErrorRetryPolicy;
impl DescribeStreamInput {
#[allow(unused_mut)]
#[allow(clippy::let_and_return)]
#[allow(clippy::needless_borrow)]
pub async fn make_operation(
&self,
_config: &crate::config::Config,
) -> std::result::Result<
aws_smithy_http::operation::Operation<
crate::operation::DescribeStream,
aws_http::retry::AwsErrorRetryPolicy,
>,
aws_smithy_http::operation::BuildError,
> {
let mut request = {
fn uri_base(
_input: &crate::input::DescribeStreamInput,
output: &mut String,
) -> Result<(), aws_smithy_http::operation::BuildError> {
write!(output, "/").expect("formatting should succeed");
Ok(())
}
#[allow(clippy::unnecessary_wraps)]
fn update_http_builder(
input: &crate::input::DescribeStreamInput,
builder: http::request::Builder,
) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
{
let mut uri = String::new();
uri_base(input, &mut uri)?;
Ok(builder.method("POST").uri(uri))
}
let mut builder = update_http_builder(&self, http::request::Builder::new())?;
builder = aws_smithy_http::header::set_request_header_if_absent(
builder,
http::header::CONTENT_TYPE,
"application/x-amz-json-1.0",
);
builder = aws_smithy_http::header::set_request_header_if_absent(
builder,
http::header::HeaderName::from_static("x-amz-target"),
"DynamoDBStreams_20120810.DescribeStream",
);
builder
};
let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
#[allow(clippy::useless_conversion)]
let body = aws_smithy_http::body::SdkBody::from(
crate::operation_ser::serialize_operation_crate_operation_describe_stream(&self)?,
);
if let Some(content_length) = body.content_length() {
request = aws_smithy_http::header::set_request_header_if_absent(
request,
http::header::CONTENT_LENGTH,
content_length,
);
}
let request = request.body(body).expect("should be valid request");
let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
request
.properties_mut()
.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
let mut user_agent = aws_http::user_agent::AwsUserAgent::new_from_environment(
aws_types::os_shim_internal::Env::real(),
crate::API_METADATA.clone(),
);
if let Some(app_name) = _config.app_name() {
user_agent = user_agent.with_app_name(app_name.clone());
}
request.properties_mut().insert(user_agent);
let mut signing_config = aws_sig_auth::signer::OperationSigningConfig::default_config();
request.properties_mut().insert(signing_config);
request
.properties_mut()
.insert(aws_types::SigningService::from_static(
_config.signing_service(),
));
aws_endpoint::set_endpoint_resolver(
&mut request.properties_mut(),
_config.endpoint_resolver.clone(),
);
if let Some(region) = &_config.region {
request.properties_mut().insert(region.clone());
}
aws_http::auth::set_provider(
&mut request.properties_mut(),
_config.credentials_provider.clone(),
);
let op = aws_smithy_http::operation::Operation::new(
request,
crate::operation::DescribeStream::new(),
)
.with_metadata(aws_smithy_http::operation::Metadata::new(
"DescribeStream",
"dynamodbstreams",
));
let op = op.with_retry_policy(aws_http::retry::AwsErrorRetryPolicy::new());
Ok(op)
}
pub fn builder() -> crate::input::describe_stream_input::Builder {
crate::input::describe_stream_input::Builder::default()
}
}
pub mod get_records_input {
#[non_exhaustive]
#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct Builder {
pub(crate) shard_iterator: std::option::Option<std::string::String>,
pub(crate) limit: std::option::Option<i32>,
}
impl Builder {
pub fn shard_iterator(mut self, input: impl Into<std::string::String>) -> Self {
self.shard_iterator = Some(input.into());
self
}
pub fn set_shard_iterator(
mut self,
input: std::option::Option<std::string::String>,
) -> Self {
self.shard_iterator = input;
self
}
pub fn limit(mut self, input: i32) -> Self {
self.limit = Some(input);
self
}
pub fn set_limit(mut self, input: std::option::Option<i32>) -> Self {
self.limit = input;
self
}
pub fn build(
self,
) -> std::result::Result<
crate::input::GetRecordsInput,
aws_smithy_http::operation::BuildError,
> {
Ok(crate::input::GetRecordsInput {
shard_iterator: self.shard_iterator,
limit: self.limit,
})
}
}
}
#[doc(hidden)]
pub type GetRecordsInputOperationOutputAlias = crate::operation::GetRecords;
#[doc(hidden)]
pub type GetRecordsInputOperationRetryAlias = aws_http::retry::AwsErrorRetryPolicy;
impl GetRecordsInput {
#[allow(unused_mut)]
#[allow(clippy::let_and_return)]
#[allow(clippy::needless_borrow)]
pub async fn make_operation(
&self,
_config: &crate::config::Config,
) -> std::result::Result<
aws_smithy_http::operation::Operation<
crate::operation::GetRecords,
aws_http::retry::AwsErrorRetryPolicy,
>,
aws_smithy_http::operation::BuildError,
> {
let mut request = {
fn uri_base(
_input: &crate::input::GetRecordsInput,
output: &mut String,
) -> Result<(), aws_smithy_http::operation::BuildError> {
write!(output, "/").expect("formatting should succeed");
Ok(())
}
#[allow(clippy::unnecessary_wraps)]
fn update_http_builder(
input: &crate::input::GetRecordsInput,
builder: http::request::Builder,
) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
{
let mut uri = String::new();
uri_base(input, &mut uri)?;
Ok(builder.method("POST").uri(uri))
}
let mut builder = update_http_builder(&self, http::request::Builder::new())?;
builder = aws_smithy_http::header::set_request_header_if_absent(
builder,
http::header::CONTENT_TYPE,
"application/x-amz-json-1.0",
);
builder = aws_smithy_http::header::set_request_header_if_absent(
builder,
http::header::HeaderName::from_static("x-amz-target"),
"DynamoDBStreams_20120810.GetRecords",
);
builder
};
let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
#[allow(clippy::useless_conversion)]
let body = aws_smithy_http::body::SdkBody::from(
crate::operation_ser::serialize_operation_crate_operation_get_records(&self)?,
);
if let Some(content_length) = body.content_length() {
request = aws_smithy_http::header::set_request_header_if_absent(
request,
http::header::CONTENT_LENGTH,
content_length,
);
}
let request = request.body(body).expect("should be valid request");
let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
request
.properties_mut()
.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
let mut user_agent = aws_http::user_agent::AwsUserAgent::new_from_environment(
aws_types::os_shim_internal::Env::real(),
crate::API_METADATA.clone(),
);
if let Some(app_name) = _config.app_name() {
user_agent = user_agent.with_app_name(app_name.clone());
}
request.properties_mut().insert(user_agent);
let mut signing_config = aws_sig_auth::signer::OperationSigningConfig::default_config();
request.properties_mut().insert(signing_config);
request
.properties_mut()
.insert(aws_types::SigningService::from_static(
_config.signing_service(),
));
aws_endpoint::set_endpoint_resolver(
&mut request.properties_mut(),
_config.endpoint_resolver.clone(),
);
if let Some(region) = &_config.region {
request.properties_mut().insert(region.clone());
}
aws_http::auth::set_provider(
&mut request.properties_mut(),
_config.credentials_provider.clone(),
);
let op = aws_smithy_http::operation::Operation::new(
request,
crate::operation::GetRecords::new(),
)
.with_metadata(aws_smithy_http::operation::Metadata::new(
"GetRecords",
"dynamodbstreams",
));
let op = op.with_retry_policy(aws_http::retry::AwsErrorRetryPolicy::new());
Ok(op)
}
pub fn builder() -> crate::input::get_records_input::Builder {
crate::input::get_records_input::Builder::default()
}
}
pub mod get_shard_iterator_input {
#[non_exhaustive]
#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct Builder {
pub(crate) stream_arn: std::option::Option<std::string::String>,
pub(crate) shard_id: std::option::Option<std::string::String>,
pub(crate) shard_iterator_type: std::option::Option<crate::model::ShardIteratorType>,
pub(crate) sequence_number: std::option::Option<std::string::String>,
}
impl Builder {
pub fn stream_arn(mut self, input: impl Into<std::string::String>) -> Self {
self.stream_arn = Some(input.into());
self
}
pub fn set_stream_arn(mut self, input: std::option::Option<std::string::String>) -> Self {
self.stream_arn = input;
self
}
pub fn shard_id(mut self, input: impl Into<std::string::String>) -> Self {
self.shard_id = Some(input.into());
self
}
pub fn set_shard_id(mut self, input: std::option::Option<std::string::String>) -> Self {
self.shard_id = input;
self
}
pub fn shard_iterator_type(mut self, input: crate::model::ShardIteratorType) -> Self {
self.shard_iterator_type = Some(input);
self
}
pub fn set_shard_iterator_type(
mut self,
input: std::option::Option<crate::model::ShardIteratorType>,
) -> Self {
self.shard_iterator_type = input;
self
}
pub fn sequence_number(mut self, input: impl Into<std::string::String>) -> Self {
self.sequence_number = Some(input.into());
self
}
pub fn set_sequence_number(
mut self,
input: std::option::Option<std::string::String>,
) -> Self {
self.sequence_number = input;
self
}
pub fn build(
self,
) -> std::result::Result<
crate::input::GetShardIteratorInput,
aws_smithy_http::operation::BuildError,
> {
Ok(crate::input::GetShardIteratorInput {
stream_arn: self.stream_arn,
shard_id: self.shard_id,
shard_iterator_type: self.shard_iterator_type,
sequence_number: self.sequence_number,
})
}
}
}
#[doc(hidden)]
pub type GetShardIteratorInputOperationOutputAlias = crate::operation::GetShardIterator;
#[doc(hidden)]
pub type GetShardIteratorInputOperationRetryAlias = aws_http::retry::AwsErrorRetryPolicy;
impl GetShardIteratorInput {
#[allow(unused_mut)]
#[allow(clippy::let_and_return)]
#[allow(clippy::needless_borrow)]
pub async fn make_operation(
&self,
_config: &crate::config::Config,
) -> std::result::Result<
aws_smithy_http::operation::Operation<
crate::operation::GetShardIterator,
aws_http::retry::AwsErrorRetryPolicy,
>,
aws_smithy_http::operation::BuildError,
> {
let mut request = {
fn uri_base(
_input: &crate::input::GetShardIteratorInput,
output: &mut String,
) -> Result<(), aws_smithy_http::operation::BuildError> {
write!(output, "/").expect("formatting should succeed");
Ok(())
}
#[allow(clippy::unnecessary_wraps)]
fn update_http_builder(
input: &crate::input::GetShardIteratorInput,
builder: http::request::Builder,
) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
{
let mut uri = String::new();
uri_base(input, &mut uri)?;
Ok(builder.method("POST").uri(uri))
}
let mut builder = update_http_builder(&self, http::request::Builder::new())?;
builder = aws_smithy_http::header::set_request_header_if_absent(
builder,
http::header::CONTENT_TYPE,
"application/x-amz-json-1.0",
);
builder = aws_smithy_http::header::set_request_header_if_absent(
builder,
http::header::HeaderName::from_static("x-amz-target"),
"DynamoDBStreams_20120810.GetShardIterator",
);
builder
};
let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
#[allow(clippy::useless_conversion)]
let body = aws_smithy_http::body::SdkBody::from(
crate::operation_ser::serialize_operation_crate_operation_get_shard_iterator(&self)?,
);
if let Some(content_length) = body.content_length() {
request = aws_smithy_http::header::set_request_header_if_absent(
request,
http::header::CONTENT_LENGTH,
content_length,
);
}
let request = request.body(body).expect("should be valid request");
let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
request
.properties_mut()
.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
let mut user_agent = aws_http::user_agent::AwsUserAgent::new_from_environment(
aws_types::os_shim_internal::Env::real(),
crate::API_METADATA.clone(),
);
if let Some(app_name) = _config.app_name() {
user_agent = user_agent.with_app_name(app_name.clone());
}
request.properties_mut().insert(user_agent);
let mut signing_config = aws_sig_auth::signer::OperationSigningConfig::default_config();
request.properties_mut().insert(signing_config);
request
.properties_mut()
.insert(aws_types::SigningService::from_static(
_config.signing_service(),
));
aws_endpoint::set_endpoint_resolver(
&mut request.properties_mut(),
_config.endpoint_resolver.clone(),
);
if let Some(region) = &_config.region {
request.properties_mut().insert(region.clone());
}
aws_http::auth::set_provider(
&mut request.properties_mut(),
_config.credentials_provider.clone(),
);
let op = aws_smithy_http::operation::Operation::new(
request,
crate::operation::GetShardIterator::new(),
)
.with_metadata(aws_smithy_http::operation::Metadata::new(
"GetShardIterator",
"dynamodbstreams",
));
let op = op.with_retry_policy(aws_http::retry::AwsErrorRetryPolicy::new());
Ok(op)
}
pub fn builder() -> crate::input::get_shard_iterator_input::Builder {
crate::input::get_shard_iterator_input::Builder::default()
}
}
pub mod list_streams_input {
#[non_exhaustive]
#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
pub struct Builder {
pub(crate) table_name: std::option::Option<std::string::String>,
pub(crate) limit: std::option::Option<i32>,
pub(crate) exclusive_start_stream_arn: std::option::Option<std::string::String>,
}
impl Builder {
pub fn table_name(mut self, input: impl Into<std::string::String>) -> Self {
self.table_name = Some(input.into());
self
}
pub fn set_table_name(mut self, input: std::option::Option<std::string::String>) -> Self {
self.table_name = input;
self
}
pub fn limit(mut self, input: i32) -> Self {
self.limit = Some(input);
self
}
pub fn set_limit(mut self, input: std::option::Option<i32>) -> Self {
self.limit = input;
self
}
pub fn exclusive_start_stream_arn(mut self, input: impl Into<std::string::String>) -> Self {
self.exclusive_start_stream_arn = Some(input.into());
self
}
pub fn set_exclusive_start_stream_arn(
mut self,
input: std::option::Option<std::string::String>,
) -> Self {
self.exclusive_start_stream_arn = input;
self
}
pub fn build(
self,
) -> std::result::Result<
crate::input::ListStreamsInput,
aws_smithy_http::operation::BuildError,
> {
Ok(crate::input::ListStreamsInput {
table_name: self.table_name,
limit: self.limit,
exclusive_start_stream_arn: self.exclusive_start_stream_arn,
})
}
}
}
#[doc(hidden)]
pub type ListStreamsInputOperationOutputAlias = crate::operation::ListStreams;
#[doc(hidden)]
pub type ListStreamsInputOperationRetryAlias = aws_http::retry::AwsErrorRetryPolicy;
impl ListStreamsInput {
#[allow(unused_mut)]
#[allow(clippy::let_and_return)]
#[allow(clippy::needless_borrow)]
pub async fn make_operation(
&self,
_config: &crate::config::Config,
) -> std::result::Result<
aws_smithy_http::operation::Operation<
crate::operation::ListStreams,
aws_http::retry::AwsErrorRetryPolicy,
>,
aws_smithy_http::operation::BuildError,
> {
let mut request = {
fn uri_base(
_input: &crate::input::ListStreamsInput,
output: &mut String,
) -> Result<(), aws_smithy_http::operation::BuildError> {
write!(output, "/").expect("formatting should succeed");
Ok(())
}
#[allow(clippy::unnecessary_wraps)]
fn update_http_builder(
input: &crate::input::ListStreamsInput,
builder: http::request::Builder,
) -> std::result::Result<http::request::Builder, aws_smithy_http::operation::BuildError>
{
let mut uri = String::new();
uri_base(input, &mut uri)?;
Ok(builder.method("POST").uri(uri))
}
let mut builder = update_http_builder(&self, http::request::Builder::new())?;
builder = aws_smithy_http::header::set_request_header_if_absent(
builder,
http::header::CONTENT_TYPE,
"application/x-amz-json-1.0",
);
builder = aws_smithy_http::header::set_request_header_if_absent(
builder,
http::header::HeaderName::from_static("x-amz-target"),
"DynamoDBStreams_20120810.ListStreams",
);
builder
};
let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
#[allow(clippy::useless_conversion)]
let body = aws_smithy_http::body::SdkBody::from(
crate::operation_ser::serialize_operation_crate_operation_list_streams(&self)?,
);
if let Some(content_length) = body.content_length() {
request = aws_smithy_http::header::set_request_header_if_absent(
request,
http::header::CONTENT_LENGTH,
content_length,
);
}
let request = request.body(body).expect("should be valid request");
let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
request
.properties_mut()
.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
let mut user_agent = aws_http::user_agent::AwsUserAgent::new_from_environment(
aws_types::os_shim_internal::Env::real(),
crate::API_METADATA.clone(),
);
if let Some(app_name) = _config.app_name() {
user_agent = user_agent.with_app_name(app_name.clone());
}
request.properties_mut().insert(user_agent);
let mut signing_config = aws_sig_auth::signer::OperationSigningConfig::default_config();
request.properties_mut().insert(signing_config);
request
.properties_mut()
.insert(aws_types::SigningService::from_static(
_config.signing_service(),
));
aws_endpoint::set_endpoint_resolver(
&mut request.properties_mut(),
_config.endpoint_resolver.clone(),
);
if let Some(region) = &_config.region {
request.properties_mut().insert(region.clone());
}
aws_http::auth::set_provider(
&mut request.properties_mut(),
_config.credentials_provider.clone(),
);
let op = aws_smithy_http::operation::Operation::new(
request,
crate::operation::ListStreams::new(),
)
.with_metadata(aws_smithy_http::operation::Metadata::new(
"ListStreams",
"dynamodbstreams",
));
let op = op.with_retry_policy(aws_http::retry::AwsErrorRetryPolicy::new());
Ok(op)
}
pub fn builder() -> crate::input::list_streams_input::Builder {
crate::input::list_streams_input::Builder::default()
}
}
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct ListStreamsInput {
pub table_name: std::option::Option<std::string::String>,
pub limit: std::option::Option<i32>,
pub exclusive_start_stream_arn: std::option::Option<std::string::String>,
}
impl ListStreamsInput {
pub fn table_name(&self) -> std::option::Option<&str> {
self.table_name.as_deref()
}
pub fn limit(&self) -> std::option::Option<i32> {
self.limit
}
pub fn exclusive_start_stream_arn(&self) -> std::option::Option<&str> {
self.exclusive_start_stream_arn.as_deref()
}
}
impl std::fmt::Debug for ListStreamsInput {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let mut formatter = f.debug_struct("ListStreamsInput");
formatter.field("table_name", &self.table_name);
formatter.field("limit", &self.limit);
formatter.field(
"exclusive_start_stream_arn",
&self.exclusive_start_stream_arn,
);
formatter.finish()
}
}
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct GetShardIteratorInput {
pub stream_arn: std::option::Option<std::string::String>,
pub shard_id: std::option::Option<std::string::String>,
pub shard_iterator_type: std::option::Option<crate::model::ShardIteratorType>,
pub sequence_number: std::option::Option<std::string::String>,
}
impl GetShardIteratorInput {
pub fn stream_arn(&self) -> std::option::Option<&str> {
self.stream_arn.as_deref()
}
pub fn shard_id(&self) -> std::option::Option<&str> {
self.shard_id.as_deref()
}
pub fn shard_iterator_type(&self) -> std::option::Option<&crate::model::ShardIteratorType> {
self.shard_iterator_type.as_ref()
}
pub fn sequence_number(&self) -> std::option::Option<&str> {
self.sequence_number.as_deref()
}
}
impl std::fmt::Debug for GetShardIteratorInput {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let mut formatter = f.debug_struct("GetShardIteratorInput");
formatter.field("stream_arn", &self.stream_arn);
formatter.field("shard_id", &self.shard_id);
formatter.field("shard_iterator_type", &self.shard_iterator_type);
formatter.field("sequence_number", &self.sequence_number);
formatter.finish()
}
}
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct GetRecordsInput {
pub shard_iterator: std::option::Option<std::string::String>,
pub limit: std::option::Option<i32>,
}
impl GetRecordsInput {
pub fn shard_iterator(&self) -> std::option::Option<&str> {
self.shard_iterator.as_deref()
}
pub fn limit(&self) -> std::option::Option<i32> {
self.limit
}
}
impl std::fmt::Debug for GetRecordsInput {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let mut formatter = f.debug_struct("GetRecordsInput");
formatter.field("shard_iterator", &self.shard_iterator);
formatter.field("limit", &self.limit);
formatter.finish()
}
}
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct DescribeStreamInput {
pub stream_arn: std::option::Option<std::string::String>,
pub limit: std::option::Option<i32>,
pub exclusive_start_shard_id: std::option::Option<std::string::String>,
}
impl DescribeStreamInput {
pub fn stream_arn(&self) -> std::option::Option<&str> {
self.stream_arn.as_deref()
}
pub fn limit(&self) -> std::option::Option<i32> {
self.limit
}
pub fn exclusive_start_shard_id(&self) -> std::option::Option<&str> {
self.exclusive_start_shard_id.as_deref()
}
}
impl std::fmt::Debug for DescribeStreamInput {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let mut formatter = f.debug_struct("DescribeStreamInput");
formatter.field("stream_arn", &self.stream_arn);
formatter.field("limit", &self.limit);
formatter.field("exclusive_start_shard_id", &self.exclusive_start_shard_id);
formatter.finish()
}
}