AWS SDK

AWS SDK

rev. f50aa8c7588f148ef5f1d01ff1bfa3ac2f1cbded

Files changed:

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_compression_type.rs

@@ -1,0 +114,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// When writing a match expression against `CompressionType`, it is important to ensure
    4         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
    5         -
/// feature that is supported by the service but has not been represented as an enum
    6         -
/// variant in a current version of SDK, your code should continue to work when you
    7         -
/// upgrade SDK to a future version in which the enum does include a variant for that
    8         -
/// feature.
    9         -
///
   10         -
/// Here is an example of how you can make a match expression forward-compatible:
   11         -
///
   12         -
/// ```text
   13         -
/// # let compressiontype = unimplemented!();
   14         -
/// match compressiontype {
   15         -
///     CompressionType::Bzip2 => { /* ... */ },
   16         -
///     CompressionType::Gzip => { /* ... */ },
   17         -
///     CompressionType::None => { /* ... */ },
   18         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
   19         -
///     _ => { /* ... */ },
   20         -
/// }
   21         -
/// ```
   22         -
/// The above code demonstrates that when `compressiontype` represents
   23         -
/// `NewFeature`, the execution path will lead to the second last match arm,
   24         -
/// even though the enum does not contain a variant `CompressionType::NewFeature`
   25         -
/// in the current version of SDK. The reason is that the variable `other`,
   26         -
/// created by the `@` operator, is bound to
   27         -
/// `CompressionType::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
   28         -
/// and calling `as_str` on it yields `"NewFeature"`.
   29         -
/// This match expression is forward-compatible when executed with a newer
   30         -
/// version of SDK where the variant `CompressionType::NewFeature` is defined.
   31         -
/// Specifically, when `compressiontype` represents `NewFeature`,
   32         -
/// the execution path will hit the second last match arm as before by virtue of
   33         -
/// calling `as_str` on `CompressionType::NewFeature` also yielding `"NewFeature"`.
   34         -
///
   35         -
/// Explicitly matching on the `Unknown` variant should
   36         -
/// be avoided for two reasons:
   37         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
   38         -
/// - It might inadvertently shadow other intended match arms.
   39         -
///
   40         -
#[allow(missing_docs)] // documentation missing in model
   41         -
#[non_exhaustive]
   42         -
#[derive(
   43         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
   44         -
)]
   45         -
pub enum CompressionType {
   46         -
    #[allow(missing_docs)] // documentation missing in model
   47         -
    Bzip2,
   48         -
    #[allow(missing_docs)] // documentation missing in model
   49         -
    Gzip,
   50         -
    #[allow(missing_docs)] // documentation missing in model
   51         -
    None,
   52         -
    /// `Unknown` contains new variants that have been added since this code was generated.
   53         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
   54         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
   55         -
}
   56         -
impl ::std::convert::From<&str> for CompressionType {
   57         -
    fn from(s: &str) -> Self {
   58         -
        match s {
   59         -
            "BZIP2" => CompressionType::Bzip2,
   60         -
            "GZIP" => CompressionType::Gzip,
   61         -
            "NONE" => CompressionType::None,
   62         -
            other => CompressionType::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
   63         -
        }
   64         -
    }
   65         -
}
   66         -
impl ::std::str::FromStr for CompressionType {
   67         -
    type Err = ::std::convert::Infallible;
   68         -
   69         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
   70         -
        ::std::result::Result::Ok(CompressionType::from(s))
   71         -
    }
   72         -
}
   73         -
impl CompressionType {
   74         -
    /// Returns the `&str` value of the enum member.
   75         -
    pub fn as_str(&self) -> &str {
   76         -
        match self {
   77         -
            CompressionType::Bzip2 => "BZIP2",
   78         -
            CompressionType::Gzip => "GZIP",
   79         -
            CompressionType::None => "NONE",
   80         -
            CompressionType::Unknown(value) => value.as_str(),
   81         -
        }
   82         -
    }
   83         -
    /// Returns all the `&str` representations of the enum members.
   84         -
    pub const fn values() -> &'static [&'static str] {
   85         -
        &["BZIP2", "GZIP", "NONE"]
   86         -
    }
   87         -
}
   88         -
impl ::std::convert::AsRef<str> for CompressionType {
   89         -
    fn as_ref(&self) -> &str {
   90         -
        self.as_str()
   91         -
    }
   92         -
}
   93         -
impl CompressionType {
   94         -
    /// Parses the enum value while disallowing unknown variants.
   95         -
    ///
   96         -
    /// Unknown variants will result in an error.
   97         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
   98         -
        match Self::from(value) {
   99         -
            #[allow(deprecated)]
  100         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
  101         -
            known => Ok(known),
  102         -
        }
  103         -
    }
  104         -
}
  105         -
impl ::std::fmt::Display for CompressionType {
  106         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  107         -
        match self {
  108         -
            CompressionType::Bzip2 => write!(f, "BZIP2"),
  109         -
            CompressionType::Gzip => write!(f, "GZIP"),
  110         -
            CompressionType::None => write!(f, "NONE"),
  111         -
            CompressionType::Unknown(value) => write!(f, "{value}"),
  112         -
        }
  113         -
    }
  114         -
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_continuation_event.rs

@@ -1,0 +23,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p></p>
    4         -
#[non_exhaustive]
    5         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6         -
pub struct ContinuationEvent {}
    7         -
impl ContinuationEvent {
    8         -
    /// Creates a new builder-style object to manufacture [`ContinuationEvent`](crate::types::ContinuationEvent).
    9         -
    pub fn builder() -> crate::types::builders::ContinuationEventBuilder {
   10         -
        crate::types::builders::ContinuationEventBuilder::default()
   11         -
    }
   12         -
}
   13         -
   14         -
/// A builder for [`ContinuationEvent`](crate::types::ContinuationEvent).
   15         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   16         -
#[non_exhaustive]
   17         -
pub struct ContinuationEventBuilder {}
   18         -
impl ContinuationEventBuilder {
   19         -
    /// Consumes the builder and constructs a [`ContinuationEvent`](crate::types::ContinuationEvent).
   20         -
    pub fn build(self) -> crate::types::ContinuationEvent {
   21         -
        crate::types::ContinuationEvent {}
   22         -
    }
   23         -
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_create_bucket_configuration.rs

@@ -1,1 +102,89 @@
   12     12   
    pub location_constraint: ::std::option::Option<crate::types::BucketLocationConstraint>,
   13     13   
    /// <p>Specifies the location where the bucket will be created.</p>
   14     14   
    /// <p><b>Directory buckets </b> - The location type is Availability Zone or Local Zone. To use the Local Zone location type, your account must be enabled for Local Zones. Otherwise, you get an HTTP <code>403 Forbidden</code> error with the error code <code>AccessDenied</code>. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/opt-in-directory-bucket-lz.html">Enable accounts for Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   15     15   
    /// <p>This functionality is only supported by directory buckets.</p>
   16     16   
    /// </note>
   17     17   
    pub location: ::std::option::Option<crate::types::LocationInfo>,
   18     18   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
   19     19   
    /// <p>This functionality is only supported by directory buckets.</p>
   20     20   
    /// </note>
   21     21   
    pub bucket: ::std::option::Option<crate::types::BucketInfo>,
   22         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
   23         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
   24         -
    /// </note>
   25         -
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
   26     22   
}
   27     23   
