AWS SDK

AWS SDK

rev. 718865afc5d3a851e695288d9ab877760ee4553c (ignoring whitespace)

Files changed:

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_dssekms_filter.rs

@@ -1,1 +60,50 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// <p>A filter that returns objects that are encrypted by dual-layer server-side encryption with Amazon Web Services Key Management Service (KMS) keys (DSSE-KMS). You can further refine your filtering by optionally providing a KMS Key ARN to create an object list of DSSE-KMS objects with that specific KMS Key ARN.</p>
           3  +
/// <p>A filter that returns objects that are encrypted by dual-layer server-side encryption with Amazon Web Services Key Management Service (KMS) keys (DSSE-KMS). You can further refine your filtering by optionally providing a KMS Key ARN to filter objects encrypted by a specific key.</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub struct DssekmsFilter {
    7         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
    8         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
    9         -
    /// </note>
           7  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   10      8   
    pub kms_key_arn: ::std::option::Option<::std::string::String>,
   11      9   
}
   12     10   
impl DssekmsFilter {
   13         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
   14         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   15         -
    /// </note>
          11  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   16     12   
    pub fn kms_key_arn(&self) -> ::std::option::Option<&str> {
   17     13   
        self.kms_key_arn.as_deref()
   18     14   
    }
   19     15   
}
   20     16   
impl DssekmsFilter {
   21     17   
    /// Creates a new builder-style object to manufacture [`DssekmsFilter`](crate::types::DssekmsFilter).
   22     18   
    pub fn builder() -> crate::types::builders::DssekmsFilterBuilder {
   23     19   
        crate::types::builders::DssekmsFilterBuilder::default()
   24     20   
    }
   25     21   
}
   26     22   
   27     23   
/// A builder for [`DssekmsFilter`](crate::types::DssekmsFilter).
   28     24   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   29     25   
#[non_exhaustive]
   30     26   
pub struct DssekmsFilterBuilder {
   31     27   
    pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
   32     28   
}
   33     29   
impl DssekmsFilterBuilder {
   34         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
   35         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   36         -
    /// </note>
          30  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   37     31   
    pub fn kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   38     32   
        self.kms_key_arn = ::std::option::Option::Some(input.into());
   39     33   
        self
   40     34   
    }
   41         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
   42         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   43         -
    /// </note>
          35  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   44     36   
    pub fn set_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   45     37   
        self.kms_key_arn = input;
   46     38   
        self
   47     39   
    }
   48         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
   49         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   50         -
    /// </note>
          40  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   51     41   
    pub fn get_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
   52     42   
        &self.kms_key_arn
   53     43   
    }
   54     44   
    /// Consumes the builder and constructs a [`DssekmsFilter`](crate::types::DssekmsFilter).
   55     45   
    pub fn build(self) -> crate::types::DssekmsFilter {
   56     46   
        crate::types::DssekmsFilter {
   57     47   
            kms_key_arn: self.kms_key_arn,
   58     48   
        }
   59     49   
    }
   60     50   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_job_manifest_generator_filter.rs

@@ -1,1 +93,93 @@
   13     13   
    /// <p>If provided, the generated manifest includes only source bucket objects that have one of the specified Replication statuses.</p>
   14     14   
    pub object_replication_statuses: ::std::option::Option<::std::vec::Vec<crate::types::ReplicationStatus>>,
   15     15   
    /// <p>If provided, the generated manifest includes only source bucket objects whose object keys match the string constraints specified for <code>MatchAnyPrefix</code>, <code>MatchAnySuffix</code>, and <code>MatchAnySubstring</code>.</p>
   16     16   
    pub key_name_constraint: ::std::option::Option<crate::types::KeyNameConstraint>,
   17     17   
    /// <p>If provided, the generated manifest includes only source bucket objects whose file size is greater than the specified number of bytes.</p>
   18     18   
    pub object_size_greater_than_bytes: ::std::option::Option<i64>,
   19     19   
    /// <p>If provided, the generated manifest includes only source bucket objects whose file size is less than the specified number of bytes.</p>
   20     20   
    pub object_size_less_than_bytes: ::std::option::Option<i64>,
   21     21   
    /// <p>If provided, the generated manifest includes only source bucket objects that are stored with the specified storage class.</p>
   22     22   
    pub match_any_storage_class: ::std::option::Option<::std::vec::Vec<crate::types::S3StorageClass>>,
   23         -
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE). If you select SSE-KMS or DSSE-KMS, you can optionally further filter your results by specifying a specific KMS Key ARN. If you select SSE-KMS, you can also optionally further filter your results by Bucket Key enabled status.</p>
          23  +
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE).</p>
   24     24   
    pub match_any_object_encryption: ::std::option::Option<::std::vec::Vec<crate::types::ObjectEncryptionFilter>>,
   25     25   
}
   26     26   
