// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ListDirectoryBucketsInput {
    /// <p><code>ContinuationToken</code> indicates to Amazon S3 that the list is being continued on buckets in this account with a token. <code>ContinuationToken</code> is obfuscated and is not a real bucket name. You can use this <code>ContinuationToken</code> for the pagination of the list results.</p>
    pub continuation_token: ::std::option::Option<::std::string::String>,
    /// <p>Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.</p>
    pub max_directory_buckets: ::std::option::Option<i32>,
}
impl ListDirectoryBucketsInput {
    /// <p><code>ContinuationToken</code> indicates to Amazon S3 that the list is being continued on buckets in this account with a token. <code>ContinuationToken</code> is obfuscated and is not a real bucket name. You can use this <code>ContinuationToken</code> for the pagination of the list results.</p>
    pub fn continuation_token(&self) -> ::std::option::Option<&str> {
        self.continuation_token.as_deref()
    }
    /// <p>Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.</p>
    pub fn max_directory_buckets(&self) -> ::std::option::Option<i32> {
        self.max_directory_buckets
    }
}
impl ListDirectoryBucketsInput {
    /// Creates a new builder-style object to manufacture [`ListDirectoryBucketsInput`](crate::operation::list_directory_buckets::ListDirectoryBucketsInput).
    pub fn builder() -> crate::operation::list_directory_buckets::builders::ListDirectoryBucketsInputBuilder {
        crate::operation::list_directory_buckets::builders::ListDirectoryBucketsInputBuilder::default()
    }
}

/// A builder for [`ListDirectoryBucketsInput`](crate::operation::list_directory_buckets::ListDirectoryBucketsInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct ListDirectoryBucketsInputBuilder {
    pub(crate) continuation_token: ::std::option::Option<::std::string::String>,
    pub(crate) max_directory_buckets: ::std::option::Option<i32>,
}
impl ListDirectoryBucketsInputBuilder {
    /// <p><code>ContinuationToken</code> indicates to Amazon S3 that the list is being continued on buckets in this account with a token. <code>ContinuationToken</code> is obfuscated and is not a real bucket name. You can use this <code>ContinuationToken</code> for the pagination of the list results.</p>
    pub fn continuation_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.continuation_token = ::std::option::Option::Some(input.into());
        self
    }
    /// <p><code>ContinuationToken</code> indicates to Amazon S3 that the list is being continued on buckets in this account with a token. <code>ContinuationToken</code> is obfuscated and is not a real bucket name. You can use this <code>ContinuationToken</code> for the pagination of the list results.</p>
    pub fn set_continuation_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.continuation_token = input;
        self
    }
    /// <p><code>ContinuationToken</code> indicates to Amazon S3 that the list is being continued on buckets in this account with a token. <code>ContinuationToken</code> is obfuscated and is not a real bucket name. You can use this <code>ContinuationToken</code> for the pagination of the list results.</p>
    pub fn get_continuation_token(&self) -> &::std::option::Option<::std::string::String> {
        &self.continuation_token
    }
    /// <p>Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.</p>
    pub fn max_directory_buckets(mut self, input: i32) -> Self {
        self.max_directory_buckets = ::std::option::Option::Some(input);
        self
    }
    /// <p>Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.</p>
    pub fn set_max_directory_buckets(mut self, input: ::std::option::Option<i32>) -> Self {
        self.max_directory_buckets = input;
        self
    }
    /// <p>Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.</p>
    pub fn get_max_directory_buckets(&self) -> &::std::option::Option<i32> {
        &self.max_directory_buckets
    }
    /// Consumes the builder and constructs a [`ListDirectoryBucketsInput`](crate::operation::list_directory_buckets::ListDirectoryBucketsInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::list_directory_buckets::ListDirectoryBucketsInput, ::aws_smithy_types::error::operation::BuildError>
    {
        ::std::result::Result::Ok(crate::operation::list_directory_buckets::ListDirectoryBucketsInput {
            continuation_token: self.continuation_token,
            max_directory_buckets: self.max_directory_buckets,
        })
    }
}