impl CreateBucketConfiguration {
   28     24   
    /// <p>Specifies the Region where the bucket will be created. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region.</p>
   29     25   
    /// <p>If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1) by default. Configurations using the value <code>EU</code> will create a bucket in <code>eu-west-1</code>.</p>
   30     26   
    /// <p>For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
   31     27   
    /// <p>This functionality is not supported for directory buckets.</p>
   32     28   
    /// </note>
   33     29   
    pub fn location_constraint(&self) -> ::std::option::Option<&crate::types::BucketLocationConstraint> {
   34     30   
        self.location_constraint.as_ref()
   35     31   
    }
   36     32   
    /// <p>Specifies the location where the bucket will be created.</p>
   37     33   
    /// <p><b>Directory buckets </b> - The location type is Availability Zone or Local Zone. To use the Local Zone location type, your account must be enabled for Local Zones. Otherwise, you get an HTTP <code>403 Forbidden</code> error with the error code <code>AccessDenied</code>. To learn more, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/opt-in-directory-bucket-lz.html">Enable accounts for Local Zones</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   38     34   
    /// <p>This functionality is only supported by directory buckets.</p>
   39     35   
    /// </note>
   40     36   
    pub fn location(&self) -> ::std::option::Option<&crate::types::LocationInfo> {
   41     37   
        self.location.as_ref()
   42     38   
    }
   43     39   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
   44     40   
    /// <p>This functionality is only supported by directory buckets.</p>
   45     41   
    /// </note>
   46     42   
    pub fn bucket(&self) -> ::std::option::Option<&crate::types::BucketInfo> {
   47     43   
        self.bucket.as_ref()
   48     44   
    }
   49         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
   50         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
   51         -
    /// </note>
   52         -
    ///
   53         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
   54         -
    pub fn tags(&self) -> &[crate::types::Tag] {
   55         -
        self.tags.as_deref().unwrap_or_default()
   56         -
    }
   57     45   
}
   58     46   
impl CreateBucketConfiguration {
   59     47   
    /// Creates a new builder-style object to manufacture [`CreateBucketConfiguration`](crate::types::CreateBucketConfiguration).
   60     48   
    pub fn builder() -> crate::types::builders::CreateBucketConfigurationBuilder {
   61     49   
        crate::types::builders::CreateBucketConfigurationBuilder::default()
   62     50   
    }
   63     51   
}
   64     52   
   65     53   
/// A builder for [`CreateBucketConfiguration`](crate::types::CreateBucketConfiguration).
   66     54   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   67     55   
#[non_exhaustive]
   68     56   
pub struct CreateBucketConfigurationBuilder {
   69     57   
    pub(crate) location_constraint: ::std::option::Option<crate::types::BucketLocationConstraint>,
   70     58   
    pub(crate) location: ::std::option::Option<crate::types::LocationInfo>,
   71     59   
    pub(crate) bucket: ::std::option::Option<crate::types::BucketInfo>,
   72         -
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
   73     60   
}
   74     61   
impl CreateBucketConfigurationBuilder {
   75     62   
    /// <p>Specifies the Region where the bucket will be created. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region.</p>
   76     63   
    /// <p>If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1) by default. Configurations using the value <code>EU</code> will create a bucket in <code>eu-west-1</code>.</p>
   77     64   
    /// <p>For a list of the valid values for all of the Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">Regions and Endpoints</a>.</p><note>
   78     65   
    /// <p>This functionality is not supported for directory buckets.</p>
   79     66   
    /// </note>
   80     67   
    pub fn location_constraint(mut self, input: crate::types::BucketLocationConstraint) -> Self {
   81     68   
        self.location_constraint = ::std::option::Option::Some(input);
   82     69   
        self
@@ -114,101 +179,139 @@
  134    121   
    pub fn set_bucket(mut self, input: ::std::option::Option<crate::types::BucketInfo>) -> Self {
  135    122   
        self.bucket = input;
  136    123   
        self
  137    124   
    }
  138    125   
    /// <p>Specifies the information about the bucket that will be created.</p><note>
  139    126   
    /// <p>This functionality is only supported by directory buckets.</p>
  140    127   
    /// </note>
  141    128   
    pub fn get_bucket(&self) -> &::std::option::Option<crate::types::BucketInfo> {
  142    129   
        &self.bucket
  143    130   
    }
  144         -
    /// Appends an item to `tags`.
  145         -
    ///
  146         -
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
  147         -
    ///
  148         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
  149         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
  150         -
    /// </note>
  151         -
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
  152         -
        let mut v = self.tags.unwrap_or_default();
  153         -
        v.push(input);
  154         -
        self.tags = ::std::option::Option::Some(v);
  155         -
        self
  156         -
    }
  157         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
  158         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
  159         -
    /// </note>
  160         -
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
  161         -
        self.tags = input;
  162         -
        self
  163         -
    }
  164         -
    /// <p>An array of tags that you can apply to the bucket that you're creating. Tags are key-value pairs of metadata used to categorize and organize your buckets, track costs, and control access.</p><note>
  165         -
    /// <p>This parameter is only supported for S3 directory buckets. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html">Using tags with directory buckets</a>.</p>
  166         -
    /// </note>
  167         -
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
  168         -
        &self.tags
  169         -
    }
  170    131   
    /// Consumes the builder and constructs a [`CreateBucketConfiguration`](crate::types::CreateBucketConfiguration).
  171    132   
    pub fn build(self) -> crate::types::CreateBucketConfiguration {
  172    133   
        crate::types::CreateBucketConfiguration {
  173    134   
            location_constraint: self.location_constraint,
  174    135   
            location: self.location,
  175    136   
            bucket: self.bucket,
  176         -
            tags: self.tags,
  177    137   
        }
  178    138   
    }
  179    139   
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_input.rs

@@ -1,0 +242,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Describes how an uncompressed comma-separated values (CSV)-formatted input object is formatted.</p>
    4         -
#[non_exhaustive]
    5         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6         -
pub struct CsvInput {
    7         -
    /// <p>Describes the first line of input. Valid values are:</p>
    8         -
    /// <ul>
    9         -
    /// <li>
   10         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
   11         -
    /// <li>
   12         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
   13         -
    /// <li>
   14         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
   15         -
    /// </ul>
   16         -
    pub file_header_info: ::std::option::Option<crate::types::FileHeaderInfo>,
   17         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
   18         -
    /// <p>Default: <code>#</code></p>
   19         -
    pub comments: ::std::option::Option<::std::string::String>,
   20         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
   21         -
    pub quote_escape_character: ::std::option::Option<::std::string::String>,
   22         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
   23         -
    pub record_delimiter: ::std::option::Option<::std::string::String>,
   24         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
   25         -
    pub field_delimiter: ::std::option::Option<::std::string::String>,
   26         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
   27         -
    /// <p>Type: String</p>
   28         -
    /// <p>Default: <code>"</code></p>
   29         -
    /// <p>Ancestors: <code>CSV</code></p>
   30         -
    pub quote_character: ::std::option::Option<::std::string::String>,
   31         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
   32         -
    pub allow_quoted_record_delimiter: ::std::option::Option<bool>,
   33         -
}
   34         -
impl CsvInput {
   35         -
    /// <p>Describes the first line of input. Valid values are:</p>
   36         -
    /// <ul>
   37         -
    /// <li>
   38         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
   39         -
    /// <li>
   40         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
   41         -
    /// <li>
   42         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
   43         -
    /// </ul>
   44         -
    pub fn file_header_info(&self) -> ::std::option::Option<&crate::types::FileHeaderInfo> {
   45         -
        self.file_header_info.as_ref()
   46         -
    }
   47         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
   48         -
    /// <p>Default: <code>#</code></p>
   49         -
    pub fn comments(&self) -> ::std::option::Option<&str> {
   50         -
        self.comments.as_deref()
   51         -
    }
   52         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
   53         -
    pub fn quote_escape_character(&self) -> ::std::option::Option<&str> {
   54         -
        self.quote_escape_character.as_deref()
   55         -
    }
   56         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
   57         -
    pub fn record_delimiter(&self) -> ::std::option::Option<&str> {
   58         -
        self.record_delimiter.as_deref()
   59         -
    }
   60         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
   61         -
    pub fn field_delimiter(&self) -> ::std::option::Option<&str> {
   62         -
        self.field_delimiter.as_deref()
   63         -
    }
   64         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
   65         -
    /// <p>Type: String</p>
   66         -
    /// <p>Default: <code>"</code></p>
   67         -
    /// <p>Ancestors: <code>CSV</code></p>
   68         -
    pub fn quote_character(&self) -> ::std::option::Option<&str> {
   69         -
        self.quote_character.as_deref()
   70         -
    }
   71         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
   72         -
    pub fn allow_quoted_record_delimiter(&self) -> ::std::option::Option<bool> {
   73         -
        self.allow_quoted_record_delimiter
   74         -
    }
   75         -
}
   76         -