impl JobManifestGeneratorFilter {
   27     27   
    /// <p>Include objects in the generated manifest only if they are eligible for replication according to the Replication configuration on the source bucket.</p>
   28     28   
    pub fn eligible_for_replication(&self) -> ::std::option::Option<bool> {
   29     29   
        self.eligible_for_replication
   30     30   
    }
   31     31   
    /// <p>If provided, the generated manifest includes only source bucket objects that were created after this time.</p>
   32     32   
    pub fn created_after(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
   33     33   
        self.created_after.as_ref()
   34     34   
    }
   35     35   
    /// <p>If provided, the generated manifest includes only source bucket objects that were created before this time.</p>
   36     36   
    pub fn created_before(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
   37     37   
        self.created_before.as_ref()
   38     38   
    }
   39     39   
    /// <p>If provided, the generated manifest includes only source bucket objects that have one of the specified Replication statuses.</p>
   40     40   
    ///
   41     41   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.object_replication_statuses.is_none()`.
   42     42   
    pub fn object_replication_statuses(&self) -> &[crate::types::ReplicationStatus] {
   43     43   
        self.object_replication_statuses.as_deref().unwrap_or_default()
   44     44   
    }
   45     45   
    /// <p>If provided, the generated manifest includes only source bucket objects whose object keys match the string constraints specified for <code>MatchAnyPrefix</code>, <code>MatchAnySuffix</code>, and <code>MatchAnySubstring</code>.</p>
   46     46   
    pub fn key_name_constraint(&self) -> ::std::option::Option<&crate::types::KeyNameConstraint> {
   47     47   
        self.key_name_constraint.as_ref()
   48     48   
    }
   49     49   
    /// <p>If provided, the generated manifest includes only source bucket objects whose file size is greater than the specified number of bytes.</p>
   50     50   
    pub fn object_size_greater_than_bytes(&self) -> ::std::option::Option<i64> {
   51     51   
        self.object_size_greater_than_bytes
   52     52   
    }
   53     53   
    /// <p>If provided, the generated manifest includes only source bucket objects whose file size is less than the specified number of bytes.</p>
   54     54   
    pub fn object_size_less_than_bytes(&self) -> ::std::option::Option<i64> {
   55     55   
        self.object_size_less_than_bytes
   56     56   
    }
   57     57   
    /// <p>If provided, the generated manifest includes only source bucket objects that are stored with the specified storage class.</p>
   58     58   
    ///
   59     59   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.match_any_storage_class.is_none()`.
   60     60   
    pub fn match_any_storage_class(&self) -> &[crate::types::S3StorageClass] {
   61     61   
        self.match_any_storage_class.as_deref().unwrap_or_default()
   62     62   
    }
   63         -
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE). If you select SSE-KMS or DSSE-KMS, you can optionally further filter your results by specifying a specific KMS Key ARN. If you select SSE-KMS, you can also optionally further filter your results by Bucket Key enabled status.</p>
          63  +
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE).</p>
   64     64   
    ///
   65     65   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.match_any_object_encryption.is_none()`.
   66     66   
    pub fn match_any_object_encryption(&self) -> &[crate::types::ObjectEncryptionFilter] {
   67     67   
        self.match_any_object_encryption.as_deref().unwrap_or_default()
   68     68   
    }
   69     69   
}
   70     70   
impl JobManifestGeneratorFilter {
   71     71   
    /// Creates a new builder-style object to manufacture [`JobManifestGeneratorFilter`](crate::types::JobManifestGeneratorFilter).
   72     72   
    pub fn builder() -> crate::types::builders::JobManifestGeneratorFilterBuilder {
   73     73   
        crate::types::builders::JobManifestGeneratorFilterBuilder::default()
@@ -190,190 +250,250 @@
  210    210   
        self
  211    211   
    }
  212    212   
    /// <p>If provided, the generated manifest includes only source bucket objects that are stored with the specified storage class.</p>
  213    213   
    pub fn get_match_any_storage_class(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::S3StorageClass>> {
  214    214   
        &self.match_any_storage_class
  215    215   
    }
  216    216   
    /// Appends an item to `match_any_object_encryption`.
  217    217   
    ///
  218    218   
    /// To override the contents of this collection use [`set_match_any_object_encryption`](Self::set_match_any_object_encryption).
  219    219   
    ///
  220         -
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE). If you select SSE-KMS or DSSE-KMS, you can optionally further filter your results by specifying a specific KMS Key ARN. If you select SSE-KMS, you can also optionally further filter your results by Bucket Key enabled status.</p>
         220  +
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE).</p>
  221    221   
    pub fn match_any_object_encryption(mut self, input: crate::types::ObjectEncryptionFilter) -> Self {
  222    222   
        let mut v = self.match_any_object_encryption.unwrap_or_default();
  223    223   
        v.push(input);
  224    224   
        self.match_any_object_encryption = ::std::option::Option::Some(v);
  225    225   
        self
  226    226   
    }
  227         -
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE). If you select SSE-KMS or DSSE-KMS, you can optionally further filter your results by specifying a specific KMS Key ARN. If you select SSE-KMS, you can also optionally further filter your results by Bucket Key enabled status.</p>
         227  +
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE).</p>
  228    228   
    pub fn set_match_any_object_encryption(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ObjectEncryptionFilter>>) -> Self {
  229    229   
        self.match_any_object_encryption = input;
  230    230   
        self
  231    231   
    }
  232         -
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE). If you select SSE-KMS or DSSE-KMS, you can optionally further filter your results by specifying a specific KMS Key ARN. If you select SSE-KMS, you can also optionally further filter your results by Bucket Key enabled status.</p>
         232  +
    /// <p>If provided, the generated object list includes only source bucket objects with the indicated server-side encryption type (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C, or NOT-SSE).</p>
  233    233   
    pub fn get_match_any_object_encryption(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ObjectEncryptionFilter>> {
  234    234   
        &self.match_any_object_encryption
  235    235   
    }
  236    236   
    /// Consumes the builder and constructs a [`JobManifestGeneratorFilter`](crate::types::JobManifestGeneratorFilter).
  237    237   
    pub fn build(self) -> crate::types::JobManifestGeneratorFilter {
  238    238   
        crate::types::JobManifestGeneratorFilter {
  239    239   
            eligible_for_replication: self.eligible_for_replication,
  240    240   
            created_after: self.created_after,
  241    241   
            created_before: self.created_before,
  242    242   
            object_replication_statuses: self.object_replication_statuses,

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_job_operation.rs

@@ -11,11 +148,155 @@
   31     31   
    /// <p>Contains the configuration parameters for the Object Lock retention action for an S3 Batch Operations job. Batch Operations passes every object to the underlying <code>PutObjectRetention</code> API operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html">Using S3 Object Lock retention with S3 Batch Operations</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   32     32   
    /// <p>This functionality is not supported by directory buckets.</p>
   33     33   
    /// </note>
   34     34   
    pub s3_put_object_retention: ::std::option::Option<crate::types::S3SetObjectRetentionOperation>,
   35     35   
    /// <p>Directs the specified job to invoke <code>ReplicateObject</code> on every object in the job's manifest.</p><note>
   36     36   
    /// <p>This functionality is not supported by directory buckets.</p>
   37     37   
    /// </note>
   38     38   
    pub s3_replicate_object: ::std::option::Option<crate::types::S3ReplicateObjectOperation>,
   39     39   
    /// <p>Directs the specified job to compute checksum values for every object in the manifest.</p>
   40     40   
    pub s3_compute_object_checksum: ::std::option::Option<crate::types::S3ComputeObjectChecksumOperation>,
          41  +
    /// <p>Updates the server-side encryption type of an existing encrypted object in a general purpose bucket. You can use the <code>UpdateObjectEncryption</code> operation to change encrypted objects from server-side encryption with Amazon S3 managed keys (SSE-S3) to server-side encryption with Key Management Service (KMS) keys (SSE-KMS), or to apply S3 Bucket Keys. You can also use the <code>UpdateObjectEncryption</code> operation to change the customer-managed KMS key used to encrypt your data so that you can comply with custom key-rotation standards.</p>
          42  +
    pub s3_update_object_encryption: ::std::option::Option<crate::types::S3UpdateObjectEncryptionOperation>,
   41     43   
}
   42     44   
impl JobOperation {
   43     45   
    /// <p>Directs the specified job to invoke an Lambda function on every object in the manifest.</p>
   44     46   
    pub fn lambda_invoke(&self) -> ::std::option::Option<&crate::types::LambdaInvokeOperation> {
   45     47   
        self.lambda_invoke.as_ref()
   46     48   
    }
   47     49   
    /// <p>Directs the specified job to run a PUT Copy object call on every object in the manifest.</p>
   48     50   
    pub fn s3_put_object_copy(&self) -> ::std::option::Option<&crate::types::S3CopyObjectOperation> {
   49     51   
        self.s3_put_object_copy.as_ref()
   50     52   
    }
   51     53   
    /// <p>Directs the specified job to run a <code>PutObjectAcl</code> call on every object in the manifest.</p><note>
   52     54   
    /// <p>This functionality is not supported by directory buckets.</p>
   53     55   
    /// </note>
   54     56   
    pub fn s3_put_object_acl(&self) -> ::std::option::Option<&crate::types::S3SetObjectAclOperation> {
   55     57   
        self.s3_put_object_acl.as_ref()
   56     58   
    }
   57     59   
    /// <p>Directs the specified job to run a PUT Object tagging call on every object in the manifest.</p><note>
   58     60   
    /// <p>This functionality is not supported by directory buckets.</p>
   59     61   
    /// </note>
   60     62   
    pub fn s3_put_object_tagging(&self) -> ::std::option::Option<&crate::types::S3SetObjectTaggingOperation> {
   61     63   
        self.s3_put_object_tagging.as_ref()
   62     64   
    }
   63     65   
    /// <p>Directs the specified job to execute a DELETE Object tagging call on every object in the manifest.</p><note>
   64     66   
    /// <p>This functionality is not supported by directory buckets.</p>
   65     67   
    /// </note>
   66     68   
    pub fn s3_delete_object_tagging(&self) -> ::std::option::Option<&crate::types::S3DeleteObjectTaggingOperation> {
   67     69   
        self.s3_delete_object_tagging.as_ref()
   68     70   
    }
   69     71   
    /// <p>Directs the specified job to initiate restore requests for every archived object in the manifest.</p><note>
   70     72   
    /// <p>This functionality is not supported by directory buckets.</p>
   71     73   
    /// </note>
   72     74   
    pub fn s3_initiate_restore_object(&self) -> ::std::option::Option<&crate::types::S3InitiateRestoreObjectOperation> {
   73     75   
        self.s3_initiate_restore_object.as_ref()
   74     76   
    }
   75     77   
    /// <p>Contains the configuration for an S3 Object Lock legal hold operation that an S3 Batch Operations job passes to every object to the underlying <code>PutObjectLegalHold</code> API operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html">Using S3 Object Lock legal hold with S3 Batch Operations</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   76     78   
    /// <p>This functionality is not supported by directory buckets.</p>
   77     79   
    /// </note>
   78     80   
    pub fn s3_put_object_legal_hold(&self) -> ::std::option::Option<&crate::types::S3SetObjectLegalHoldOperation> {
   79     81   
        self.s3_put_object_legal_hold.as_ref()
   80     82   
    }
   81     83   
    /// <p>Contains the configuration parameters for the Object Lock retention action for an S3 Batch Operations job. Batch Operations passes every object to the underlying <code>PutObjectRetention</code> API operation. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html">Using S3 Object Lock retention with S3 Batch Operations</a> in the <i>Amazon S3 User Guide</i>.</p><note>
   82     84   
    /// <p>This functionality is not supported by directory buckets.</p>
   83     85   
    /// </note>
   84     86   
    pub fn s3_put_object_retention(&self) -> ::std::option::Option<&crate::types::S3SetObjectRetentionOperation> {
   85     87   
        self.s3_put_object_retention.as_ref()
   86     88   
    }
   87     89   
    /// <p>Directs the specified job to invoke <code>ReplicateObject</code> on every object in the job's manifest.</p><note>
   88     90   
    /// <p>This functionality is not supported by directory buckets.</p>
   89     91   
    /// </note>
   90     92   
    pub fn s3_replicate_object(&self) -> ::std::option::Option<&crate::types::S3ReplicateObjectOperation> {
   91     93   
        self.s3_replicate_object.as_ref()
   92     94   
    }
   93     95   
    /// <p>Directs the specified job to compute checksum values for every object in the manifest.</p>
   94     96   
    pub fn s3_compute_object_checksum(&self) -> ::std::option::Option<&crate::types::S3ComputeObjectChecksumOperation> {
   95     97   
        self.s3_compute_object_checksum.as_ref()
   96     98   
    }
          99  +
    /// <p>Updates the server-side encryption type of an existing encrypted object in a general purpose bucket. You can use the <code>UpdateObjectEncryption</code> operation to change encrypted objects from server-side encryption with Amazon S3 managed keys (SSE-S3) to server-side encryption with Key Management Service (KMS) keys (SSE-KMS), or to apply S3 Bucket Keys. You can also use the <code>UpdateObjectEncryption</code> operation to change the customer-managed KMS key used to encrypt your data so that you can comply with custom key-rotation standards.</p>
         100  +
    pub fn s3_update_object_encryption(&self) -> ::std::option::Option<&crate::types::S3UpdateObjectEncryptionOperation> {
         101  +
        self.s3_update_object_encryption.as_ref()
         102  +
    }
   97    103   
}
   98    104   
impl JobOperation {
   99    105   
    /// Creates a new builder-style object to manufacture [`JobOperation`](crate::types::JobOperation).
  100    106   
    pub fn builder() -> crate::types::builders::JobOperationBuilder {
  101    107   
        crate::types::builders::JobOperationBuilder::default()
  102    108   
    }
  103    109   
}
  104    110   
  105    111   
/// A builder for [`JobOperation`](crate::types::JobOperation).
  106    112   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  107    113   
#[non_exhaustive]
  108    114   
pub struct JobOperationBuilder {
  109    115   
    pub(crate) lambda_invoke: ::std::option::Option<crate::types::LambdaInvokeOperation>,
  110    116   
    pub(crate) s3_put_object_copy: ::std::option::Option<crate::types::S3CopyObjectOperation>,
  111    117   
    pub(crate) s3_put_object_acl: ::std::option::Option<crate::types::S3SetObjectAclOperation>,
  112    118   
    pub(crate) s3_put_object_tagging: ::std::option::Option<crate::types::S3SetObjectTaggingOperation>,
  113    119   
    pub(crate) s3_delete_object_tagging: ::std::option::Option<crate::types::S3DeleteObjectTaggingOperation>,
  114    120   
    pub(crate) s3_initiate_restore_object: ::std::option::Option<crate::types::S3InitiateRestoreObjectOperation>,
  115    121   
    pub(crate) s3_put_object_legal_hold: ::std::option::Option<crate::types::S3SetObjectLegalHoldOperation>,
  116    122   
    pub(crate) s3_put_object_retention: ::std::option::Option<crate::types::S3SetObjectRetentionOperation>,
  117    123   
    pub(crate) s3_replicate_object: ::std::option::Option<crate::types::S3ReplicateObjectOperation>,
  118    124   
    pub(crate) s3_compute_object_checksum: ::std::option::Option<crate::types::S3ComputeObjectChecksumOperation>,
         125  +
    pub(crate) s3_update_object_encryption: ::std::option::Option<crate::types::S3UpdateObjectEncryptionOperation>,
  119    126   
}
  120    127   
impl JobOperationBuilder {
  121    128   
    /// <p>Directs the specified job to invoke an Lambda function on every object in the manifest.</p>
  122    129   
    pub fn lambda_invoke(mut self, input: crate::types::LambdaInvokeOperation) -> Self {
  123    130   
        self.lambda_invoke = ::std::option::Option::Some(input);
  124    131   
        self
  125    132   
    }
  126    133   
    /// <p>Directs the specified job to invoke an Lambda function on every object in the manifest.</p>
  127    134   
    pub fn set_lambda_invoke(mut self, input: ::std::option::Option<crate::types::LambdaInvokeOperation>) -> Self {
  128    135   
        self.lambda_invoke = input;
@@ -273,280 +318,340 @@
  293    300   
    }
  294    301   
    /// <p>Directs the specified job to compute checksum values for every object in the manifest.</p>
  295    302   
    pub fn set_s3_compute_object_checksum(mut self, input: ::std::option::Option<crate::types::S3ComputeObjectChecksumOperation>) -> Self {
  296    303   
        self.s3_compute_object_checksum = input;
  297    304   
        self
  298    305   
    }
  299    306   
    /// <p>Directs the specified job to compute checksum values for every object in the manifest.</p>
  300    307   
    pub fn get_s3_compute_object_checksum(&self) -> &::std::option::Option<crate::types::S3ComputeObjectChecksumOperation> {
  301    308   
        &self.s3_compute_object_checksum
  302    309   
    }
         310  +
    /// <p>Updates the server-side encryption type of an existing encrypted object in a general purpose bucket. You can use the <code>UpdateObjectEncryption</code> operation to change encrypted objects from server-side encryption with Amazon S3 managed keys (SSE-S3) to server-side encryption with Key Management Service (KMS) keys (SSE-KMS), or to apply S3 Bucket Keys. You can also use the <code>UpdateObjectEncryption</code> operation to change the customer-managed KMS key used to encrypt your data so that you can comply with custom key-rotation standards.</p>
         311  +
    pub fn s3_update_object_encryption(mut self, input: crate::types::S3UpdateObjectEncryptionOperation) -> Self {
         312  +
        self.s3_update_object_encryption = ::std::option::Option::Some(input);
         313  +
        self
         314  +
    }
         315  +
    /// <p>Updates the server-side encryption type of an existing encrypted object in a general purpose bucket. You can use the <code>UpdateObjectEncryption</code> operation to change encrypted objects from server-side encryption with Amazon S3 managed keys (SSE-S3) to server-side encryption with Key Management Service (KMS) keys (SSE-KMS), or to apply S3 Bucket Keys. You can also use the <code>UpdateObjectEncryption</code> operation to change the customer-managed KMS key used to encrypt your data so that you can comply with custom key-rotation standards.</p>
         316  +
    pub fn set_s3_update_object_encryption(mut self, input: ::std::option::Option<crate::types::S3UpdateObjectEncryptionOperation>) -> Self {
         317  +
        self.s3_update_object_encryption = input;
         318  +
        self
         319  +
    }
         320  +
    /// <p>Updates the server-side encryption type of an existing encrypted object in a general purpose bucket. You can use the <code>UpdateObjectEncryption</code> operation to change encrypted objects from server-side encryption with Amazon S3 managed keys (SSE-S3) to server-side encryption with Key Management Service (KMS) keys (SSE-KMS), or to apply S3 Bucket Keys. You can also use the <code>UpdateObjectEncryption</code> operation to change the customer-managed KMS key used to encrypt your data so that you can comply with custom key-rotation standards.</p>
         321  +
    pub fn get_s3_update_object_encryption(&self) -> &::std::option::Option<crate::types::S3UpdateObjectEncryptionOperation> {
         322  +
        &self.s3_update_object_encryption
         323  +
    }
  303    324   
    /// Consumes the builder and constructs a [`JobOperation`](crate::types::JobOperation).
  304    325   
    pub fn build(self) -> crate::types::JobOperation {
  305    326   
        crate::types::JobOperation {
  306    327   
            lambda_invoke: self.lambda_invoke,
  307    328   
            s3_put_object_copy: self.s3_put_object_copy,
  308    329   
            s3_put_object_acl: self.s3_put_object_acl,
  309    330   
            s3_put_object_tagging: self.s3_put_object_tagging,
  310    331   
            s3_delete_object_tagging: self.s3_delete_object_tagging,
  311    332   
            s3_initiate_restore_object: self.s3_initiate_restore_object,
  312    333   
            s3_put_object_legal_hold: self.s3_put_object_legal_hold,
  313    334   
            s3_put_object_retention: self.s3_put_object_retention,
  314    335   
            s3_replicate_object: self.s3_replicate_object,
  315    336   
            s3_compute_object_checksum: self.s3_compute_object_checksum,
         337  +
            s3_update_object_encryption: self.s3_update_object_encryption,
  316    338   
        }
  317    339   
    }
  318    340   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_lifecycle_rule.rs

@@ -1,1 +83,83 @@
    9      9   
    /// <p>Unique identifier for the rule. The value cannot be longer than 255 characters.</p>
   10     10   
    pub id: ::std::option::Option<::std::string::String>,
   11     11   
    /// <p>The container for the filter of lifecycle rule.</p>
   12     12   
    pub filter: ::std::option::Option<crate::types::LifecycleRuleFilter>,
   13     13   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
   14     14   
    pub status: crate::types::ExpirationStatus,
   15     15   
    /// <p>Specifies when an Amazon S3 object transitions to a specified storage class.</p><note>
   16     16   
    /// <p>This is not supported by Amazon S3 on Outposts buckets.</p>
   17     17   
    /// </note>
   18     18   
    pub transitions: ::std::option::Option<::std::vec::Vec<crate::types::Transition>>,
   19         -
    /// <p>Specifies the transition rule for the lifecycle rule that describes when non-current objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
          19  +
    /// <p>Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
   20     20   
    /// <p>This is not supported by Amazon S3 on Outposts buckets.</p>
   21     21   
    /// </note>
   22     22   
    pub noncurrent_version_transitions: ::std::option::Option<::std::vec::Vec<crate::types::NoncurrentVersionTransition>>,
   23     23   
    /// <p>The noncurrent version expiration of the lifecycle rule.</p>
   24     24   
    pub noncurrent_version_expiration: ::std::option::Option<crate::types::NoncurrentVersionExpiration>,
   25     25   
    /// <p>Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 waits before permanently removing all parts of the upload. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config"> Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration</a> in the <i>Amazon S3 User Guide</i>.</p>
   26     26   
    pub abort_incomplete_multipart_upload: ::std::option::Option<crate::types::AbortIncompleteMultipartUpload>,
   27     27   
}
   28     28   
impl LifecycleRule {
   29     29   
    /// <p>Specifies the expiration for the lifecycle of the object in the form of date, days and, whether the object has a delete marker.</p>
   30     30   
    pub fn expiration(&self) -> ::std::option::Option<&crate::types::LifecycleExpiration> {
   31     31   
        self.expiration.as_ref()
   32     32   
    }
   33     33   
    /// <p>Unique identifier for the rule. The value cannot be longer than 255 characters.</p>
   34     34   
    pub fn id(&self) -> ::std::option::Option<&str> {
   35     35   
        self.id.as_deref()
   36     36   
    }
   37     37   
    /// <p>The container for the filter of lifecycle rule.</p>
   38     38   
    pub fn filter(&self) -> ::std::option::Option<&crate::types::LifecycleRuleFilter> {
   39     39   
        self.filter.as_ref()
   40     40   
    }
   41     41   
    /// <p>If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.</p>
   42     42   
    pub fn status(&self) -> &crate::types::ExpirationStatus {
   43     43   
        &self.status
   44     44   
    }
   45     45   
    /// <p>Specifies when an Amazon S3 object transitions to a specified storage class.</p><note>
   46     46   
    /// <p>This is not supported by Amazon S3 on Outposts buckets.</p>
   47     47   
    /// </note>
   48     48   
    ///
   49     49   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.transitions.is_none()`.
   50     50   
    pub fn transitions(&self) -> &[crate::types::Transition] {
   51     51   
        self.transitions.as_deref().unwrap_or_default()
   52     52   
    }
   53         -
    /// <p>Specifies the transition rule for the lifecycle rule that describes when non-current objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
          53  +
    /// <p>Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
   54     54   
    /// <p>This is not supported by Amazon S3 on Outposts buckets.</p>
   55     55   
    /// </note>
   56     56   
    ///
   57     57   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.noncurrent_version_transitions.is_none()`.
   58     58   
    pub fn noncurrent_version_transitions(&self) -> &[crate::types::NoncurrentVersionTransition] {
   59     59   
        self.noncurrent_version_transitions.as_deref().unwrap_or_default()
   60     60   
    }
   61     61   
    /// <p>The noncurrent version expiration of the lifecycle rule.</p>
   62     62   
    pub fn noncurrent_version_expiration(&self) -> ::std::option::Option<&crate::types::NoncurrentVersionExpiration> {
   63     63   
        self.noncurrent_version_expiration.as_ref()
@@ -148,148 +227,227 @@
  168    168   
    /// <p>Specifies when an Amazon S3 object transitions to a specified storage class.</p><note>
  169    169   
    /// <p>This is not supported by Amazon S3 on Outposts buckets.</p>
  170    170   
    /// </note>
  171    171   
    pub fn get_transitions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Transition>> {
  172    172   
        &self.transitions
  173    173   
    }
  174    174   
    /// Appends an item to `noncurrent_version_transitions`.
  175    175   
    ///
  176    176   
    /// To override the contents of this collection use [`set_noncurrent_version_transitions`](Self::set_noncurrent_version_transitions).
  177    177   
    ///
  178         -
    /// <p>Specifies the transition rule for the lifecycle rule that describes when non-current objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
         178  +
    /// <p>Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
  179    179   
    /// <p>This is not supported by Amazon S3 on Outposts buckets.</p>
  180    180   
    /// </note>
  181    181   
    pub fn noncurrent_version_transitions(mut self, input: crate::types::NoncurrentVersionTransition) -> Self {
  182    182   
        let mut v = self.noncurrent_version_transitions.unwrap_or_default();
  183    183   
        v.push(input);
  184    184   
        self.noncurrent_version_transitions = ::std::option::Option::Some(v);
  185    185   
        self
  186    186   
    }
  187         -
    /// <p>Specifies the transition rule for the lifecycle rule that describes when non-current objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
         187  +
    /// <p>Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
  188    188   
    /// <p>This is not supported by Amazon S3 on Outposts buckets.</p>
  189    189   
    /// </note>
  190    190   
    pub fn set_noncurrent_version_transitions(
  191    191   
        mut self,
  192    192   
        input: ::std::option::Option<::std::vec::Vec<crate::types::NoncurrentVersionTransition>>,
  193    193   
    ) -> Self {
  194    194   
        self.noncurrent_version_transitions = input;
  195    195   
        self
  196    196   
    }
  197         -
    /// <p>Specifies the transition rule for the lifecycle rule that describes when non-current objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
         197  +
    /// <p>Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.</p><note>
  198    198   
    /// <p>This is not supported by Amazon S3 on Outposts buckets.</p>
  199    199   
    /// </note>
  200    200   
    pub fn get_noncurrent_version_transitions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::NoncurrentVersionTransition>> {
  201    201   
        &self.noncurrent_version_transitions
  202    202   
    }
  203    203   
    /// <p>The noncurrent version expiration of the lifecycle rule.</p>
  204    204   
    pub fn noncurrent_version_expiration(mut self, input: crate::types::NoncurrentVersionExpiration) -> Self {
  205    205   
        self.noncurrent_version_expiration = ::std::option::Option::Some(input);
  206    206   
        self
  207    207   
    }

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_match_object_size.rs

@@ -1,1 +72,72 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3      3   
/// <p>A filter condition that specifies the object size range of included objects in bytes. Only integers are supported.</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub struct MatchObjectSize {
    7         -
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 5 TB.</p>
           7  +
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 50 TB.</p>
    8      8   
    pub bytes_greater_than: i64,
    9         -
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 5 TB.</p>
           9  +
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 50 TB.</p>
   10     10   
    pub bytes_less_than: i64,
   11     11   
}
   12     12   
impl MatchObjectSize {
   13         -
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 5 TB.</p>
          13  +
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 50 TB.</p>
   14     14   
    pub fn bytes_greater_than(&self) -> i64 {
   15     15   
        self.bytes_greater_than
   16     16   
    }
   17         -
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 5 TB.</p>
          17  +
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 50 TB.</p>
   18     18   
    pub fn bytes_less_than(&self) -> i64 {
   19     19   
        self.bytes_less_than
   20     20   
    }
   21     21   
}
   22     22   
impl MatchObjectSize {
   23     23   
    /// Creates a new builder-style object to manufacture [`MatchObjectSize`](crate::types::MatchObjectSize).
   24     24   
    pub fn builder() -> crate::types::builders::MatchObjectSizeBuilder {
   25     25   
        crate::types::builders::MatchObjectSizeBuilder::default()
   26     26   
    }
   27     27   
}
   28     28   
   29     29   
/// A builder for [`MatchObjectSize`](crate::types::MatchObjectSize).
   30     30   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   31     31   
#[non_exhaustive]
   32     32   
pub struct MatchObjectSizeBuilder {
   33     33   
    pub(crate) bytes_greater_than: ::std::option::Option<i64>,
   34     34   
    pub(crate) bytes_less_than: ::std::option::Option<i64>,
   35     35   
}
   36     36   
impl MatchObjectSizeBuilder {
   37         -
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 5 TB.</p>
          37  +
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 50 TB.</p>
   38     38   
    pub fn bytes_greater_than(mut self, input: i64) -> Self {
   39     39   
        self.bytes_greater_than = ::std::option::Option::Some(input);
   40     40   
        self
   41     41   
    }
   42         -
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 5 TB.</p>
          42  +
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 50 TB.</p>
   43     43   
    pub fn set_bytes_greater_than(mut self, input: ::std::option::Option<i64>) -> Self {
   44     44   
        self.bytes_greater_than = input;
   45     45   
        self
   46     46   
    }
   47         -
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 5 TB.</p>
          47  +
    /// <p>Specifies the minimum object size in Bytes. The value must be a positive number, greater than 0 and less than 50 TB.</p>
   48     48   
    pub fn get_bytes_greater_than(&self) -> &::std::option::Option<i64> {
   49     49   
        &self.bytes_greater_than
   50     50   
    }
   51         -
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 5 TB.</p>
          51  +
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 50 TB.</p>
   52     52   
    pub fn bytes_less_than(mut self, input: i64) -> Self {
   53     53   
        self.bytes_less_than = ::std::option::Option::Some(input);
   54     54   
        self
   55     55   
    }
   56         -
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 5 TB.</p>
          56  +
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 50 TB.</p>
   57     57   
    pub fn set_bytes_less_than(mut self, input: ::std::option::Option<i64>) -> Self {
   58     58   
        self.bytes_less_than = input;
   59     59   
        self
   60     60   
    }
   61         -
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 5 TB.</p>
          61  +
    /// <p>Specifies the maximum object size in Bytes. The value must be a positive number, greater than the minimum object size and less than 50 TB.</p>
   62     62   
    pub fn get_bytes_less_than(&self) -> &::std::option::Option<i64> {
   63     63   
        &self.bytes_less_than
   64     64   
    }
   65     65   
    /// Consumes the builder and constructs a [`MatchObjectSize`](crate::types::MatchObjectSize).
   66     66   
    pub fn build(self) -> crate::types::MatchObjectSize {
   67     67   
        crate::types::MatchObjectSize {
   68     68   
            bytes_greater_than: self.bytes_greater_than.unwrap_or_default(),
   69     69   
            bytes_less_than: self.bytes_less_than.unwrap_or_default(),
   70     70   
        }
   71     71   
    }

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_object_encryption.rs

@@ -0,1 +0,49 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>The updated server-side encryption type for this object. The <code>UpdateObjectEncryption</code> operation supports the SSE-KMS encryption type.</p>
           4  +
/// <p>Valid Values: <code>SSEKMS</code></p>
           5  +
#[non_exhaustive]
           6  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           7  +
pub struct ObjectEncryption {
           8  +
    /// <p>Specifies to update the object encryption type to server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
           9  +
    pub ssekms: ::std::option::Option<crate::types::S3UpdateObjectEncryptionSsekms>,
          10  +
}
          11  +
impl ObjectEncryption {
          12  +
    /// <p>Specifies to update the object encryption type to server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
          13  +
    pub fn ssekms(&self) -> ::std::option::Option<&crate::types::S3UpdateObjectEncryptionSsekms> {
          14  +
        self.ssekms.as_ref()
          15  +
    }
          16  +
}
          17  +
impl ObjectEncryption {
          18  +
    /// Creates a new builder-style object to manufacture [`ObjectEncryption`](crate::types::ObjectEncryption).
          19  +
    pub fn builder() -> crate::types::builders::ObjectEncryptionBuilder {
          20  +
        crate::types::builders::ObjectEncryptionBuilder::default()
          21  +
    }
          22  +
}
          23  +
          24  +
/// A builder for [`ObjectEncryption`](crate::types::ObjectEncryption).
          25  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          26  +
#[non_exhaustive]
          27  +
pub struct ObjectEncryptionBuilder {
          28  +
    pub(crate) ssekms: ::std::option::Option<crate::types::S3UpdateObjectEncryptionSsekms>,
          29  +
}
          30  +
impl ObjectEncryptionBuilder {
          31  +
    /// <p>Specifies to update the object encryption type to server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
          32  +
    pub fn ssekms(mut self, input: crate::types::S3UpdateObjectEncryptionSsekms) -> Self {
          33  +
        self.ssekms = ::std::option::Option::Some(input);
          34  +
        self
          35  +
    }
          36  +
    /// <p>Specifies to update the object encryption type to server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
          37  +
    pub fn set_ssekms(mut self, input: ::std::option::Option<crate::types::S3UpdateObjectEncryptionSsekms>) -> Self {
          38  +
        self.ssekms = input;
          39  +
        self
          40  +
    }
          41  +
    /// <p>Specifies to update the object encryption type to server-side encryption with Key Management Service (KMS) keys (SSE-KMS).</p>
          42  +
    pub fn get_ssekms(&self) -> &::std::option::Option<crate::types::S3UpdateObjectEncryptionSsekms> {
          43  +
        &self.ssekms
          44  +
    }
          45  +
    /// Consumes the builder and constructs a [`ObjectEncryption`](crate::types::ObjectEncryption).
          46  +
    pub fn build(self) -> crate::types::ObjectEncryption {
          47  +
        crate::types::ObjectEncryption { ssekms: self.ssekms }
          48  +
    }
          49  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_object_encryption_filter.rs

@@ -1,1 +33,33 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// <p>An optional filter for the <code>S3JobManifestGenerator</code> that identifies the subset of objects by encryption type. This filter is used to create an object list for S3 Batch Operations jobs. If provided, this filter will generate an object list that only includes objects with the specified encryption type.</p>
           3  +
/// <p>An optional filter for the S3JobManifestGenerator that identifies the subset of objects by encryption type.</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub enum ObjectEncryptionFilter {
    7      7   
    /// <p>Filters for objects that are encrypted by dual-layer server-side encryption with Amazon Web Services Key Management Service (KMS) keys (DSSE-KMS).</p>
    8      8   
    Dssekms(crate::types::DssekmsFilter),
    9      9   
    /// <p>Filters for objects that are not encrypted by server-side encryption.</p>
   10     10   
    Notsse(crate::types::NotSseFilter),
   11     11   
    /// <p>Filters for objects that are encrypted by server-side encryption with customer-provided keys (SSE-C).</p>
   12     12   
    Ssec(crate::types::SsecFilter),
   13     13   
    /// <p>Filters for objects that are encrypted by server-side encryption with Amazon Web Services Key Management Service (KMS) keys (SSE-KMS).</p>

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_operation_name.rs

@@ -1,1 +167,174 @@
   15     15   
///     OperationName::LambdaInvoke => { /* ... */ },
   16     16   
///     OperationName::S3ComputeObjectChecksum => { /* ... */ },
   17     17   
///     OperationName::S3DeleteObjectTagging => { /* ... */ },
   18     18   
///     OperationName::S3InitiateRestoreObject => { /* ... */ },
   19     19   
///     OperationName::S3PutObjectAcl => { /* ... */ },
   20     20   
///     OperationName::S3PutObjectCopy => { /* ... */ },
   21     21   
///     OperationName::S3PutObjectLegalHold => { /* ... */ },
   22     22   
///     OperationName::S3PutObjectRetention => { /* ... */ },
   23     23   
///     OperationName::S3PutObjectTagging => { /* ... */ },
   24     24   
///     OperationName::S3ReplicateObject => { /* ... */ },
          25  +
///     OperationName::S3UpdateObjectEncryption => { /* ... */ },
   25     26   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
   26     27   
///     _ => { /* ... */ },
   27     28   
/// }
   28     29   
/// ```
   29     30   
/// The above code demonstrates that when `operationname` represents
   30     31   
/// `NewFeature`, the execution path will lead to the second last match arm,
   31     32   
/// even though the enum does not contain a variant `OperationName::NewFeature`
   32     33   
/// in the current version of SDK. The reason is that the variable `other`,
   33     34   
/// created by the `@` operator, is bound to
   34     35   
/// `OperationName::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
   35     36   
/// and calling `as_str` on it yields `"NewFeature"`.
   36     37   
/// This match expression is forward-compatible when executed with a newer
   37     38   
/// version of SDK where the variant `OperationName::NewFeature` is defined.
   38     39   
/// Specifically, when `operationname` represents `NewFeature`,
   39     40   
/// the execution path will hit the second last match arm as before by virtue of
   40     41   
/// calling `as_str` on `OperationName::NewFeature` also yielding `"NewFeature"`.
   41     42   
///
   42     43   
/// Explicitly matching on the `Unknown` variant should
   43     44   
/// be avoided for two reasons:
   44     45   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
   45     46   
/// - It might inadvertently shadow other intended match arms.
   46     47   
///
   47     48   
#[allow(missing_docs)] // documentation missing in model
   48     49   
#[non_exhaustive]
   49     50   
#[derive(
   50     51   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
   51     52   
)]
   52     53   