impl CsvInput {
   77         -
    /// Creates a new builder-style object to manufacture [`CsvInput`](crate::types::CsvInput).
   78         -
    pub fn builder() -> crate::types::builders::CsvInputBuilder {
   79         -
        crate::types::builders::CsvInputBuilder::default()
   80         -
    }
   81         -
}
   82         -
   83         -
/// A builder for [`CsvInput`](crate::types::CsvInput).
   84         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   85         -
#[non_exhaustive]
   86         -
pub struct CsvInputBuilder {
   87         -
    pub(crate) file_header_info: ::std::option::Option<crate::types::FileHeaderInfo>,
   88         -
    pub(crate) comments: ::std::option::Option<::std::string::String>,
   89         -
    pub(crate) quote_escape_character: ::std::option::Option<::std::string::String>,
   90         -
    pub(crate) record_delimiter: ::std::option::Option<::std::string::String>,
   91         -
    pub(crate) field_delimiter: ::std::option::Option<::std::string::String>,
   92         -
    pub(crate) quote_character: ::std::option::Option<::std::string::String>,
   93         -
    pub(crate) allow_quoted_record_delimiter: ::std::option::Option<bool>,
   94         -
}
   95         -
impl CsvInputBuilder {
   96         -
    /// <p>Describes the first line of input. Valid values are:</p>
   97         -
    /// <ul>
   98         -
    /// <li>
   99         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
  100         -
    /// <li>
  101         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
  102         -
    /// <li>
  103         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
  104         -
    /// </ul>
  105         -
    pub fn file_header_info(mut self, input: crate::types::FileHeaderInfo) -> Self {
  106         -
        self.file_header_info = ::std::option::Option::Some(input);
  107         -
        self
  108         -
    }
  109         -
    /// <p>Describes the first line of input. Valid values are:</p>
  110         -
    /// <ul>
  111         -
    /// <li>
  112         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
  113         -
    /// <li>
  114         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
  115         -
    /// <li>
  116         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
  117         -
    /// </ul>
  118         -
    pub fn set_file_header_info(mut self, input: ::std::option::Option<crate::types::FileHeaderInfo>) -> Self {
  119         -
        self.file_header_info = input;
  120         -
        self
  121         -
    }
  122         -
    /// <p>Describes the first line of input. Valid values are:</p>
  123         -
    /// <ul>
  124         -
    /// <li>
  125         -
    /// <p><code>NONE</code>: First line is not a header.</p></li>
  126         -
    /// <li>
  127         -
    /// <p><code>IGNORE</code>: First line is a header, but you can't use the header values to indicate the column in an expression. You can use column position (such as _1, _2, …) to indicate the column (<code>SELECT s._1 FROM OBJECT s</code>).</p></li>
  128         -
    /// <li>
  129         -
    /// <p><code>Use</code>: First line is a header, and you can use the header value to identify a column in an expression (<code>SELECT "name" FROM OBJECT</code>).</p></li>
  130         -
    /// </ul>
  131         -
    pub fn get_file_header_info(&self) -> &::std::option::Option<crate::types::FileHeaderInfo> {
  132         -
        &self.file_header_info
  133         -
    }
  134         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
  135         -
    /// <p>Default: <code>#</code></p>
  136         -
    pub fn comments(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  137         -
        self.comments = ::std::option::Option::Some(input.into());
  138         -
        self
  139         -
    }
  140         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
  141         -
    /// <p>Default: <code>#</code></p>
  142         -
    pub fn set_comments(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  143         -
        self.comments = input;
  144         -
        self
  145         -
    }
  146         -
    /// <p>A single character used to indicate that a row should be ignored when the character is present at the start of that row. You can specify any character to indicate a comment line. The default character is <code>#</code>.</p>
  147         -
    /// <p>Default: <code>#</code></p>
  148         -
    pub fn get_comments(&self) -> &::std::option::Option<::std::string::String> {
  149         -
        &self.comments
  150         -
    }
  151         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
  152         -
    pub fn quote_escape_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  153         -
        self.quote_escape_character = ::std::option::Option::Some(input.into());
  154         -
        self
  155         -
    }
  156         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
  157         -
    pub fn set_quote_escape_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  158         -
        self.quote_escape_character = input;
  159         -
        self
  160         -
    }
  161         -
    /// <p>A single character used for escaping the quotation mark character inside an already escaped value. For example, the value <code>""" a , b """</code> is parsed as <code>" a , b "</code>.</p>
  162         -
    pub fn get_quote_escape_character(&self) -> &::std::option::Option<::std::string::String> {
  163         -
        &self.quote_escape_character
  164         -
    }
  165         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
  166         -
    pub fn record_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  167         -
        self.record_delimiter = ::std::option::Option::Some(input.into());
  168         -
        self
  169         -
    }
  170         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
  171         -
    pub fn set_record_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  172         -
        self.record_delimiter = input;
  173         -
        self
  174         -
    }
  175         -
    /// <p>A single character used to separate individual records in the input. Instead of the default value, you can specify an arbitrary delimiter.</p>
  176         -
    pub fn get_record_delimiter(&self) -> &::std::option::Option<::std::string::String> {
  177         -
        &self.record_delimiter
  178         -
    }
  179         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
  180         -
    pub fn field_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  181         -
        self.field_delimiter = ::std::option::Option::Some(input.into());
  182         -
        self
  183         -
    }
  184         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
  185         -
    pub fn set_field_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  186         -
        self.field_delimiter = input;
  187         -
        self
  188         -
    }
  189         -
    /// <p>A single character used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
  190         -
    pub fn get_field_delimiter(&self) -> &::std::option::Option<::std::string::String> {
  191         -
        &self.field_delimiter
  192         -
    }
  193         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
  194         -
    /// <p>Type: String</p>
  195         -
    /// <p>Default: <code>"</code></p>
  196         -
    /// <p>Ancestors: <code>CSV</code></p>
  197         -
    pub fn quote_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  198         -
        self.quote_character = ::std::option::Option::Some(input.into());
  199         -
        self
  200         -
    }
  201         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
  202         -
    /// <p>Type: String</p>
  203         -
    /// <p>Default: <code>"</code></p>
  204         -
    /// <p>Ancestors: <code>CSV</code></p>
  205         -
    pub fn set_quote_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  206         -
        self.quote_character = input;
  207         -
        self
  208         -
    }
  209         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
  210         -
    /// <p>Type: String</p>
  211         -
    /// <p>Default: <code>"</code></p>
  212         -
    /// <p>Ancestors: <code>CSV</code></p>
  213         -
    pub fn get_quote_character(&self) -> &::std::option::Option<::std::string::String> {
  214         -
        &self.quote_character
  215         -
    }
  216         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
  217         -
    pub fn allow_quoted_record_delimiter(mut self, input: bool) -> Self {
  218         -
        self.allow_quoted_record_delimiter = ::std::option::Option::Some(input);
  219         -
        self
  220         -
    }
  221         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
  222         -
    pub fn set_allow_quoted_record_delimiter(mut self, input: ::std::option::Option<bool>) -> Self {
  223         -
        self.allow_quoted_record_delimiter = input;
  224         -
        self
  225         -
    }
  226         -
    /// <p>Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.</p>
  227         -
    pub fn get_allow_quoted_record_delimiter(&self) -> &::std::option::Option<bool> {
  228         -
        &self.allow_quoted_record_delimiter
  229         -
    }
  230         -
    /// Consumes the builder and constructs a [`CsvInput`](crate::types::CsvInput).
  231         -
    pub fn build(self) -> crate::types::CsvInput {
  232         -
        crate::types::CsvInput {
  233         -
            file_header_info: self.file_header_info,
  234         -
            comments: self.comments,
  235         -
            quote_escape_character: self.quote_escape_character,
  236         -
            record_delimiter: self.record_delimiter,
  237         -
            field_delimiter: self.field_delimiter,
  238         -
            quote_character: self.quote_character,
  239         -
            allow_quoted_record_delimiter: self.allow_quoted_record_delimiter,
  240         -
        }
  241         -
    }
  242         -
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_csv_output.rs