pub enum OperationName {
   53     54   
    #[allow(missing_docs)] // documentation missing in model
   54     55   
    LambdaInvoke,
   55     56   
    #[allow(missing_docs)] // documentation missing in model
   56     57   
    S3ComputeObjectChecksum,
   57     58   
    #[allow(missing_docs)] // documentation missing in model
   58     59   
    S3DeleteObjectTagging,
   59     60   
    #[allow(missing_docs)] // documentation missing in model
   60     61   
    S3InitiateRestoreObject,
   61     62   
    #[allow(missing_docs)] // documentation missing in model
   62     63   
    S3PutObjectAcl,
   63     64   
    #[allow(missing_docs)] // documentation missing in model
   64     65   
    S3PutObjectCopy,
   65     66   
    #[allow(missing_docs)] // documentation missing in model
   66     67   
    S3PutObjectLegalHold,
   67     68   
    #[allow(missing_docs)] // documentation missing in model
   68     69   
    S3PutObjectRetention,
   69     70   
    #[allow(missing_docs)] // documentation missing in model
   70     71   
    S3PutObjectTagging,
   71     72   
    #[allow(missing_docs)] // documentation missing in model
   72     73   
    S3ReplicateObject,
          74  +
    #[allow(missing_docs)] // documentation missing in model
          75  +
    S3UpdateObjectEncryption,
   73     76   
    /// `Unknown` contains new variants that have been added since this code was generated.
   74     77   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
   75     78   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
   76     79   
}
   77     80   
impl ::std::convert::From<&str> for OperationName {
   78     81   
    fn from(s: &str) -> Self {
   79     82   
        match s {
   80     83   
            "LambdaInvoke" => OperationName::LambdaInvoke,
   81     84   
            "S3ComputeObjectChecksum" => OperationName::S3ComputeObjectChecksum,
   82     85   
            "S3DeleteObjectTagging" => OperationName::S3DeleteObjectTagging,
   83     86   
            "S3InitiateRestoreObject" => OperationName::S3InitiateRestoreObject,
   84     87   
            "S3PutObjectAcl" => OperationName::S3PutObjectAcl,
   85     88   
            "S3PutObjectCopy" => OperationName::S3PutObjectCopy,
   86     89   
            "S3PutObjectLegalHold" => OperationName::S3PutObjectLegalHold,
   87     90   
            "S3PutObjectRetention" => OperationName::S3PutObjectRetention,
   88     91   
            "S3PutObjectTagging" => OperationName::S3PutObjectTagging,
   89     92   
            "S3ReplicateObject" => OperationName::S3ReplicateObject,
          93  +
            "S3UpdateObjectEncryption" => OperationName::S3UpdateObjectEncryption,
   90     94   
            other => OperationName::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
   91     95   
        }
   92     96   
    }
   93     97   
}
   94     98   
impl ::std::str::FromStr for OperationName {
   95     99   
    type Err = ::std::convert::Infallible;
   96    100   
   97    101   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
   98    102   
        ::std::result::Result::Ok(OperationName::from(s))
   99    103   
    }
  100    104   
}
  101    105   
impl OperationName {
  102    106   
    /// Returns the `&str` value of the enum member.
  103    107   
    pub fn as_str(&self) -> &str {
  104    108   
        match self {
  105    109   
            OperationName::LambdaInvoke => "LambdaInvoke",
  106    110   
            OperationName::S3ComputeObjectChecksum => "S3ComputeObjectChecksum",
  107    111   
            OperationName::S3DeleteObjectTagging => "S3DeleteObjectTagging",
  108    112   
            OperationName::S3InitiateRestoreObject => "S3InitiateRestoreObject",
  109    113   
            OperationName::S3PutObjectAcl => "S3PutObjectAcl",
  110    114   
            OperationName::S3PutObjectCopy => "S3PutObjectCopy",
  111    115   
            OperationName::S3PutObjectLegalHold => "S3PutObjectLegalHold",
  112    116   
            OperationName::S3PutObjectRetention => "S3PutObjectRetention",
  113    117   
            OperationName::S3PutObjectTagging => "S3PutObjectTagging",
  114    118   
            OperationName::S3ReplicateObject => "S3ReplicateObject",
         119  +
            OperationName::S3UpdateObjectEncryption => "S3UpdateObjectEncryption",
  115    120   
            OperationName::Unknown(value) => value.as_str(),
  116    121   
        }
  117    122   
    }
  118    123   
    /// Returns all the `&str` representations of the enum members.
  119    124   
    pub const fn values() -> &'static [&'static str] {
  120    125   
        &[
  121    126   
            "LambdaInvoke",
  122    127   
            "S3ComputeObjectChecksum",
  123    128   
            "S3DeleteObjectTagging",
  124    129   
            "S3InitiateRestoreObject",
  125    130   
            "S3PutObjectAcl",
  126    131   
            "S3PutObjectCopy",
  127    132   
            "S3PutObjectLegalHold",
  128    133   
            "S3PutObjectRetention",
  129    134   
            "S3PutObjectTagging",
  130    135   
            "S3ReplicateObject",
         136  +
            "S3UpdateObjectEncryption",
  131    137   
        ]
  132    138   
    }
  133    139   
}
  134    140   
impl ::std::convert::AsRef<str> for OperationName {
  135    141   
    fn as_ref(&self) -> &str {
  136    142   
        self.as_str()
  137    143   
    }
  138    144   
}
  139    145   
impl OperationName {
  140    146   
    /// Parses the enum value while disallowing unknown variants.
  141    147   
    ///
  142    148   
    /// Unknown variants will result in an error.
  143    149   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
  144    150   
        match Self::from(value) {
  145    151   
            #[allow(deprecated)]
  146    152   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
  147    153   
            known => Ok(known),
  148    154   
        }
  149    155   
    }
  150    156   
}
  151    157   
impl ::std::fmt::Display for OperationName {
  152    158   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  153    159   
        match self {
  154    160   
            OperationName::LambdaInvoke => write!(f, "LambdaInvoke"),
  155    161   
            OperationName::S3ComputeObjectChecksum => write!(f, "S3ComputeObjectChecksum"),
  156    162   
            OperationName::S3DeleteObjectTagging => write!(f, "S3DeleteObjectTagging"),
  157    163   
            OperationName::S3InitiateRestoreObject => write!(f, "S3InitiateRestoreObject"),
  158    164   
            OperationName::S3PutObjectAcl => write!(f, "S3PutObjectAcl"),
  159    165   
            OperationName::S3PutObjectCopy => write!(f, "S3PutObjectCopy"),
  160    166   
            OperationName::S3PutObjectLegalHold => write!(f, "S3PutObjectLegalHold"),
  161    167   
            OperationName::S3PutObjectRetention => write!(f, "S3PutObjectRetention"),
  162    168   
            OperationName::S3PutObjectTagging => write!(f, "S3PutObjectTagging"),
  163    169   
            OperationName::S3ReplicateObject => write!(f, "S3ReplicateObject"),
         170  +
            OperationName::S3UpdateObjectEncryption => write!(f, "S3UpdateObjectEncryption"),
  164    171   
            OperationName::Unknown(value) => write!(f, "{value}"),
  165    172   
        }
  166    173   
    }
  167    174   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_s3_checksum_algorithm.rs

@@ -1,1 +126,167 @@
    8      8   
/// feature.
    9      9   
///
   10     10   
/// Here is an example of how you can make a match expression forward-compatible:
   11     11   
///
   12     12   
/// ```text
   13     13   
/// # let s3checksumalgorithm = unimplemented!();
   14     14   
/// match s3checksumalgorithm {
   15     15   
///     S3ChecksumAlgorithm::Crc32 => { /* ... */ },
   16     16   
///     S3ChecksumAlgorithm::Crc32C => { /* ... */ },
   17     17   
///     S3ChecksumAlgorithm::Crc64Nvme => { /* ... */ },
          18  +
///     S3ChecksumAlgorithm::Md5 => { /* ... */ },
   18     19   
///     S3ChecksumAlgorithm::Sha1 => { /* ... */ },
   19     20   
///     S3ChecksumAlgorithm::Sha256 => { /* ... */ },
          21  +
///     S3ChecksumAlgorithm::Sha512 => { /* ... */ },
          22  +
///     S3ChecksumAlgorithm::Xxhash128 => { /* ... */ },
          23  +
///     S3ChecksumAlgorithm::Xxhash3 => { /* ... */ },
          24  +
///     S3ChecksumAlgorithm::Xxhash64 => { /* ... */ },
   20     25   
///     other @ _ if other.as_str() == "NewFeature" => { /* handles a case for `NewFeature` */ },
   21     26   
///     _ => { /* ... */ },
   22     27   
/// }
   23     28   
/// ```
   24     29   
/// The above code demonstrates that when `s3checksumalgorithm` represents
   25     30   
/// `NewFeature`, the execution path will lead to the second last match arm,
   26     31   
/// even though the enum does not contain a variant `S3ChecksumAlgorithm::NewFeature`
   27     32   
/// in the current version of SDK. The reason is that the variable `other`,
   28     33   
/// created by the `@` operator, is bound to
   29     34   
/// `S3ChecksumAlgorithm::Unknown(UnknownVariantValue("NewFeature".to_owned()))`
   30     35   
/// and calling `as_str` on it yields `"NewFeature"`.
   31     36   
/// This match expression is forward-compatible when executed with a newer
   32     37   
/// version of SDK where the variant `S3ChecksumAlgorithm::NewFeature` is defined.
   33     38   
/// Specifically, when `s3checksumalgorithm` represents `NewFeature`,
   34     39   
/// the execution path will hit the second last match arm as before by virtue of
   35     40   
/// calling `as_str` on `S3ChecksumAlgorithm::NewFeature` also yielding `"NewFeature"`.
   36     41   
///
   37     42   
/// Explicitly matching on the `Unknown` variant should
   38     43   
/// be avoided for two reasons:
   39     44   
/// - The inner data `UnknownVariantValue` is opaque, and no further information can be extracted.
   40     45   
/// - It might inadvertently shadow other intended match arms.
   41     46   
///
   42     47   
#[allow(missing_docs)] // documentation missing in model
   43     48   
#[non_exhaustive]
   44     49   
#[derive(
   45     50   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
   46     51   
)]
   47     52   
pub enum S3ChecksumAlgorithm {
   48     53   
    #[allow(missing_docs)] // documentation missing in model
   49     54   
    Crc32,
   50     55   
    #[allow(missing_docs)] // documentation missing in model
   51     56   
    Crc32C,
   52     57   
    #[allow(missing_docs)] // documentation missing in model
   53     58   
    Crc64Nvme,
   54     59   
    #[allow(missing_docs)] // documentation missing in model
          60  +
    Md5,
          61  +
    #[allow(missing_docs)] // documentation missing in model
   55     62   
    Sha1,
   56     63   
    #[allow(missing_docs)] // documentation missing in model
   57     64   
    Sha256,
          65  +
    #[allow(missing_docs)] // documentation missing in model
          66  +
    Sha512,
          67  +
    #[allow(missing_docs)] // documentation missing in model
          68  +
    Xxhash128,
          69  +
    #[allow(missing_docs)] // documentation missing in model
          70  +
    Xxhash3,
          71  +
    #[allow(missing_docs)] // documentation missing in model
          72  +
    Xxhash64,
   58     73   
    /// `Unknown` contains new variants that have been added since this code was generated.
   59     74   
    #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
   60     75   
    Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
   61     76   
}
   62     77   
impl ::std::convert::From<&str> for S3ChecksumAlgorithm {
   63     78   
    fn from(s: &str) -> Self {
   64     79   
        match s {
   65     80   
            "CRC32" => S3ChecksumAlgorithm::Crc32,
   66     81   
            "CRC32C" => S3ChecksumAlgorithm::Crc32C,
   67     82   
            "CRC64NVME" => S3ChecksumAlgorithm::Crc64Nvme,
          83  +
            "MD5" => S3ChecksumAlgorithm::Md5,
   68     84   
            "SHA1" => S3ChecksumAlgorithm::Sha1,
   69     85   
            "SHA256" => S3ChecksumAlgorithm::Sha256,
          86  +
            "SHA512" => S3ChecksumAlgorithm::Sha512,
          87  +
            "XXHASH128" => S3ChecksumAlgorithm::Xxhash128,
          88  +
            "XXHASH3" => S3ChecksumAlgorithm::Xxhash3,
          89  +
            "XXHASH64" => S3ChecksumAlgorithm::Xxhash64,
   70     90   
            other => S3ChecksumAlgorithm::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
   71     91   
        }
   72     92   
    }
   73     93   
}
   74     94   
impl ::std::str::FromStr for S3ChecksumAlgorithm {
   75     95   
    type Err = ::std::convert::Infallible;
   76     96   
   77     97   
    fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
   78     98   
        ::std::result::Result::Ok(S3ChecksumAlgorithm::from(s))
   79     99   
    }
   80    100   
}
   81    101   
impl S3ChecksumAlgorithm {
   82    102   
    /// Returns the `&str` value of the enum member.
   83    103   
    pub fn as_str(&self) -> &str {
   84    104   
        match self {
   85    105   
            S3ChecksumAlgorithm::Crc32 => "CRC32",
   86    106   
            S3ChecksumAlgorithm::Crc32C => "CRC32C",
   87    107   
            S3ChecksumAlgorithm::Crc64Nvme => "CRC64NVME",
         108  +
            S3ChecksumAlgorithm::Md5 => "MD5",
   88    109   
            S3ChecksumAlgorithm::Sha1 => "SHA1",
   89    110   
            S3ChecksumAlgorithm::Sha256 => "SHA256",
         111  +
            S3ChecksumAlgorithm::Sha512 => "SHA512",
         112  +
            S3ChecksumAlgorithm::Xxhash128 => "XXHASH128",
         113  +
            S3ChecksumAlgorithm::Xxhash3 => "XXHASH3",
         114  +
            S3ChecksumAlgorithm::Xxhash64 => "XXHASH64",
   90    115   
            S3ChecksumAlgorithm::Unknown(value) => value.as_str(),
   91    116   
        }
   92    117   
    }
   93    118   
    /// Returns all the `&str` representations of the enum members.
   94    119   
    pub const fn values() -> &'static [&'static str] {
   95         -
        &["CRC32", "CRC32C", "CRC64NVME", "SHA1", "SHA256"]
         120  +
        &[
         121  +
            "CRC32",
         122  +
            "CRC32C",
         123  +
            "CRC64NVME",
         124  +
            "MD5",
         125  +
            "SHA1",
         126  +
            "SHA256",
         127  +
            "SHA512",
         128  +
            "XXHASH128",
         129  +
            "XXHASH3",
         130  +
            "XXHASH64",
         131  +
        ]
   96    132   
    }
   97    133   
}
   98    134   
impl ::std::convert::AsRef<str> for S3ChecksumAlgorithm {
   99    135   
    fn as_ref(&self) -> &str {
  100    136   
        self.as_str()
  101    137   
    }
  102    138   
}
  103    139   
impl S3ChecksumAlgorithm {
  104    140   
    /// Parses the enum value while disallowing unknown variants.
  105    141   
    ///
  106    142   
    /// Unknown variants will result in an error.
  107    143   
    pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
  108    144   
        match Self::from(value) {
  109    145   
            #[allow(deprecated)]
  110    146   
            Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
  111    147   
            known => Ok(known),
  112    148   
        }
  113    149   
    }
  114    150   
}
  115    151   
impl ::std::fmt::Display for S3ChecksumAlgorithm {
  116    152   
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
  117    153   
        match self {
  118    154   
            S3ChecksumAlgorithm::Crc32 => write!(f, "CRC32"),
  119    155   
            S3ChecksumAlgorithm::Crc32C => write!(f, "CRC32C"),
  120    156   
            S3ChecksumAlgorithm::Crc64Nvme => write!(f, "CRC64NVME"),
         157  +
            S3ChecksumAlgorithm::Md5 => write!(f, "MD5"),
  121    158   
            S3ChecksumAlgorithm::Sha1 => write!(f, "SHA1"),
  122    159   
            S3ChecksumAlgorithm::Sha256 => write!(f, "SHA256"),
         160  +
            S3ChecksumAlgorithm::Sha512 => write!(f, "SHA512"),
         161  +
            S3ChecksumAlgorithm::Xxhash128 => write!(f, "XXHASH128"),
         162  +
            S3ChecksumAlgorithm::Xxhash3 => write!(f, "XXHASH3"),
         163  +
            S3ChecksumAlgorithm::Xxhash64 => write!(f, "XXHASH64"),
  123    164   
            S3ChecksumAlgorithm::Unknown(value) => write!(f, "{value}"),
  124    165   
        }
  125    166   
    }
  126    167   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_s3_compute_object_checksum_operation.rs

@@ -1,1 +72,72 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// <p>Directs the specified job to invoke the <code>ComputeObjectChecksum</code> operation on every object listed in the job's manifest.</p>
           3  +
/// <p>Directs the specified job to invoke the ComputeObjectChecksum operation on every object listed in the job's manifest.</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub struct S3ComputeObjectChecksumOperation {
    7         -
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
           7  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
    8      8   
    pub checksum_algorithm: ::std::option::Option<crate::types::ComputeObjectChecksumAlgorithm>,
    9         -
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
           9  +
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object's checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
   10     10   
    pub checksum_type: ::std::option::Option<crate::types::ComputeObjectChecksumType>,
   11     11   
}
   12     12   
impl S3ComputeObjectChecksumOperation {
   13         -
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          13  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
   14     14   
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::types::ComputeObjectChecksumAlgorithm> {
   15     15   
        self.checksum_algorithm.as_ref()
   16     16   
    }
   17         -
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          17  +
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object's checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
   18     18   
    pub fn checksum_type(&self) -> ::std::option::Option<&crate::types::ComputeObjectChecksumType> {
   19     19   
        self.checksum_type.as_ref()
   20     20   
    }
   21     21   
}
   22     22   
impl S3ComputeObjectChecksumOperation {
   23     23   
    /// Creates a new builder-style object to manufacture [`S3ComputeObjectChecksumOperation`](crate::types::S3ComputeObjectChecksumOperation).
   24     24   
    pub fn builder() -> crate::types::builders::S3ComputeObjectChecksumOperationBuilder {
   25     25   
        crate::types::builders::S3ComputeObjectChecksumOperationBuilder::default()
   26     26   
    }
   27     27   
}
   28     28   
   29     29   
/// A builder for [`S3ComputeObjectChecksumOperation`](crate::types::S3ComputeObjectChecksumOperation).
   30     30   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   31     31   
#[non_exhaustive]
   32     32   
pub struct S3ComputeObjectChecksumOperationBuilder {
   33     33   
    pub(crate) checksum_algorithm: ::std::option::Option<crate::types::ComputeObjectChecksumAlgorithm>,
   34     34   
    pub(crate) checksum_type: ::std::option::Option<crate::types::ComputeObjectChecksumType>,
   35     35   
}
   36     36   
impl S3ComputeObjectChecksumOperationBuilder {
   37         -
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          37  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
   38     38   
    pub fn checksum_algorithm(mut self, input: crate::types::ComputeObjectChecksumAlgorithm) -> Self {
   39     39   
        self.checksum_algorithm = ::std::option::Option::Some(input);
   40     40   
        self
   41     41   
    }
   42         -
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          42  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
   43     43   
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ComputeObjectChecksumAlgorithm>) -> Self {
   44     44   
        self.checksum_algorithm = input;
   45     45   
        self
   46     46   
    }
   47         -
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          47  +
    /// <p>Indicates the algorithm that you want Amazon S3 to use to create the checksum. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
   48     48   
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ComputeObjectChecksumAlgorithm> {
   49     49   
        &self.checksum_algorithm
   50     50   
    }
   51         -
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          51  +
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object's checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
   52     52   
    pub fn checksum_type(mut self, input: crate::types::ComputeObjectChecksumType) -> Self {
   53     53   
        self.checksum_type = ::std::option::Option::Some(input);
   54     54   
        self
   55     55   
    }
   56         -
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          56  +
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object's checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
   57     57   
    pub fn set_checksum_type(mut self, input: ::std::option::Option<crate::types::ComputeObjectChecksumType>) -> Self {
   58     58   
        self.checksum_type = input;
   59     59   
        self
   60     60   
    }
   61         -
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object’s checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the <i>Amazon S3 User Guide</i>.</p>
          61  +
    /// <p>Indicates the checksum type that you want Amazon S3 to use to calculate the object's checksum value. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html">Checking object integrity</a> in the Amazon S3 User Guide.</p>
   62     62   
    pub fn get_checksum_type(&self) -> &::std::option::Option<crate::types::ComputeObjectChecksumType> {
   63     63   
        &self.checksum_type
   64     64   
    }
   65     65   
    /// Consumes the builder and constructs a [`S3ComputeObjectChecksumOperation`](crate::types::S3ComputeObjectChecksumOperation).
   66     66   
    pub fn build(self) -> crate::types::S3ComputeObjectChecksumOperation {
   67     67   
        crate::types::S3ComputeObjectChecksumOperation {
   68     68   
            checksum_algorithm: self.checksum_algorithm,
   69     69   
            checksum_type: self.checksum_type,
   70     70   
        }
   71     71   
    }

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_s3_update_object_encryption_operation.rs

@@ -0,1 +0,50 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>With the <code>UpdateObjectEncryption</code> operation, you can atomically update the server-side encryption type of an existing object in a general purpose bucket without any data movement.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct S3UpdateObjectEncryptionOperation {
           7  +
    /// <p>The updated server-side encryption type for this S3 object. The <code>UpdateObjectEncryption</code> operation supports the SSE-KMS encryption type.</p>
           8  +
    pub object_encryption: ::std::option::Option<crate::types::ObjectEncryption>,
           9  +
}
          10  +
impl S3UpdateObjectEncryptionOperation {
          11  +
    /// <p>The updated server-side encryption type for this S3 object. The <code>UpdateObjectEncryption</code> operation supports the SSE-KMS encryption type.</p>
          12  +
    pub fn object_encryption(&self) -> ::std::option::Option<&crate::types::ObjectEncryption> {
          13  +
        self.object_encryption.as_ref()
          14  +
    }
          15  +
}
          16  +
impl S3UpdateObjectEncryptionOperation {
          17  +
    /// Creates a new builder-style object to manufacture [`S3UpdateObjectEncryptionOperation`](crate::types::S3UpdateObjectEncryptionOperation).
          18  +
    pub fn builder() -> crate::types::builders::S3UpdateObjectEncryptionOperationBuilder {
          19  +
        crate::types::builders::S3UpdateObjectEncryptionOperationBuilder::default()
          20  +
    }
          21  +
}
          22  +
          23  +
/// A builder for [`S3UpdateObjectEncryptionOperation`](crate::types::S3UpdateObjectEncryptionOperation).
          24  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          25  +
#[non_exhaustive]
          26  +
pub struct S3UpdateObjectEncryptionOperationBuilder {
          27  +
    pub(crate) object_encryption: ::std::option::Option<crate::types::ObjectEncryption>,
          28  +
}
          29  +
impl S3UpdateObjectEncryptionOperationBuilder {
          30  +
    /// <p>The updated server-side encryption type for this S3 object. The <code>UpdateObjectEncryption</code> operation supports the SSE-KMS encryption type.</p>
          31  +
    pub fn object_encryption(mut self, input: crate::types::ObjectEncryption) -> Self {
          32  +
        self.object_encryption = ::std::option::Option::Some(input);
          33  +
        self
          34  +
    }
          35  +
    /// <p>The updated server-side encryption type for this S3 object. The <code>UpdateObjectEncryption</code> operation supports the SSE-KMS encryption type.</p>
          36  +
    pub fn set_object_encryption(mut self, input: ::std::option::Option<crate::types::ObjectEncryption>) -> Self {
          37  +
        self.object_encryption = input;
          38  +
        self
          39  +
    }
          40  +
    /// <p>The updated server-side encryption type for this S3 object. The <code>UpdateObjectEncryption</code> operation supports the SSE-KMS encryption type.</p>
          41  +
    pub fn get_object_encryption(&self) -> &::std::option::Option<crate::types::ObjectEncryption> {
          42  +
        &self.object_encryption
          43  +
    }
          44  +
    /// Consumes the builder and constructs a [`S3UpdateObjectEncryptionOperation`](crate::types::S3UpdateObjectEncryptionOperation).
          45  +
    pub fn build(self) -> crate::types::S3UpdateObjectEncryptionOperation {
          46  +
        crate::types::S3UpdateObjectEncryptionOperation {
          47  +
            object_encryption: self.object_encryption,
          48  +
        }
          49  +
    }
          50  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_s3_update_object_encryption_ssekms.rs

@@ -0,1 +0,81 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>If <code>SSEKMS</code> is specified for <code>UpdateObjectEncryption</code>, this data type specifies the Amazon Web Services KMS key Amazon Resource Name (ARN) to use and whether to use an S3 Bucket Key for server-side encryption using Key Management Service (KMS) keys (SSE-KMS).</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct S3UpdateObjectEncryptionSsekms {
           7  +
    /// <p>Specifies the Amazon Web Services KMS key Amazon Resource Name (ARN) to use for the updated server-side encryption type. Required if <code>UpdateObjectEncryption</code> specifies <code>SSEKMS</code>.</p>
           8  +
    pub kms_key_arn: ::std::string::String,
           9  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). If this value isn't specified, it defaults to <code>false</code>. Setting this value to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for update object encryption with SSE-KMS.</p>
          10  +
    pub bucket_key_enabled: ::std::option::Option<bool>,
          11  +
}
          12  +