@@ -1,0 +168,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Describes how uncompressed comma-separated values (CSV)-formatted results are formatted.</p>
    4         -
#[non_exhaustive]
    5         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6         -
pub struct CsvOutput {
    7         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
    8         -
    /// <ul>
    9         -
    /// <li>
   10         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
   11         -
    /// <li>
   12         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
   13         -
    /// </ul>
   14         -
    pub quote_fields: ::std::option::Option<crate::types::QuoteFields>,
   15         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
   16         -
    pub quote_escape_character: ::std::option::Option<::std::string::String>,
   17         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
   18         -
    pub record_delimiter: ::std::option::Option<::std::string::String>,
   19         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
   20         -
    pub field_delimiter: ::std::option::Option<::std::string::String>,
   21         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
   22         -
    pub quote_character: ::std::option::Option<::std::string::String>,
   23         -
}
   24         -
impl CsvOutput {
   25         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
   26         -
    /// <ul>
   27         -
    /// <li>
   28         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
   29         -
    /// <li>
   30         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
   31         -
    /// </ul>
   32         -
    pub fn quote_fields(&self) -> ::std::option::Option<&crate::types::QuoteFields> {
   33         -
        self.quote_fields.as_ref()
   34         -
    }
   35         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
   36         -
    pub fn quote_escape_character(&self) -> ::std::option::Option<&str> {
   37         -
        self.quote_escape_character.as_deref()
   38         -
    }
   39         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
   40         -
    pub fn record_delimiter(&self) -> ::std::option::Option<&str> {
   41         -
        self.record_delimiter.as_deref()
   42         -
    }
   43         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
   44         -
    pub fn field_delimiter(&self) -> ::std::option::Option<&str> {
   45         -
        self.field_delimiter.as_deref()
   46         -
    }
   47         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
   48         -
    pub fn quote_character(&self) -> ::std::option::Option<&str> {
   49         -
        self.quote_character.as_deref()
   50         -
    }
   51         -
}
   52         -
impl CsvOutput {
   53         -
    /// Creates a new builder-style object to manufacture [`CsvOutput`](crate::types::CsvOutput).
   54         -
    pub fn builder() -> crate::types::builders::CsvOutputBuilder {
   55         -
        crate::types::builders::CsvOutputBuilder::default()
   56         -
    }
   57         -
}
   58         -
   59         -
/// A builder for [`CsvOutput`](crate::types::CsvOutput).
   60         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   61         -
#[non_exhaustive]
   62         -
pub struct CsvOutputBuilder {
   63         -
    pub(crate) quote_fields: ::std::option::Option<crate::types::QuoteFields>,
   64         -
    pub(crate) quote_escape_character: ::std::option::Option<::std::string::String>,
   65         -
    pub(crate) record_delimiter: ::std::option::Option<::std::string::String>,
   66         -
    pub(crate) field_delimiter: ::std::option::Option<::std::string::String>,
   67         -
    pub(crate) quote_character: ::std::option::Option<::std::string::String>,
   68         -
}
   69         -
impl CsvOutputBuilder {
   70         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
   71         -
    /// <ul>
   72         -
    /// <li>
   73         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
   74         -
    /// <li>
   75         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
   76         -
    /// </ul>
   77         -
    pub fn quote_fields(mut self, input: crate::types::QuoteFields) -> Self {
   78         -
        self.quote_fields = ::std::option::Option::Some(input);
   79         -
        self
   80         -
    }
   81         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
   82         -
    /// <ul>
   83         -
    /// <li>
   84         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
   85         -
    /// <li>
   86         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
   87         -
    /// </ul>
   88         -
    pub fn set_quote_fields(mut self, input: ::std::option::Option<crate::types::QuoteFields>) -> Self {
   89         -
        self.quote_fields = input;
   90         -
        self
   91         -
    }
   92         -
    /// <p>Indicates whether to use quotation marks around output fields.</p>
   93         -
    /// <ul>
   94         -
    /// <li>
   95         -
    /// <p><code>ALWAYS</code>: Always use quotation marks for output fields.</p></li>
   96         -
    /// <li>
   97         -
    /// <p><code>ASNEEDED</code>: Use quotation marks for output fields when needed.</p></li>
   98         -
    /// </ul>
   99         -
    pub fn get_quote_fields(&self) -> &::std::option::Option<crate::types::QuoteFields> {
  100         -
        &self.quote_fields
  101         -
    }
  102         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
  103         -
    pub fn quote_escape_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  104         -
        self.quote_escape_character = ::std::option::Option::Some(input.into());
  105         -
        self
  106         -
    }
  107         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
  108         -
    pub fn set_quote_escape_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  109         -
        self.quote_escape_character = input;
  110         -
        self
  111         -
    }
  112         -
    /// <p>The single character used for escaping the quote character inside an already escaped value.</p>
  113         -
    pub fn get_quote_escape_character(&self) -> &::std::option::Option<::std::string::String> {
  114         -
        &self.quote_escape_character
  115         -
    }
  116         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
  117         -
    pub fn record_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  118         -
        self.record_delimiter = ::std::option::Option::Some(input.into());
  119         -
        self
  120         -
    }
  121         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
  122         -
    pub fn set_record_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  123         -
        self.record_delimiter = input;
  124         -
        self
  125         -
    }
  126         -
    /// <p>A single character used to separate individual records in the output. Instead of the default value, you can specify an arbitrary delimiter.</p>
  127         -
    pub fn get_record_delimiter(&self) -> &::std::option::Option<::std::string::String> {
  128         -
        &self.record_delimiter
  129         -
    }
  130         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
  131         -
    pub fn field_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  132         -
        self.field_delimiter = ::std::option::Option::Some(input.into());
  133         -
        self
  134         -
    }
  135         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
  136         -
    pub fn set_field_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  137         -
        self.field_delimiter = input;
  138         -
        self
  139         -
    }
  140         -
    /// <p>The value used to separate individual fields in a record. You can specify an arbitrary delimiter.</p>
  141         -
    pub fn get_field_delimiter(&self) -> &::std::option::Option<::std::string::String> {
  142         -
        &self.field_delimiter
  143         -
    }
  144         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
  145         -
    pub fn quote_character(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  146         -
        self.quote_character = ::std::option::Option::Some(input.into());
  147         -
        self
  148         -
    }
  149         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
  150         -
    pub fn set_quote_character(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  151         -
        self.quote_character = input;
  152         -
        self
  153         -
    }
  154         -
    /// <p>A single character used for escaping when the field delimiter is part of the value. For example, if the value is <code>a, b</code>, Amazon S3 wraps this field value in quotation marks, as follows: <code>" a , b "</code>.</p>
  155         -
    pub fn get_quote_character(&self) -> &::std::option::Option<::std::string::String> {
  156         -
        &self.quote_character
  157         -
    }
  158         -
    /// Consumes the builder and constructs a [`CsvOutput`](crate::types::CsvOutput).
  159         -
    pub fn build(self) -> crate::types::CsvOutput {
  160         -
        crate::types::CsvOutput {
  161         -
            quote_fields: self.quote_fields,
  162         -
            quote_escape_character: self.quote_escape_character,
  163         -
            record_delimiter: self.record_delimiter,
  164         -
            field_delimiter: self.field_delimiter,
  165         -
            quote_character: self.quote_character,
  166         -
        }
  167         -
    }
  168         -
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination.rs

@@ -1,1 +66,64 @@
    3      3   