impl S3UpdateObjectEncryptionSsekms {
          13  +
    /// <p>Specifies the Amazon Web Services KMS key Amazon Resource Name (ARN) to use for the updated server-side encryption type. Required if <code>UpdateObjectEncryption</code> specifies <code>SSEKMS</code>.</p>
          14  +
    pub fn kms_key_arn(&self) -> &str {
          15  +
        use std::ops::Deref;
          16  +
        self.kms_key_arn.deref()
          17  +
    }
          18  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). If this value isn't specified, it defaults to <code>false</code>. Setting this value to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for update object encryption with SSE-KMS.</p>
          19  +
    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
          20  +
        self.bucket_key_enabled
          21  +
    }
          22  +
}
          23  +
impl S3UpdateObjectEncryptionSsekms {
          24  +
    /// Creates a new builder-style object to manufacture [`S3UpdateObjectEncryptionSsekms`](crate::types::S3UpdateObjectEncryptionSsekms).
          25  +
    pub fn builder() -> crate::types::builders::S3UpdateObjectEncryptionSsekmsBuilder {
          26  +
        crate::types::builders::S3UpdateObjectEncryptionSsekmsBuilder::default()
          27  +
    }
          28  +
}
          29  +
          30  +
/// A builder for [`S3UpdateObjectEncryptionSsekms`](crate::types::S3UpdateObjectEncryptionSsekms).
          31  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          32  +
#[non_exhaustive]
          33  +
pub struct S3UpdateObjectEncryptionSsekmsBuilder {
          34  +
    pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
          35  +
    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
          36  +
}
          37  +
impl S3UpdateObjectEncryptionSsekmsBuilder {
          38  +
    /// <p>Specifies the Amazon Web Services KMS key Amazon Resource Name (ARN) to use for the updated server-side encryption type. Required if <code>UpdateObjectEncryption</code> specifies <code>SSEKMS</code>.</p>
          39  +
    /// This field is required.
          40  +
    pub fn kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          41  +
        self.kms_key_arn = ::std::option::Option::Some(input.into());
          42  +
        self
          43  +
    }
          44  +
    /// <p>Specifies the Amazon Web Services KMS key Amazon Resource Name (ARN) to use for the updated server-side encryption type. Required if <code>UpdateObjectEncryption</code> specifies <code>SSEKMS</code>.</p>
          45  +
    pub fn set_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          46  +
        self.kms_key_arn = input;
          47  +
        self
          48  +
    }
          49  +
    /// <p>Specifies the Amazon Web Services KMS key Amazon Resource Name (ARN) to use for the updated server-side encryption type. Required if <code>UpdateObjectEncryption</code> specifies <code>SSEKMS</code>.</p>
          50  +
    pub fn get_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
          51  +
        &self.kms_key_arn
          52  +
    }
          53  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). If this value isn't specified, it defaults to <code>false</code>. Setting this value to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for update object encryption with SSE-KMS.</p>
          54  +
    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
          55  +
        self.bucket_key_enabled = ::std::option::Option::Some(input);
          56  +
        self
          57  +
    }
          58  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). If this value isn't specified, it defaults to <code>false</code>. Setting this value to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for update object encryption with SSE-KMS.</p>
          59  +
    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
          60  +
        self.bucket_key_enabled = input;
          61  +
        self
          62  +
    }
          63  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). If this value isn't specified, it defaults to <code>false</code>. Setting this value to <code>true</code> causes Amazon S3 to use an S3 Bucket Key for update object encryption with SSE-KMS.</p>
          64  +
    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
          65  +
        &self.bucket_key_enabled
          66  +
    }
          67  +
    /// Consumes the builder and constructs a [`S3UpdateObjectEncryptionSsekms`](crate::types::S3UpdateObjectEncryptionSsekms).
          68  +
    /// This method will fail if any of the following fields are not set:
          69  +
    /// - [`kms_key_arn`](crate::types::builders::S3UpdateObjectEncryptionSsekmsBuilder::kms_key_arn)
          70  +
    pub fn build(self) -> ::std::result::Result<crate::types::S3UpdateObjectEncryptionSsekms, ::aws_smithy_types::error::operation::BuildError> {
          71  +
        ::std::result::Result::Ok(crate::types::S3UpdateObjectEncryptionSsekms {
          72  +
            kms_key_arn: self.kms_key_arn.ok_or_else(|| {
          73  +
                ::aws_smithy_types::error::operation::BuildError::missing_field(
          74  +
                    "kms_key_arn",
          75  +
                    "kms_key_arn was not specified but it is required when building S3UpdateObjectEncryptionSsekms",
          76  +
                )
          77  +
            })?,
          78  +
            bucket_key_enabled: self.bucket_key_enabled,
          79  +
        })
          80  +
    }
          81  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_ssekms_filter.rs

@@ -1,1 +82,72 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3      3   
/// <p>A filter that returns objects that are encrypted by server-side encryption with Amazon Web Services KMS (SSE-KMS).</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub struct SsekmsFilter {
    7         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
    8         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
    9         -
    /// </note>
           7  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   10      8   
    pub kms_key_arn: ::std::option::Option<::std::string::String>,
   11         -
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html">Reducing the cost of SSE-KMS with Amazon S3 Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p>
           9  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status.</p>
   12     10   
    pub bucket_key_enabled: ::std::option::Option<bool>,
   13     11   
}
   14     12   
impl SsekmsFilter {
   15         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
   16         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   17         -
    /// </note>
          13  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   18     14   
    pub fn kms_key_arn(&self) -> ::std::option::Option<&str> {
   19     15   
        self.kms_key_arn.as_deref()
   20     16   
    }
   21         -
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html">Reducing the cost of SSE-KMS with Amazon S3 Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p>
          17  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status.</p>
   22     18   
    pub fn bucket_key_enabled(&self) -> ::std::option::Option<bool> {
   23     19   
        self.bucket_key_enabled
   24     20   
    }
   25     21   
}
   26     22   
impl SsekmsFilter {
   27     23   
    /// Creates a new builder-style object to manufacture [`SsekmsFilter`](crate::types::SsekmsFilter).
   28     24   
    pub fn builder() -> crate::types::builders::SsekmsFilterBuilder {
   29     25   
        crate::types::builders::SsekmsFilterBuilder::default()
   30     26   
    }
   31     27   
}
   32     28   
   33     29   
/// A builder for [`SsekmsFilter`](crate::types::SsekmsFilter).
   34     30   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   35     31   
#[non_exhaustive]
   36     32   
pub struct SsekmsFilterBuilder {
   37     33   
    pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
   38     34   
    pub(crate) bucket_key_enabled: ::std::option::Option<bool>,
   39     35   
}
   40     36   
impl SsekmsFilterBuilder {
   41         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
   42         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   43         -
    /// </note>
          37  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   44     38   
    pub fn kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   45     39   
        self.kms_key_arn = ::std::option::Option::Some(input.into());
   46     40   
        self
   47     41   
    }
   48         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
   49         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   50         -
    /// </note>
          42  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   51     43   
    pub fn set_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   52     44   
        self.kms_key_arn = input;
   53     45   
        self
   54     46   
    }
   55         -
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, we recommend using the <code>KMSKeyArn</code> filter in conjunction with other object metadata filters, like <code>MatchAnyPrefix</code>, <code>CreatedAfter</code>, or <code>MatchAnyStorageClass</code>.</p><note>
   56         -
    /// <p>You must provide the full KMS Key ARN. You can't use an alias name or alias ARN. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN"> KMS keys</a> in the <i>Amazon Web Services Key Management Service Developer Guide</i>.</p>
   57         -
    /// </note>
          47  +
    /// <p>The Amazon Resource Name (ARN) of the customer managed KMS key to use for the filter to return objects that are encrypted by the specified key. For best performance, use keys in the same Region as the S3 Batch Operations job.</p>
   58     48   
    pub fn get_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
   59     49   
        &self.kms_key_arn
   60     50   
    }
   61         -
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html">Reducing the cost of SSE-KMS with Amazon S3 Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p>
          51  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status.</p>
   62     52   
    pub fn bucket_key_enabled(mut self, input: bool) -> Self {
   63     53   
        self.bucket_key_enabled = ::std::option::Option::Some(input);
   64     54   
        self
   65     55   
    }
   66         -
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html">Reducing the cost of SSE-KMS with Amazon S3 Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p>
          56  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status.</p>
   67     57   
    pub fn set_bucket_key_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
   68     58   
        self.bucket_key_enabled = input;
   69     59   
        self
   70     60   
    }
   71         -
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html">Reducing the cost of SSE-KMS with Amazon S3 Bucket Keys</a> in the <i>Amazon S3 User Guide</i>.</p>
          61  +
    /// <p>Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services Key Management Service (Amazon Web Services KMS) keys (SSE-KMS). If specified, will filter SSE-KMS encrypted objects by S3 Bucket Key status.</p>
   72     62   
    pub fn get_bucket_key_enabled(&self) -> &::std::option::Option<bool> {
   73     63   
        &self.bucket_key_enabled
   74     64   
    }
   75     65   
    /// Consumes the builder and constructs a [`SsekmsFilter`](crate::types::SsekmsFilter).
   76     66   
    pub fn build(self) -> crate::types::SsekmsFilter {
   77     67   
        crate::types::SsekmsFilter {
   78     68   
            kms_key_arn: self.kms_key_arn,
   79     69   
            bucket_key_enabled: self.bucket_key_enabled,
   80     70   
        }
   81     71   
    }

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_storage_lens_configuration.rs

@@ -1,1 +107,139 @@
    7      7   
    /// <p>A container for the Amazon S3 Storage Lens configuration ID.</p>
    8      8   
    pub id: ::std::string::String,
    9      9   
    /// <p>A container for all the account-level configurations of your S3 Storage Lens configuration.</p>
   10     10   
    pub account_level: ::std::option::Option<crate::types::AccountLevel>,
   11     11   
    /// <p>A container for what is included in this configuration. This container can only be valid if there is no <code>Exclude</code> container submitted, and it's not empty.</p>
   12     12   
    pub include: ::std::option::Option<crate::types::Include>,
   13     13   
    /// <p>A container for what is excluded in this configuration. This container can only be valid if there is no <code>Include</code> container submitted, and it's not empty.</p>
   14     14   
    pub exclude: ::std::option::Option<crate::types::Exclude>,
   15     15   
    /// <p>A container to specify the properties of your S3 Storage Lens metrics export including, the destination, schema and format.</p>
   16     16   
    pub data_export: ::std::option::Option<crate::types::StorageLensDataExport>,
          17  +
    /// <p>A container that configures your S3 Storage Lens expanded prefixes metrics report.</p>
          18  +
    pub expanded_prefixes_data_export: ::std::option::Option<crate::types::StorageLensExpandedPrefixesDataExport>,
   17     19   
    /// <p>A container for whether the S3 Storage Lens configuration is enabled.</p>
   18     20   
    pub is_enabled: bool,
   19     21   
    /// <p>A container for the Amazon Web Services organization for this S3 Storage Lens configuration.</p>
   20     22   
    pub aws_org: ::std::option::Option<crate::types::StorageLensAwsOrg>,
   21     23   
    /// <p>The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This property is read-only and follows the following format: <code> arn:aws:s3:<i>us-east-1</i>:<i>example-account-id</i>:storage-lens/<i>your-dashboard-name</i> </code></p>
   22     24   
    pub storage_lens_arn: ::std::option::Option<::std::string::String>,
          25  +
    /// <p>A container for all prefix delimiters that are used for object keys in this S3 Storage Lens configuration. The prefix delimiters determine how S3 Storage Lens counts prefix depth, by separating the hierarchical levels in object keys.</p><note>
          26  +
    /// <ul>
          27  +
    /// <li>
          28  +
    /// <p>If either a prefix delimiter or existing delimiter is undefined, Amazon S3 uses the delimiter that’s defined.</p></li>
          29  +
    /// <li>
          30  +
    /// <p>If both the prefix delimiter and existing delimiter are undefined, S3 uses <code>/</code> as the default delimiter.</p></li>
          31  +
    /// <li>
          32  +
    /// <p>When custom delimiters are used, both the prefix delimiter and existing delimiter must specify the same special character. Otherwise, your request results in an error.</p></li>
          33  +
    /// </ul>
          34  +
    /// </note>
          35  +
    pub prefix_delimiter: ::std::option::Option<::std::string::String>,
   23     36   
}
   24     37   