/// <p>Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC).</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub struct Destination {
    7      7   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
    8      8   
    pub bucket: ::std::string::String,
    9      9   
    /// <p>Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the <code>AccessControlTranslation</code> property, this is the account ID of the destination bucket owner. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html">Replication Additional Configuration: Changing the Replica Owner</a> in the <i>Amazon S3 User Guide</i>.</p>
   10     10   
    pub account: ::std::option::Option<::std::string::String>,
   11     11   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
   12     12   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
   13         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
   14     13   
    pub storage_class: ::std::option::Option<crate::types::StorageClass>,
   15     14   
    /// <p>Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.</p>
   16     15   
    pub access_control_translation: ::std::option::Option<crate::types::AccessControlTranslation>,
   17     16   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
   18     17   
    pub encryption_configuration: ::std::option::Option<crate::types::EncryptionConfiguration>,
   19     18   
    /// <p>A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a <code>Metrics</code> block.</p>
   20     19   
    pub replication_time: ::std::option::Option<crate::types::ReplicationTime>,
   21     20   
    /// <p>A container specifying replication metrics-related settings enabling replication metrics and events.</p>
   22     21   
    pub metrics: ::std::option::Option<crate::types::Metrics>,
   23     22   
}
   24     23   
impl Destination {
   25     24   
    /// <p>The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.</p>
   26     25   
    pub fn bucket(&self) -> &str {
   27     26   
        use std::ops::Deref;
   28     27   
        self.bucket.deref()
   29     28   
    }
   30     29   
    /// <p>Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the <code>AccessControlTranslation</code> property, this is the account ID of the destination bucket owner. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html">Replication Additional Configuration: Changing the Replica Owner</a> in the <i>Amazon S3 User Guide</i>.</p>
   31     30   
    pub fn account(&self) -> ::std::option::Option<&str> {
   32     31   
        self.account.as_deref()
   33     32   
    }
   34     33   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
   35     34   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
   36         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
   37     35   
    pub fn storage_class(&self) -> ::std::option::Option<&crate::types::StorageClass> {
   38     36   
        self.storage_class.as_ref()
   39     37   
    }
   40     38   
    /// <p>Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.</p>
   41     39   
    pub fn access_control_translation(&self) -> ::std::option::Option<&crate::types::AccessControlTranslation> {
   42     40   
        self.access_control_translation.as_ref()
   43     41   
    }
   44     42   
    /// <p>A container that provides information about encryption. If <code>SourceSelectionCriteria</code> is specified, you must specify this element.</p>
   45     43   
    pub fn encryption_configuration(&self) -> ::std::option::Option<&crate::types::EncryptionConfiguration> {
   46     44   
        self.encryption_configuration.as_ref()
@@ -78,76 +152,147 @@
   98     96   
    pub fn set_account(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   99     97   
        self.account = input;
  100     98   
        self
  101     99   
    }
  102    100   
    /// <p>Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the <code>AccessControlTranslation</code> property, this is the account ID of the destination bucket owner. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html">Replication Additional Configuration: Changing the Replica Owner</a> in the <i>Amazon S3 User Guide</i>.</p>
  103    101   
    pub fn get_account(&self) -> &::std::option::Option<::std::string::String> {
  104    102   
        &self.account
  105    103   
    }
  106    104   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
  107    105   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
  108         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
  109    106   
    pub fn storage_class(mut self, input: crate::types::StorageClass) -> Self {
  110    107   
        self.storage_class = ::std::option::Option::Some(input);
  111    108   
        self
  112    109   
    }
  113    110   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
  114    111   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
  115         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
  116    112   
    pub fn set_storage_class(mut self, input: ::std::option::Option<crate::types::StorageClass>) -> Self {
  117    113   
        self.storage_class = input;
  118    114   
        self
  119    115   
    }
  120    116   
    /// <p>The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.</p>
  121    117   
    /// <p>For valid values, see the <code>StorageClass</code> element of the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html">PUT Bucket replication</a> action in the <i>Amazon S3 API Reference</i>.</p>
  122         -
    /// <p><code>FSX_OPENZFS</code> is not an accepted value when replicating objects.</p>
  123    118   
    pub fn get_storage_class(&self) -> &::std::option::Option<crate::types::StorageClass> {
  124    119   
        &self.storage_class
  125    120   
    }
  126    121   
    /// <p>Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.</p>
  127    122   
    pub fn access_control_translation(mut self, input: crate::types::AccessControlTranslation) -> Self {
  128    123   
        self.access_control_translation = ::std::option::Option::Some(input);
  129    124   
        self
  130    125   
    }
  131    126   
    /// <p>Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.</p>
  132    127   
    pub fn set_access_control_translation(mut self, input: ::std::option::Option<crate::types::AccessControlTranslation>) -> Self {

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_destination_result.rs

@@ -1,0 +94,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>The destination information for the S3 Metadata configuration.</p>
    4         -
#[non_exhaustive]
    5         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6         -
pub struct DestinationResult {
    7         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
    8         -
    pub table_bucket_type: ::std::option::Option<crate::types::S3TablesBucketType>,
    9         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
   10         -
    pub table_bucket_arn: ::std::option::Option<::std::string::String>,
   11         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
   12         -
    pub table_namespace: ::std::option::Option<::std::string::String>,
   13         -
}
   14         -
impl DestinationResult {
   15         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
   16         -
    pub fn table_bucket_type(&self) -> ::std::option::Option<&crate::types::S3TablesBucketType> {
   17         -
        self.table_bucket_type.as_ref()
   18         -
    }
   19         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
   20         -
    pub fn table_bucket_arn(&self) -> ::std::option::Option<&str> {
   21         -
        self.table_bucket_arn.as_deref()
   22         -
    }
   23         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
   24         -
    pub fn table_namespace(&self) -> ::std::option::Option<&str> {
   25         -
        self.table_namespace.as_deref()
   26         -
    }
   27         -
}
   28         -
impl DestinationResult {
   29         -
    /// Creates a new builder-style object to manufacture [`DestinationResult`](crate::types::DestinationResult).
   30         -
    pub fn builder() -> crate::types::builders::DestinationResultBuilder {
   31         -
        crate::types::builders::DestinationResultBuilder::default()
   32         -
    }
   33         -
}
   34         -
   35         -
/// A builder for [`DestinationResult`](crate::types::DestinationResult).
   36         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   37         -
#[non_exhaustive]
   38         -
pub struct DestinationResultBuilder {
   39         -
    pub(crate) table_bucket_type: ::std::option::Option<crate::types::S3TablesBucketType>,
   40         -
    pub(crate) table_bucket_arn: ::std::option::Option<::std::string::String>,
   41         -
    pub(crate) table_namespace: ::std::option::Option<::std::string::String>,
   42         -
}
   43         -
impl DestinationResultBuilder {
   44         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
   45         -
    pub fn table_bucket_type(mut self, input: crate::types::S3TablesBucketType) -> Self {
   46         -
        self.table_bucket_type = ::std::option::Option::Some(input);
   47         -
        self
   48         -
    }
   49         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
   50         -
    pub fn set_table_bucket_type(mut self, input: ::std::option::Option<crate::types::S3TablesBucketType>) -> Self {
   51         -
        self.table_bucket_type = input;
   52         -
        self
   53         -
    }
   54         -
    /// <p>The type of the table bucket where the metadata configuration is stored. The <code>aws</code> value indicates an Amazon Web Services managed table bucket, and the <code>customer</code> value indicates a customer-managed table bucket. V2 metadata configurations are stored in Amazon Web Services managed table buckets, and V1 metadata configurations are stored in customer-managed table buckets.</p>
   55         -
    pub fn get_table_bucket_type(&self) -> &::std::option::Option<crate::types::S3TablesBucketType> {
   56         -
        &self.table_bucket_type
   57         -
    }
   58         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
   59         -
    pub fn table_bucket_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   60         -
        self.table_bucket_arn = ::std::option::Option::Some(input.into());
   61         -
        self
   62         -
    }
   63         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
   64         -
    pub fn set_table_bucket_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   65         -
        self.table_bucket_arn = input;
   66         -
        self
   67         -
    }
   68         -
    /// <p>The Amazon Resource Name (ARN) of the table bucket where the metadata configuration is stored.</p>
   69         -
    pub fn get_table_bucket_arn(&self) -> &::std::option::Option<::std::string::String> {
   70         -
        &self.table_bucket_arn
   71         -
    }
   72         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
   73         -
    pub fn table_namespace(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   74         -
        self.table_namespace = ::std::option::Option::Some(input.into());
   75         -
        self
   76         -
    }
   77         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
   78         -
    pub fn set_table_namespace(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   79         -
        self.table_namespace = input;
   80         -
        self
   81         -
    }
   82         -
    /// <p>The namespace in the table bucket where the metadata tables for a metadata configuration are stored.</p>
   83         -
    pub fn get_table_namespace(&self) -> &::std::option::Option<::std::string::String> {
   84         -
        &self.table_namespace
   85         -
    }
   86         -
    /// Consumes the builder and constructs a [`DestinationResult`](crate::types::DestinationResult).
   87         -
    pub fn build(self) -> crate::types::DestinationResult {
   88         -
        crate::types::DestinationResult {
   89         -
            table_bucket_type: self.table_bucket_type,
   90         -
            table_bucket_arn: self.table_bucket_arn,
   91         -
            table_namespace: self.table_namespace,
   92         -
        }
   93         -
    }
   94         -
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_encoding_type.rs

@@ -8,8 +77,79 @@
   28     28   
/// version of SDK where the variant `EncodingType::NewFeature` is defined.
   29     29   
/// Specifically, when `encodingtype` represents `NewFeature`,
   30     30   
/// the execution path will hit the second last match arm as before by virtue of
   31     31   
/// calling `as_str` on `EncodingType::NewFeature` also yielding `"NewFeature"`.
   32     32   
///
   33     33   
/// Explicitly matching on the `Unknown` variant should
   34     34   
/// be avoided for two reasons:
   35     35   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
   36     36   
/// - It might inadvertently shadow other intended match arms.
   37     37   
///
   38         -
/// <p>Encoding type used by Amazon S3 to encode the <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html">object keys</a> in the response. Responses are
   39         -
/// encoded only in UTF-8. An object key can contain any Unicode character. However, the XML 1.0 parser
   40         -
/// can't parse certain characters, such as characters with an ASCII value from 0 to 10. For characters that
   41         -
/// aren't supported in XML 1.0, you can add this parameter to request that Amazon S3 encode the keys in the
   42         -
/// response. For more information about characters to avoid in object key names, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines">Object key
   43         -
/// naming guidelines</a>.</p>
          38  +
/// <p>Encoding type used by Amazon S3 to encode the <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html">object keys</a> in the response.
          39  +
/// Responses are encoded only in UTF-8. An object key can contain any Unicode character.
          40  +
/// However, the XML 1.0 parser can't parse certain characters, such as characters with an
          41  +
/// ASCII value from 0 to 10. For characters that aren't supported in XML 1.0, you can add this
          42  +
/// parameter to request that Amazon S3 encode the keys in the response. For more information about
          43  +
/// characters to avoid in object key names, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines">Object key naming
          44  +
/// guidelines</a>.</p>
   44     45   
/// <note>
   45         -
/// <p>When using the URL encoding type, non-ASCII characters that are used in an object's key name will
   46         -
/// be percent-encoded according to UTF-8 code values. For example, the object
   47         -
/// <code>test_file(3).png</code> will appear as <code>test_file%283%29.png</code>.</p>
          46  +
/// <p>When using the URL encoding type, non-ASCII characters that are used in an object's
          47  +
/// key name will be percent-encoded according to UTF-8 code values. For example, the object
          48  +
/// <code>test_file(3).png</code> will appear as
          49  +
/// <code>test_file%283%29.png</code>.</p>
   48     50   
/// </note>
   49     51   
#[non_exhaustive]
   50     52   
#[derive(
   51     53   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
   52     54   
)]
   53     55   