impl StorageLensConfiguration {
   25     38   
    /// <p>A container for the Amazon S3 Storage Lens configuration ID.</p>
   26     39   
    pub fn id(&self) -> &str {
   27     40   
        use std::ops::Deref;
   28     41   
        self.id.deref()
   29     42   
    }
   30     43   
    /// <p>A container for all the account-level configurations of your S3 Storage Lens configuration.</p>
   31     44   
    pub fn account_level(&self) -> ::std::option::Option<&crate::types::AccountLevel> {
   32     45   
        self.account_level.as_ref()
   33     46   
    }
   34     47   
    /// <p>A container for what is included in this configuration. This container can only be valid if there is no <code>Exclude</code> container submitted, and it's not empty.</p>
   35     48   
    pub fn include(&self) -> ::std::option::Option<&crate::types::Include> {
   36     49   
        self.include.as_ref()
   37     50   
    }
   38     51   
    /// <p>A container for what is excluded in this configuration. This container can only be valid if there is no <code>Include</code> container submitted, and it's not empty.</p>
   39     52   
    pub fn exclude(&self) -> ::std::option::Option<&crate::types::Exclude> {
   40     53   
        self.exclude.as_ref()
   41     54   
    }
   42     55   
    /// <p>A container to specify the properties of your S3 Storage Lens metrics export including, the destination, schema and format.</p>
   43     56   
    pub fn data_export(&self) -> ::std::option::Option<&crate::types::StorageLensDataExport> {
   44     57   
        self.data_export.as_ref()
   45     58   
    }
          59  +
    /// <p>A container that configures your S3 Storage Lens expanded prefixes metrics report.</p>
          60  +
    pub fn expanded_prefixes_data_export(&self) -> ::std::option::Option<&crate::types::StorageLensExpandedPrefixesDataExport> {
          61  +
        self.expanded_prefixes_data_export.as_ref()
          62  +
    }
   46     63   
    /// <p>A container for whether the S3 Storage Lens configuration is enabled.</p>
   47     64   
    pub fn is_enabled(&self) -> bool {
   48     65   
        self.is_enabled
   49     66   
    }
   50     67   
    /// <p>A container for the Amazon Web Services organization for this S3 Storage Lens configuration.</p>
   51     68   
    pub fn aws_org(&self) -> ::std::option::Option<&crate::types::StorageLensAwsOrg> {
   52     69   
        self.aws_org.as_ref()
   53     70   
    }
   54     71   
    /// <p>The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This property is read-only and follows the following format: <code> arn:aws:s3:<i>us-east-1</i>:<i>example-account-id</i>:storage-lens/<i>your-dashboard-name</i> </code></p>
   55     72   
    pub fn storage_lens_arn(&self) -> ::std::option::Option<&str> {
   56     73   
        self.storage_lens_arn.as_deref()
   57     74   
    }
          75  +
    /// <p>A container for all prefix delimiters that are used for object keys in this S3 Storage Lens configuration. The prefix delimiters determine how S3 Storage Lens counts prefix depth, by separating the hierarchical levels in object keys.</p><note>
          76  +
    /// <ul>
          77  +
    /// <li>
          78  +
    /// <p>If either a prefix delimiter or existing delimiter is undefined, Amazon S3 uses the delimiter that’s defined.</p></li>
          79  +
    /// <li>
          80  +
    /// <p>If both the prefix delimiter and existing delimiter are undefined, S3 uses <code>/</code> as the default delimiter.</p></li>
          81  +
    /// <li>
          82  +
    /// <p>When custom delimiters are used, both the prefix delimiter and existing delimiter must specify the same special character. Otherwise, your request results in an error.</p></li>
          83  +
    /// </ul>
          84  +
    /// </note>
          85  +
    pub fn prefix_delimiter(&self) -> ::std::option::Option<&str> {
          86  +
        self.prefix_delimiter.as_deref()
          87  +
    }
   58     88   
}
   59     89   
impl StorageLensConfiguration {
   60     90   
    /// Creates a new builder-style object to manufacture [`StorageLensConfiguration`](crate::types::StorageLensConfiguration).
   61     91   
    pub fn builder() -> crate::types::builders::StorageLensConfigurationBuilder {
   62     92   
        crate::types::builders::StorageLensConfigurationBuilder::default()
   63     93   
    }
   64     94   
}
   65     95   
   66     96   
/// A builder for [`StorageLensConfiguration`](crate::types::StorageLensConfiguration).
   67     97   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   68     98   
#[non_exhaustive]
   69     99   
pub struct StorageLensConfigurationBuilder {
   70    100   
    pub(crate) id: ::std::option::Option<::std::string::String>,
   71    101   
    pub(crate) account_level: ::std::option::Option<crate::types::AccountLevel>,
   72    102   
    pub(crate) include: ::std::option::Option<crate::types::Include>,
   73    103   
    pub(crate) exclude: ::std::option::Option<crate::types::Exclude>,
   74    104   
    pub(crate) data_export: ::std::option::Option<crate::types::StorageLensDataExport>,
         105  +
    pub(crate) expanded_prefixes_data_export: ::std::option::Option<crate::types::StorageLensExpandedPrefixesDataExport>,
   75    106   
    pub(crate) is_enabled: ::std::option::Option<bool>,
   76    107   
    pub(crate) aws_org: ::std::option::Option<crate::types::StorageLensAwsOrg>,
   77    108   
    pub(crate) storage_lens_arn: ::std::option::Option<::std::string::String>,
         109  +
    pub(crate) prefix_delimiter: ::std::option::Option<::std::string::String>,
   78    110   
}
   79    111   
impl StorageLensConfigurationBuilder {
   80    112   
    /// <p>A container for the Amazon S3 Storage Lens configuration ID.</p>
   81    113   
    /// This field is required.
   82    114   
    pub fn id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   83    115   
        self.id = ::std::option::Option::Some(input.into());
   84    116   
        self
   85    117   
    }
   86    118   
    /// <p>A container for the Amazon S3 Storage Lens configuration ID.</p>
   87    119   
    pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
@@ -122,154 +215,304 @@
  142    174   
    }
  143    175   
    /// <p>A container to specify the properties of your S3 Storage Lens metrics export including, the destination, schema and format.</p>
  144    176   
    pub fn set_data_export(mut self, input: ::std::option::Option<crate::types::StorageLensDataExport>) -> Self {
  145    177   
        self.data_export = input;
  146    178   
        self
  147    179   
    }
  148    180   
    /// <p>A container to specify the properties of your S3 Storage Lens metrics export including, the destination, schema and format.</p>
  149    181   
    pub fn get_data_export(&self) -> &::std::option::Option<crate::types::StorageLensDataExport> {
  150    182   
        &self.data_export
  151    183   
    }
         184  +
    /// <p>A container that configures your S3 Storage Lens expanded prefixes metrics report.</p>
         185  +
    pub fn expanded_prefixes_data_export(mut self, input: crate::types::StorageLensExpandedPrefixesDataExport) -> Self {
         186  +
        self.expanded_prefixes_data_export = ::std::option::Option::Some(input);
         187  +
        self
         188  +
    }
         189  +
    /// <p>A container that configures your S3 Storage Lens expanded prefixes metrics report.</p>
         190  +
    pub fn set_expanded_prefixes_data_export(mut self, input: ::std::option::Option<crate::types::StorageLensExpandedPrefixesDataExport>) -> Self {
         191  +
        self.expanded_prefixes_data_export = input;
         192  +
        self
         193  +
    }
         194  +
    /// <p>A container that configures your S3 Storage Lens expanded prefixes metrics report.</p>
         195  +
    pub fn get_expanded_prefixes_data_export(&self) -> &::std::option::Option<crate::types::StorageLensExpandedPrefixesDataExport> {
         196  +
        &self.expanded_prefixes_data_export
         197  +
    }
  152    198   
    /// <p>A container for whether the S3 Storage Lens configuration is enabled.</p>
  153    199   
    /// This field is required.
  154    200   
    pub fn is_enabled(mut self, input: bool) -> Self {
  155    201   
        self.is_enabled = ::std::option::Option::Some(input);
  156    202   
        self
  157    203   
    }
  158    204   
    /// <p>A container for whether the S3 Storage Lens configuration is enabled.</p>
  159    205   
    pub fn set_is_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
  160    206   
        self.is_enabled = input;
  161    207   
        self
  162    208   
    }
  163    209   
    /// <p>A container for whether the S3 Storage Lens configuration is enabled.</p>
  164    210   
    pub fn get_is_enabled(&self) -> &::std::option::Option<bool> {
  165    211   
        &self.is_enabled
  166    212   
    }
  167    213   
    /// <p>A container for the Amazon Web Services organization for this S3 Storage Lens configuration.</p>
  168    214   
    pub fn aws_org(mut self, input: crate::types::StorageLensAwsOrg) -> Self {
  169    215   
        self.aws_org = ::std::option::Option::Some(input);
  170    216   
        self
  171    217   
    }
  172    218   
    /// <p>A container for the Amazon Web Services organization for this S3 Storage Lens configuration.</p>
  173    219   
    pub fn set_aws_org(mut self, input: ::std::option::Option<crate::types::StorageLensAwsOrg>) -> Self {
  174    220   
        self.aws_org = input;
  175    221   
        self
  176    222   
    }
  177    223   
    /// <p>A container for the Amazon Web Services organization for this S3 Storage Lens configuration.</p>
  178    224   
    pub fn get_aws_org(&self) -> &::std::option::Option<crate::types::StorageLensAwsOrg> {
  179    225   
        &self.aws_org
  180    226   
    }
  181    227   
    /// <p>The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This property is read-only and follows the following format: <code> arn:aws:s3:<i>us-east-1</i>:<i>example-account-id</i>:storage-lens/<i>your-dashboard-name</i> </code></p>
  182    228   
    pub fn storage_lens_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  183    229   
        self.storage_lens_arn = ::std::option::Option::Some(input.into());
  184    230   
        self
  185    231   
    }
  186    232   
    /// <p>The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This property is read-only and follows the following format: <code> arn:aws:s3:<i>us-east-1</i>:<i>example-account-id</i>:storage-lens/<i>your-dashboard-name</i> </code></p>
  187    233   
    pub fn set_storage_lens_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  188    234   
        self.storage_lens_arn = input;
  189    235   
        self
  190    236   
    }
  191    237   
    /// <p>The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This property is read-only and follows the following format: <code> arn:aws:s3:<i>us-east-1</i>:<i>example-account-id</i>:storage-lens/<i>your-dashboard-name</i> </code></p>
  192    238   
    pub fn get_storage_lens_arn(&self) -> &::std::option::Option<::std::string::String> {
  193    239   
        &self.storage_lens_arn
  194    240   
    }
         241  +
    /// <p>A container for all prefix delimiters that are used for object keys in this S3 Storage Lens configuration. The prefix delimiters determine how S3 Storage Lens counts prefix depth, by separating the hierarchical levels in object keys.</p><note>
         242  +
    /// <ul>
         243  +
    /// <li>
         244  +
    /// <p>If either a prefix delimiter or existing delimiter is undefined, Amazon S3 uses the delimiter that’s defined.</p></li>
         245  +
    /// <li>
         246  +
    /// <p>If both the prefix delimiter and existing delimiter are undefined, S3 uses <code>/</code> as the default delimiter.</p></li>
         247  +
    /// <li>
         248  +
    /// <p>When custom delimiters are used, both the prefix delimiter and existing delimiter must specify the same special character. Otherwise, your request results in an error.</p></li>
         249  +
    /// </ul>
         250  +
    /// </note>
         251  +
    pub fn prefix_delimiter(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         252  +
        self.prefix_delimiter = ::std::option::Option::Some(input.into());
         253  +
        self
         254  +
    }
         255  +
    /// <p>A container for all prefix delimiters that are used for object keys in this S3 Storage Lens configuration. The prefix delimiters determine how S3 Storage Lens counts prefix depth, by separating the hierarchical levels in object keys.</p><note>
         256  +
    /// <ul>
         257  +
    /// <li>
         258  +
    /// <p>If either a prefix delimiter or existing delimiter is undefined, Amazon S3 uses the delimiter that’s defined.</p></li>
         259  +
    /// <li>
         260  +
    /// <p>If both the prefix delimiter and existing delimiter are undefined, S3 uses <code>/</code> as the default delimiter.</p></li>
         261  +
    /// <li>
         262  +
    /// <p>When custom delimiters are used, both the prefix delimiter and existing delimiter must specify the same special character. Otherwise, your request results in an error.</p></li>
         263  +
    /// </ul>
         264  +
    /// </note>
         265  +
    pub fn set_prefix_delimiter(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         266  +
        self.prefix_delimiter = input;
         267  +
        self
         268  +
    }
         269  +
    /// <p>A container for all prefix delimiters that are used for object keys in this S3 Storage Lens configuration. The prefix delimiters determine how S3 Storage Lens counts prefix depth, by separating the hierarchical levels in object keys.</p><note>
         270  +
    /// <ul>
         271  +
    /// <li>
         272  +
    /// <p>If either a prefix delimiter or existing delimiter is undefined, Amazon S3 uses the delimiter that’s defined.</p></li>
         273  +
    /// <li>
         274  +
    /// <p>If both the prefix delimiter and existing delimiter are undefined, S3 uses <code>/</code> as the default delimiter.</p></li>
         275  +
    /// <li>
         276  +
    /// <p>When custom delimiters are used, both the prefix delimiter and existing delimiter must specify the same special character. Otherwise, your request results in an error.</p></li>
         277  +
    /// </ul>
         278  +
    /// </note>
         279  +
    pub fn get_prefix_delimiter(&self) -> &::std::option::Option<::std::string::String> {
         280  +
        &self.prefix_delimiter
         281  +
    }
  195    282   
    /// Consumes the builder and constructs a [`StorageLensConfiguration`](crate::types::StorageLensConfiguration).
  196    283   
    /// This method will fail if any of the following fields are not set:
  197    284   
    /// - [`id`](crate::types::builders::StorageLensConfigurationBuilder::id)
  198    285   
    pub fn build(self) -> ::std::result::Result<crate::types::StorageLensConfiguration, ::aws_smithy_types::error::operation::BuildError> {
  199    286   
        ::std::result::Result::Ok(crate::types::StorageLensConfiguration {
  200    287   
            id: self.id.ok_or_else(|| {
  201    288   
                ::aws_smithy_types::error::operation::BuildError::missing_field(
  202    289   
                    "id",
  203    290   
                    "id was not specified but it is required when building StorageLensConfiguration",
  204    291   
                )
  205    292   
            })?,
  206    293   
            account_level: self.account_level,
  207    294   
            include: self.include,
  208    295   
            exclude: self.exclude,
  209    296   
            data_export: self.data_export,
         297  +
            expanded_prefixes_data_export: self.expanded_prefixes_data_export,
  210    298   
            is_enabled: self.is_enabled.unwrap_or_default(),
  211    299   
            aws_org: self.aws_org,
  212    300   
            storage_lens_arn: self.storage_lens_arn,
         301  +
            prefix_delimiter: self.prefix_delimiter,
  213    302   
        })
  214    303   
    }
  215    304   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_storage_lens_data_export.rs