pub enum EncodingType {
   54     56   
    #[allow(missing_docs)] // documentation missing in model
   55     57   
    Url,
   56     58   
    /// `Unknown` contains new variants that have been added since this code was generated.
   57     59   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_end_event.rs

@@ -1,0 +23,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>A message that indicates the request is complete and no more messages will be sent. You should not assume that the request is complete until the client receives an <code>EndEvent</code>.</p>
    4         -
#[non_exhaustive]
    5         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6         -
pub struct EndEvent {}
    7         -
impl EndEvent {
    8         -
    /// Creates a new builder-style object to manufacture [`EndEvent`](crate::types::EndEvent).
    9         -
    pub fn builder() -> crate::types::builders::EndEventBuilder {
   10         -
        crate::types::builders::EndEventBuilder::default()
   11         -
    }
   12         -
}
   13         -
   14         -
/// A builder for [`EndEvent`](crate::types::EndEvent).
   15         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   16         -
#[non_exhaustive]
   17         -
pub struct EndEventBuilder {}
   18         -
impl EndEventBuilder {
   19         -
    /// Consumes the builder and constructs a [`EndEvent`](crate::types::EndEvent).
   20         -
    pub fn build(self) -> crate::types::EndEvent {
   21         -
        crate::types::EndEvent {}
   22         -
    }
   23         -
}

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_error_details.rs

@@ -1,1 +404,212 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// <p>If an S3 Metadata V1 <code>CreateBucketMetadataTableConfiguration</code> or V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p><note>
    4         -
/// <p>If you created your S3 Metadata configuration before July 15, 2025, we recommend that you delete and re-create your configuration by using <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html">CreateBucketMetadataConfiguration</a> so that you can expire journal table records and create a live inventory table.</p>
    5         -
/// </note>
           3  +
/// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code and error message.</p>
    6      4   
#[non_exhaustive]
    7      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    8      6   
pub struct ErrorDetails {
    9         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
           7  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
   10      8   
    /// <ul>
   11      9   
    /// <li>
   12     10   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   13     11   
    /// <li>
   14     12   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   15     13   
    /// <li>
   16     14   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   17     15   
    /// <li>
   18     16   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   19     17   
    /// <li>
   20     18   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   21     19   
    /// <li>
   22     20   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   23     21   
    /// </ul>
   24         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
   25         -
    /// <ul>
   26         -
    /// <li>
   27         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   28         -
    /// <li>
   29         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   30         -
    /// <li>
   31         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   32         -
    /// <li>
   33         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   34         -
    /// <li>
   35         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   36         -
    /// <li>
   37         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   38         -
    /// <li>
   39         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
   40         -
    /// <li>
   41         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
   42         -
    /// </ul>
   43     22   
    pub error_code: ::std::option::Option<::std::string::String>,
   44         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
          23  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
   45     24   
    /// <ul>
   46     25   
    /// <li>
   47     26   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   48     27   
    /// <li>
   49     28   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   50     29   
    /// <li>
   51     30   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   52     31   
    /// <li>
   53     32   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   54     33   
    /// <li>
   55     34   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   56     35   
    /// <li>
   57     36   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   58     37   
    /// </ul>
   59         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
   60         -
    /// <ul>
   61         -
    /// <li>
   62         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   63         -
    /// <li>
   64         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   65         -
    /// <li>
   66         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   67         -
    /// <li>
   68         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   69         -
    /// <li>
   70         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   71         -
    /// <li>
   72         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   73         -
    /// <li>
   74         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
   75         -
    /// <li>
   76         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
   77         -
    /// </ul>
   78     38   
    pub error_message: ::std::option::Option<::std::string::String>,
   79     39   
}
   80     40   
impl ErrorDetails {
   81         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
          41  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
   82     42   
    /// <ul>
   83     43   
    /// <li>
   84     44   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   85     45   
    /// <li>
   86     46   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   87     47   
    /// <li>
   88     48   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   89     49   
    /// <li>
   90     50   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   91     51   
    /// <li>
   92     52   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   93     53   
    /// <li>
   94     54   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
   95     55   
    /// </ul>
   96         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
   97         -
    /// <ul>
   98         -
    /// <li>
   99         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  100         -
    /// <li>
  101         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  102         -
    /// <li>
  103         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  104         -
    /// <li>
  105         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  106         -
    /// <li>
  107         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  108         -
    /// <li>
  109         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  110         -
    /// <li>
  111         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
  112         -
    /// <li>
  113         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
  114         -
    /// </ul>
  115     56   
    pub fn error_code(&self) -> ::std::option::Option<&str> {
  116     57   
        self.error_code.as_deref()
  117     58   
    }
  118         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
          59  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
  119     60   
    /// <ul>
  120     61   
    /// <li>
  121     62   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  122     63   
    /// <li>
  123     64   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  124     65   
    /// <li>
  125     66   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  126     67   
    /// <li>
  127     68   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  128     69   
    /// <li>
  129     70   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  130     71   
    /// <li>
  131     72   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  132     73   
    /// </ul>
  133         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  134         -
    /// <ul>
  135         -
    /// <li>
  136         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  137         -
    /// <li>
  138         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  139         -
    /// <li>
  140         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  141         -
    /// <li>
  142         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  143         -
    /// <li>
  144         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  145         -
    /// <li>
  146         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  147         -
    /// <li>
  148         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
  149         -
    /// <li>
  150         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
  151         -
    /// </ul>
  152     74   
    pub fn error_message(&self) -> ::std::option::Option<&str> {
  153     75   
        self.error_message.as_deref()
  154     76   
    }
  155     77   
}
  156     78   
impl ErrorDetails {
  157     79   
    /// Creates a new builder-style object to manufacture [`ErrorDetails`](crate::types::ErrorDetails).
  158     80   
    pub fn builder() -> crate::types::builders::ErrorDetailsBuilder {
  159     81   
        crate::types::builders::ErrorDetailsBuilder::default()
  160     82   
    }
  161     83   
}
  162     84   
  163     85   
/// A builder for [`ErrorDetails`](crate::types::ErrorDetails).
  164     86   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  165     87   
#[non_exhaustive]
  166     88   
pub struct ErrorDetailsBuilder {
  167     89   
    pub(crate) error_code: ::std::option::Option<::std::string::String>,
  168     90   
    pub(crate) error_message: ::std::option::Option<::std::string::String>,
  169     91   
}
  170     92   
impl ErrorDetailsBuilder {
  171         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
          93  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  172     94   
    /// <ul>
  173     95   
    /// <li>
  174     96   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  175     97   
    /// <li>
  176     98   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  177     99   
    /// <li>
  178    100   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  179    101   
    /// <li>
  180    102   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  181    103   
    /// <li>
  182    104   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  183    105   
    /// <li>
  184    106   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  185    107   
    /// </ul>
  186         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  187         -
    /// <ul>
  188         -
    /// <li>
  189         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  190         -
    /// <li>
  191         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  192         -
    /// <li>
  193         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  194         -
    /// <li>
  195         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  196         -
    /// <li>
  197         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  198         -
    /// <li>
  199         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  200         -
    /// <li>
  201         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
  202         -
    /// <li>
  203         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
  204         -
    /// </ul>
  205    108   
    pub fn error_code(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  206    109   
        self.error_code = ::std::option::Option::Some(input.into());
  207    110   
        self
  208    111   
    }
  209         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
         112  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  210    113   
    /// <ul>
  211    114   
    /// <li>
  212    115   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  213    116   
    /// <li>
  214    117   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  215    118   
    /// <li>
  216    119   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  217    120   
    /// <li>
  218    121   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  219    122   
    /// <li>
  220    123   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  221    124   
    /// <li>
  222    125   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  223    126   
    /// </ul>
  224         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  225         -
    /// <ul>
  226         -
    /// <li>
  227         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  228         -
    /// <li>
  229         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  230         -
    /// <li>
  231         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  232         -
    /// <li>
  233         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  234         -
    /// <li>
  235         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  236         -
    /// <li>
  237         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  238         -
    /// <li>
  239         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
  240         -
    /// <li>
  241         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
  242         -
    /// </ul>
  243    127   
    pub fn set_error_code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  244    128   
        self.error_code = input;
  245    129   
        self
  246    130   
    }
  247         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
         131  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  248    132   
    /// <ul>
  249    133   
    /// <li>
  250    134   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  251    135   
    /// <li>
  252    136   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  253    137   
    /// <li>
  254    138   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  255    139   
    /// <li>
  256    140   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  257    141   
    /// <li>
  258    142   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  259    143   
    /// <li>
  260    144   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  261    145   
    /// </ul>
  262         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  263         -
    /// <ul>
  264         -
    /// <li>
  265         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  266         -
    /// <li>
  267         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  268         -
    /// <li>
  269         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  270         -
    /// <li>
  271         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  272         -
    /// <li>
  273         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  274         -
    /// <li>
  275         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  276         -
    /// <li>
  277         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
  278         -
    /// <li>
  279         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
  280         -
    /// </ul>
  281    146   
    pub fn get_error_code(&self) -> &::std::option::Option<::std::string::String> {
  282    147   
        &self.error_code
  283    148   
    }
  284         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
         149  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
  285    150   
    /// <ul>
  286    151   
    /// <li>
  287    152   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  288    153   
    /// <li>
  289    154   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  290    155   
    /// <li>
  291    156   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  292    157   
    /// <li>
  293    158   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  294    159   
    /// <li>
  295    160   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  296    161   
    /// <li>
  297    162   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  298    163   
    /// </ul>
  299         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  300         -
    /// <ul>
  301         -
    /// <li>
  302         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  303         -
    /// <li>
  304         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  305         -
    /// <li>
  306         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  307         -
    /// <li>
  308         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  309         -
    /// <li>
  310         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  311         -
    /// <li>
  312         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  313         -
    /// <li>
  314         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
  315         -
    /// <li>
  316         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
  317         -
    /// </ul>
  318    164   
    pub fn error_message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  319    165   
        self.error_message = ::std::option::Option::Some(input.into());
  320    166   
        self
  321    167   
    }
  322         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
         168  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
  323    169   
    /// <ul>
  324    170   
    /// <li>
  325    171   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  326    172   
    /// <li>
  327    173   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  328    174   
    /// <li>
  329    175   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  330    176   
    /// <li>
  331    177   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  332    178   
    /// <li>
  333    179   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  334    180   
    /// <li>
  335    181   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  336    182   
    /// </ul>
  337         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  338         -
    /// <ul>
  339         -
    /// <li>
  340         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  341         -
    /// <li>
  342         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  343         -
    /// <li>
  344         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  345         -
    /// <li>
  346         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  347         -
    /// <li>
  348         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  349         -
    /// <li>
  350         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  351         -
    /// <li>
  352         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
  353         -
    /// <li>
  354         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
  355         -
    /// </ul>
  356    183   
    pub fn set_error_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  357    184   
        self.error_message = input;
  358    185   
        self
  359    186   
    }
  360         -
    /// <p>If the V1 <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
         187  +
    /// <p>If the <code>CreateBucketMetadataTableConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error message. The possible error codes and error messages are as follows:</p>
  361    188   
    /// <ul>
  362    189   
    /// <li>
  363    190   
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code> and <code>s3tables:PutTablePolicy</code> permissions, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  364    191   
    /// <li>
  365    192   
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  366    193   
    /// <li>
  367    194   
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  368    195   
    /// <li>
  369    196   
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  370    197   
    /// <li>
  371    198   
    /// <p><code>TableAlreadyExists</code> - The table that you specified already exists in the table bucket's namespace. Specify a different table name. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  372    199   
    /// <li>
  373    200   
    /// <p><code>TableBucketNotFound</code> - The table bucket that you specified doesn't exist in this Amazon Web Services Region and account. Create or choose a different table bucket. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  374    201   
    /// </ul>
  375         -
    /// <p>If the V2 <code>CreateBucketMetadataConfiguration</code> request succeeds, but S3 Metadata was unable to create the table, this structure contains the error code. The possible error codes and error messages are as follows:</p>
  376         -
    /// <ul>
  377         -
    /// <li>
  378         -
    /// <p><code>AccessDeniedCreatingResources</code> - You don't have sufficient permissions to create the required resources. Make sure that you have <code>s3tables:CreateTableBucket</code>, <code>s3tables:CreateNamespace</code>, <code>s3tables:CreateTable</code>, <code>s3tables:GetTable</code>, <code>s3tables:PutTablePolicy</code>, <code>kms:DescribeKey</code>, and <code>s3tables:PutTableEncryption</code> permissions. Additionally, ensure that the KMS key used to encrypt the table still exists, is active and has a resource policy granting access to the S3 service principals '<code>maintenance.s3tables.amazonaws.com</code>' and '<code>metadata.s3.amazonaws.com</code>'. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  379         -
    /// <li>
  380         -
    /// <p><code>AccessDeniedWritingToTable</code> - Unable to write to the metadata table because of missing resource permissions. To fix the resource policy, Amazon S3 needs to create a new metadata table. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  381         -
    /// <li>
  382         -
    /// <p><code>DestinationTableNotFound</code> - The destination table doesn't exist. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  383         -
    /// <li>
  384         -
    /// <p><code>ServerInternalError</code> - An internal error has occurred. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  385         -
    /// <li>
  386         -
    /// <p><code>JournalTableAlreadyExists</code> - A journal table already exists in the Amazon Web Services managed table bucket's namespace. Delete the journal table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  387         -
    /// <li>
  388         -
    /// <p><code>InventoryTableAlreadyExists</code> - An inventory table already exists in the Amazon Web Services managed table bucket's namespace. Delete the inventory table, and then try again. To create a new metadata table, you must delete the metadata configuration for this bucket, and then create a new metadata configuration.</p></li>
  389         -
    /// <li>
  390         -
    /// <p><code>JournalTableNotAvailable</code> - The journal table that the inventory table relies on has a <code>FAILED</code> status. An inventory table requires a journal table with an <code>ACTIVE</code> status. To create a new journal or inventory table, you must delete the metadata configuration for this bucket, along with any journal or inventory tables, and then create a new metadata configuration.</p></li>
  391         -
    /// <li>
  392         -
    /// <p><code>NoSuchBucket</code> - The specified general purpose bucket does not exist.</p></li>
  393         -
    /// </ul>
  394    202   
    pub fn get_error_message(&self) -> &::std::option::Option<::std::string::String> {
  395    203   
        &self.error_message
  396    204   
    }
  397    205   
    /// Consumes the builder and constructs a [`ErrorDetails`](crate::types::ErrorDetails).
  398    206   
    pub fn build(self) -> crate::types::ErrorDetails {
  399    207   
        crate::types::ErrorDetails {
  400    208   
            error_code: self.error_code,
  401    209   
            error_message: self.error_message,
  402    210   
        }
  403    211   
    }