@@ -1,1 +82,104 @@
    3      3   
/// <p>A container to specify the properties of your S3 Storage Lens metrics export, including the destination, schema, and format.</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub struct StorageLensDataExport {
    7      7   
    /// <p>A container for the bucket where the S3 Storage Lens metrics export will be located.</p><note>
    8      8   
    /// <p>This bucket must be located in the same Region as the storage lens configuration.</p>
    9      9   
    /// </note>
   10     10   
    pub s3_bucket_destination: ::std::option::Option<crate::types::S3BucketDestination>,
   11     11   
    /// <p>A container for enabling Amazon CloudWatch publishing for S3 Storage Lens metrics.</p>
   12     12   
    pub cloud_watch_metrics: ::std::option::Option<crate::types::CloudWatchMetrics>,
          13  +
    /// <p>A container for configuring S3 Storage Lens data exports to read-only S3 table buckets.</p>
          14  +
    pub storage_lens_table_destination: ::std::option::Option<crate::types::StorageLensTableDestination>,
   13     15   
}
   14     16   
impl StorageLensDataExport {
   15     17   
    /// <p>A container for the bucket where the S3 Storage Lens metrics export will be located.</p><note>
   16     18   
    /// <p>This bucket must be located in the same Region as the storage lens configuration.</p>
   17     19   
    /// </note>
   18     20   
    pub fn s3_bucket_destination(&self) -> ::std::option::Option<&crate::types::S3BucketDestination> {
   19     21   
        self.s3_bucket_destination.as_ref()
   20     22   
    }
   21     23   
    /// <p>A container for enabling Amazon CloudWatch publishing for S3 Storage Lens metrics.</p>
   22     24   
    pub fn cloud_watch_metrics(&self) -> ::std::option::Option<&crate::types::CloudWatchMetrics> {
   23     25   
        self.cloud_watch_metrics.as_ref()
   24     26   
    }
          27  +
    /// <p>A container for configuring S3 Storage Lens data exports to read-only S3 table buckets.</p>
          28  +
    pub fn storage_lens_table_destination(&self) -> ::std::option::Option<&crate::types::StorageLensTableDestination> {
          29  +
        self.storage_lens_table_destination.as_ref()
          30  +
    }
   25     31   
}
   26     32   
impl StorageLensDataExport {
   27     33   
    /// Creates a new builder-style object to manufacture [`StorageLensDataExport`](crate::types::StorageLensDataExport).
   28     34   
    pub fn builder() -> crate::types::builders::StorageLensDataExportBuilder {
   29     35   
        crate::types::builders::StorageLensDataExportBuilder::default()
   30     36   
    }
   31     37   
}
   32     38   
   33     39   
/// A builder for [`StorageLensDataExport`](crate::types::StorageLensDataExport).
   34     40   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   35     41   
#[non_exhaustive]
   36     42   
pub struct StorageLensDataExportBuilder {
   37     43   
    pub(crate) s3_bucket_destination: ::std::option::Option<crate::types::S3BucketDestination>,
   38     44   
    pub(crate) cloud_watch_metrics: ::std::option::Option<crate::types::CloudWatchMetrics>,
          45  +
    pub(crate) storage_lens_table_destination: ::std::option::Option<crate::types::StorageLensTableDestination>,
   39     46   
}
   40     47   
impl StorageLensDataExportBuilder {
   41     48   
    /// <p>A container for the bucket where the S3 Storage Lens metrics export will be located.</p><note>
   42     49   
    /// <p>This bucket must be located in the same Region as the storage lens configuration.</p>
   43     50   
    /// </note>
   44     51   
    pub fn s3_bucket_destination(mut self, input: crate::types::S3BucketDestination) -> Self {
   45     52   
        self.s3_bucket_destination = ::std::option::Option::Some(input);
   46     53   
        self
   47     54   
    }
   48     55   
    /// <p>A container for the bucket where the S3 Storage Lens metrics export will be located.</p><note>
   49     56   
    /// <p>This bucket must be located in the same Region as the storage lens configuration.</p>
   50     57   
    /// </note>
   51     58   
    pub fn set_s3_bucket_destination(mut self, input: ::std::option::Option<crate::types::S3BucketDestination>) -> Self {
   52     59   
        self.s3_bucket_destination = input;
   53     60   
        self
   54     61   
    }
   55     62   
    /// <p>A container for the bucket where the S3 Storage Lens metrics export will be located.</p><note>
   56     63   
    /// <p>This bucket must be located in the same Region as the storage lens configuration.</p>
   57     64   
    /// </note>
   58     65   
    pub fn get_s3_bucket_destination(&self) -> &::std::option::Option<crate::types::S3BucketDestination> {
   59     66   
        &self.s3_bucket_destination
   60     67   
    }
   61     68   
    /// <p>A container for enabling Amazon CloudWatch publishing for S3 Storage Lens metrics.</p>
   62     69   
    pub fn cloud_watch_metrics(mut self, input: crate::types::CloudWatchMetrics) -> Self {
   63     70   
        self.cloud_watch_metrics = ::std::option::Option::Some(input);
   64     71   
        self
   65     72   
    }
   66     73   
    /// <p>A container for enabling Amazon CloudWatch publishing for S3 Storage Lens metrics.</p>
   67     74   
    pub fn set_cloud_watch_metrics(mut self, input: ::std::option::Option<crate::types::CloudWatchMetrics>) -> Self {
   68     75   
        self.cloud_watch_metrics = input;
   69     76   
        self
   70     77   
    }
   71     78   
    /// <p>A container for enabling Amazon CloudWatch publishing for S3 Storage Lens metrics.</p>
   72     79   
    pub fn get_cloud_watch_metrics(&self) -> &::std::option::Option<crate::types::CloudWatchMetrics> {
   73     80   
        &self.cloud_watch_metrics
   74     81   
    }
          82  +
    /// <p>A container for configuring S3 Storage Lens data exports to read-only S3 table buckets.</p>
          83  +
    pub fn storage_lens_table_destination(mut self, input: crate::types::StorageLensTableDestination) -> Self {
          84  +
        self.storage_lens_table_destination = ::std::option::Option::Some(input);
          85  +
        self
          86  +
    }
          87  +
    /// <p>A container for configuring S3 Storage Lens data exports to read-only S3 table buckets.</p>
          88  +
    pub fn set_storage_lens_table_destination(mut self, input: ::std::option::Option<crate::types::StorageLensTableDestination>) -> Self {
          89  +
        self.storage_lens_table_destination = input;
          90  +
        self
          91  +
    }
          92  +
    /// <p>A container for configuring S3 Storage Lens data exports to read-only S3 table buckets.</p>
          93  +
    pub fn get_storage_lens_table_destination(&self) -> &::std::option::Option<crate::types::StorageLensTableDestination> {
          94  +
        &self.storage_lens_table_destination
          95  +
    }
   75     96   
    /// Consumes the builder and constructs a [`StorageLensDataExport`](crate::types::StorageLensDataExport).
   76     97   
    pub fn build(self) -> crate::types::StorageLensDataExport {
   77     98   
        crate::types::StorageLensDataExport {
   78     99   
            s3_bucket_destination: self.s3_bucket_destination,
   79    100   
            cloud_watch_metrics: self.cloud_watch_metrics,
         101  +
            storage_lens_table_destination: self.storage_lens_table_destination,
   80    102   
        }
   81    103   
    }
   82    104   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/types/_storage_lens_expanded_prefixes_data_export.rs

@@ -0,1 +0,72 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>A container for your S3 Storage Lens expanded prefix metrics report configuration. Unlike the default Storage Lens metrics report, the enhanced prefix metrics report includes all S3 Storage Lens storage and activity data related to the full list of prefixes in your Storage Lens configuration.</p>
           4  +
#[non_exhaustive]
           5  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           6  +
pub struct StorageLensExpandedPrefixesDataExport {
           7  +
    /// <p>A container for the bucket where the Amazon S3 Storage Lens metrics export files are located.</p>
           8  +
    pub s3_bucket_destination: ::std::option::Option<crate::types::S3BucketDestination>,
           9  +
    /// <p>A container for the bucket where the S3 Storage Lens metric export files are located. At least one export destination must be specified.</p>
          10  +
    pub storage_lens_table_destination: ::std::option::Option<crate::types::StorageLensTableDestination>,
          11  +
}
          12  +
impl StorageLensExpandedPrefixesDataExport {
          13  +
    /// <p>A container for the bucket where the Amazon S3 Storage Lens metrics export files are located.</p>
          14  +
    pub fn s3_bucket_destination(&self) -> ::std::option::Option<&crate::types::S3BucketDestination> {
          15  +
        self.s3_bucket_destination.as_ref()
          16  +
    }
          17  +
    /// <p>A container for the bucket where the S3 Storage Lens metric export files are located. At least one export destination must be specified.</p>
          18  +
    pub fn storage_lens_table_destination(&self) -> ::std::option::Option<&crate::types::StorageLensTableDestination> {
          19  +
        self.storage_lens_table_destination.as_ref()
          20  +
    }
          21  +
}
          22  +
impl StorageLensExpandedPrefixesDataExport {
          23  +
    /// Creates a new builder-style object to manufacture [`StorageLensExpandedPrefixesDataExport`](crate::types::StorageLensExpandedPrefixesDataExport).
          24  +
    pub fn builder() -> crate::types::builders::StorageLensExpandedPrefixesDataExportBuilder {
          25  +
        crate::types::builders::StorageLensExpandedPrefixesDataExportBuilder::default()
          26  +
    }
          27  +
}
          28  +
          29  +
/// A builder for [`StorageLensExpandedPrefixesDataExport`](crate::types::StorageLensExpandedPrefixesDataExport).
          30  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          31  +
#[non_exhaustive]
          32  +
pub struct StorageLensExpandedPrefixesDataExportBuilder {
          33  +
    pub(crate) s3_bucket_destination: ::std::option::Option<crate::types::S3BucketDestination>,
          34  +
    pub(crate) storage_lens_table_destination: ::std::option::Option<crate::types::StorageLensTableDestination>,
          35  +
}
          36  +
impl StorageLensExpandedPrefixesDataExportBuilder {
          37  +
    /// <p>A container for the bucket where the Amazon S3 Storage Lens metrics export files are located.</p>
          38  +
    pub fn s3_bucket_destination(mut self, input: crate::types::S3BucketDestination) -> Self {
          39  +
        self.s3_bucket_destination = ::std::option::Option::Some(input);
          40  +
        self
          41  +
    }
          42  +
    /// <p>A container for the bucket where the Amazon S3 Storage Lens metrics export files are located.</p>
          43  +
    pub fn set_s3_bucket_destination(mut self, input: ::std::option::Option<crate::types::S3BucketDestination>) -> Self {
          44  +
        self.s3_bucket_destination = input;
          45  +
        self
          46  +
    }
          47  +
    /// <p>A container for the bucket where the Amazon S3 Storage Lens metrics export files are located.</p>
          48  +
    pub fn get_s3_bucket_destination(&self) -> &::std::option::Option<crate::types::S3BucketDestination> {
          49  +
        &self.s3_bucket_destination
          50  +
    }
          51  +
    /// <p>A container for the bucket where the S3 Storage Lens metric export files are located. At least one export destination must be specified.</p>
          52  +
    pub fn storage_lens_table_destination(mut self, input: crate::types::StorageLensTableDestination) -> Self {
          53  +
        self.storage_lens_table_destination = ::std::option::Option::Some(input);
          54  +
        self
          55  +
    }
          56  +
    /// <p>A container for the bucket where the S3 Storage Lens metric export files are located. At least one export destination must be specified.</p>
          57  +
    pub fn set_storage_lens_table_destination(mut self, input: ::std::option::Option<crate::types::StorageLensTableDestination>) -> Self {
          58  +
        self.storage_lens_table_destination = input;
          59  +
        self
          60  +
    }
          61  +
    /// <p>A container for the bucket where the S3 Storage Lens metric export files are located. At least one export destination must be specified.</p>
          62  +
    pub fn get_storage_lens_table_destination(&self) -> &::std::option::Option<crate::types::StorageLensTableDestination> {
          63  +
        &self.storage_lens_table_destination
          64  +
    }
          65  +
    /// Consumes the builder and constructs a [`StorageLensExpandedPrefixesDataExport`](crate::types::StorageLensExpandedPrefixesDataExport).
          66  +
    pub fn build(self) -> crate::types::StorageLensExpandedPrefixesDataExport {
          67  +
        crate::types::StorageLensExpandedPrefixesDataExport {
          68  +
            s3_bucket_destination: self.s3_bucket_destination,
          69  +
            storage_lens_table_destination: self.storage_lens_table_destination,
          70  +
        }
          71  +
    }
          72  +
}