tmp-codegen-diff/aws-sdk/sdk/s3/src/types/_expiration_state.rs

@@ -1,0 +108,0 @@
    1         -
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// When writing a match expression against `ExpirationState`, it is important to ensure
    4         -
/// your code is forward-compatible. That is, if a match arm handles a case for a
    5         -
/// feature that is supported by the service but has not been represented as an enum
    6         -
/// variant in a current version of SDK, your code should continue to work when you
    7         -
/// upgrade SDK to a future version in which the enum does include a variant for that
    8         -
/// feature.
    9         -
///
   10         -
/// Here is an example of how you can make a match expression forward-compatible:
   11         -
///
   12         -
/// ```text
   13         -
/// # let expirationstate = unimplemented!();
   14         -
/// match expirationstate {
   15         -
///     ExpirationState::Disabled => { /* ... */ },
   16         -
///     ExpirationState::Enabled => { /* ... */ },
   17         -
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
   18         -
///     _ => { /* ... */ },
   19         -
/// }
   20         -
/// ```
   21         -
/// The above code demonstrates that when `expirationstate` represents
   22         -
/// `NewFeature`, the execution path will lead to the second last match arm,
   23         -
/// even though the enum does not contain a variant `ExpirationState::NewFeature`
   24         -
/// in the current version of SDK. The reason is that the variable `other`,
   25         -
/// created by the `@` operator, is bound to
   26         -
/// `ExpirationState::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
   27         -
/// and calling `as_str` on it yields `"NewFeature"`.
   28         -
/// This match expression is forward-compatible when executed with a newer
   29         -
/// version of SDK where the variant `ExpirationState::NewFeature` is defined.
   30         -
/// Specifically, when `expirationstate` represents `NewFeature`,
   31         -
/// the execution path will hit the second last match arm as before by virtue of
   32         -
/// calling `as_str` on `ExpirationState::NewFeature` also yielding `"NewFeature"`.
   33         -
///
   34         -
/// Explicitly matching on the `Unknown` variant should
   35         -
/// be avoided for two reasons:
   36         -
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
   37         -
/// - It might inadvertently shadow other intended match arms.
   38         -
///
   39         -
#[allow(missing_docs)] // documentation missing in model
   40         -
#[non_exhaustive]
   41         -
#[derive(
   42         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
   43         -
)]
   44         -
pub enum ExpirationState {
   45         -
    #[allow(missing_docs)] // documentation missing in model
   46         -
    Disabled,
   47         -
    #[allow(missing_docs)] // documentation missing in model
   48         -
    Enabled,
   49         -
    /// `Unknown` contains new variants that have been added since this code was generated.
   50         -
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
   51         -
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
   52         -
}
   53         -
impl ::std::convert::From<&str> for ExpirationState {
   54         -
    fn from(s: &str) -> Self {
   55         -
        match s {
   56         -
            "DISABLED" => ExpirationState::Disabled,
   57         -
            "ENABLED" => ExpirationState::Enabled,
   58         -
            other => ExpirationState::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
   59         -
        }
   60         -
    }
   61         -
}
   62         -
impl ::std::str::FromStr for ExpirationState {
   63         -
    type Err = ::std::convert::Infallible;
   64         -
   65         -
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
   66         -
        ::std::result::Result::Ok(ExpirationState::from(s))
   67         -
    }
   68         -
}
   69         -
impl ExpirationState {
   70         -
    /// Returns the `&str` value of the enum member.
   71         -
    pub fn as_str(&self) -> &str {
   72         -
        match self {
   73         -
            ExpirationState::Disabled => "DISABLED",
   74         -
            ExpirationState::Enabled => "ENABLED",
   75         -
            ExpirationState::Unknown(value) => value.as_str(),
   76         -
        }
   77         -
    }
   78         -
    /// Returns all the `&str` representations of the enum members.
   79         -
    pub const fn values() -> &'static [&'static str] {
   80         -
        &["DISABLED", "ENABLED"]
   81         -
    }
   82         -
}
   83         -
impl ::std::convert::AsRef<str> for ExpirationState {
   84         -
    fn as_ref(&self) -> &str {
   85         -
        self.as_str()
   86         -
    }
   87         -
}
   88         -
impl ExpirationState {
   89         -
    /// Parses the enum value while disallowing unknown variants.
   90         -
    ///
   91         -
    /// Unknown variants will result in an error.
   92         -
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
   93         -
        match Self::from(value) {
   94         -
            #[allow(deprecated)]
   95         -
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
   96         -
            known => Ok(known),
   97         -
        }
   98         -
    }
   99         -
}
  100         -
impl ::std::fmt::Display for ExpirationState {
  101         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  102         -
        match self {
  103         -
            ExpirationState::Disabled => write!(f, "DISABLED"),
  104         -
            ExpirationState::Enabled => write!(f, "ENABLED"),
  105         -
            ExpirationState::Unknown(value) => write!(f, "{value}"),
  106         -
        }
  107         -
    }
  108         -
}