AWS SDK

AWS SDK

rev. 718865afc5d3a851e695288d9ab877760ee4553c

Files changed:

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_advanced_performance_metrics.rs

@@ -0,1 +0,43 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub fn ser_advanced_performance_metrics(
           3  +
    input: &crate::types::AdvancedPerformanceMetrics,
           4  +
    writer: ::aws_smithy_xml::encode::ElWriter,
           5  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    #[allow(unused_mut)]
           7  +
    let mut scope = writer.finish();
           8  +
    if input.is_enabled {
           9  +
        let mut inner_writer = scope.start_el("IsEnabled").finish();
          10  +
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(input.is_enabled).encode());
          11  +
    }
          12  +
    scope.finish();
          13  +
    Ok(())
          14  +
}
          15  +
          16  +
#[allow(clippy::needless_question_mark)]
          17  +
pub fn de_advanced_performance_metrics(
          18  +
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
          19  +
) -> ::std::result::Result<crate::types::AdvancedPerformanceMetrics, ::aws_smithy_xml::decode::XmlDecodeError> {
          20  +
    #[allow(unused_mut)]
          21  +
    let mut builder = crate::types::AdvancedPerformanceMetrics::builder();
          22  +
    while let Some(mut tag) = decoder.next_tag() {
          23  +
        match tag.start_el() {
          24  +
            s if s.matches("IsEnabled") /* IsEnabled com.amazonaws.s3control#AdvancedPerformanceMetrics$IsEnabled */ =>  {
          25  +
                let var_1 =
          26  +
                    Some(
          27  +
                         {
          28  +
                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
          29  +
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          30  +
                            )
          31  +
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3control#IsEnabled`)"))
          32  +
                        }
          33  +
                        ?
          34  +
                    )
          35  +
                ;
          36  +
                builder = builder.set_is_enabled(var_1);
          37  +
            }
          38  +
            ,
          39  +
            _ => {}
          40  +
        }
          41  +
    }
          42  +
    Ok(builder.build())
          43  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_bucket_level.rs

@@ -1,1 +94,108 @@
   18     18   
        crate::protocol_serde::shape_advanced_cost_optimization_metrics::ser_advanced_cost_optimization_metrics(var_3, inner_writer)?
   19     19   
    }
   20     20   
    if let Some(var_4) = &input.advanced_data_protection_metrics {
   21     21   
        let inner_writer = scope.start_el("AdvancedDataProtectionMetrics");
   22     22   
        crate::protocol_serde::shape_advanced_data_protection_metrics::ser_advanced_data_protection_metrics(var_4, inner_writer)?
   23     23   
    }
   24     24   
    if let Some(var_5) = &input.detailed_status_codes_metrics {
   25     25   
        let inner_writer = scope.start_el("DetailedStatusCodesMetrics");
   26     26   
        crate::protocol_serde::shape_detailed_status_codes_metrics::ser_detailed_status_codes_metrics(var_5, inner_writer)?
   27     27   
    }
          28  +
    if let Some(var_6) = &input.advanced_performance_metrics {
          29  +
        let inner_writer = scope.start_el("AdvancedPerformanceMetrics");
          30  +
        crate::protocol_serde::shape_advanced_performance_metrics::ser_advanced_performance_metrics(var_6, inner_writer)?
          31  +
    }
   28     32   
    scope.finish();
   29     33   
    Ok(())
   30     34   
}
   31     35   
   32     36   
#[allow(clippy::needless_question_mark)]
   33     37   
pub fn de_bucket_level(
   34     38   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
   35     39   
) -> ::std::result::Result<crate::types::BucketLevel, ::aws_smithy_xml::decode::XmlDecodeError> {
   36     40   
    #[allow(unused_mut)]
   37     41   
    let mut builder = crate::types::BucketLevel::builder();
   38     42   
    while let Some(mut tag) = decoder.next_tag() {
   39     43   
        match tag.start_el() {
   40     44   
            s if s.matches("ActivityMetrics") /* ActivityMetrics com.amazonaws.s3control#BucketLevel$ActivityMetrics */ =>  {
   41         -
                let var_6 =
          45  +
                let var_7 =
   42     46   
                    Some(
   43     47   
                        crate::protocol_serde::shape_activity_metrics::de_activity_metrics(&mut tag)
   44     48   
                        ?
   45     49   
                    )
   46     50   
                ;
   47         -
                builder = builder.set_activity_metrics(var_6);
          51  +
                builder = builder.set_activity_metrics(var_7);
   48     52   
            }
   49     53   
            ,
   50     54   
            s if s.matches("PrefixLevel") /* PrefixLevel com.amazonaws.s3control#BucketLevel$PrefixLevel */ =>  {
   51         -
                let var_7 =
          55  +
                let var_8 =
   52     56   
                    Some(
   53     57   
                        crate::protocol_serde::shape_prefix_level::de_prefix_level(&mut tag)
   54     58   
                        ?
   55     59   
                    )
   56     60   
                ;
   57         -
                builder = builder.set_prefix_level(var_7);
          61  +
                builder = builder.set_prefix_level(var_8);
   58     62   
            }
   59     63   
            ,
   60     64   
            s if s.matches("AdvancedCostOptimizationMetrics") /* AdvancedCostOptimizationMetrics com.amazonaws.s3control#BucketLevel$AdvancedCostOptimizationMetrics */ =>  {
   61         -
                let var_8 =
          65  +
                let var_9 =
   62     66   
                    Some(
   63     67   
                        crate::protocol_serde::shape_advanced_cost_optimization_metrics::de_advanced_cost_optimization_metrics(&mut tag)
   64     68   
                        ?
   65     69   
                    )
   66     70   
                ;
   67         -
                builder = builder.set_advanced_cost_optimization_metrics(var_8);
          71  +
                builder = builder.set_advanced_cost_optimization_metrics(var_9);
   68     72   
            }
   69     73   
            ,
   70     74   
            s if s.matches("AdvancedDataProtectionMetrics") /* AdvancedDataProtectionMetrics com.amazonaws.s3control#BucketLevel$AdvancedDataProtectionMetrics */ =>  {
   71         -
                let var_9 =
          75  +
                let var_10 =
   72     76   
                    Some(
   73     77   
                        crate::protocol_serde::shape_advanced_data_protection_metrics::de_advanced_data_protection_metrics(&mut tag)
   74     78   
                        ?
   75     79   
                    )
   76     80   
                ;
   77         -
                builder = builder.set_advanced_data_protection_metrics(var_9);
          81  +
                builder = builder.set_advanced_data_protection_metrics(var_10);
   78     82   
            }
   79     83   
            ,
   80     84   
            s if s.matches("DetailedStatusCodesMetrics") /* DetailedStatusCodesMetrics com.amazonaws.s3control#BucketLevel$DetailedStatusCodesMetrics */ =>  {
   81         -
                let var_10 =
          85  +
                let var_11 =
   82     86   
                    Some(
   83     87   
                        crate::protocol_serde::shape_detailed_status_codes_metrics::de_detailed_status_codes_metrics(&mut tag)
   84     88   
                        ?
   85     89   
                    )
   86     90   
                ;
   87         -
                builder = builder.set_detailed_status_codes_metrics(var_10);
          91  +
                builder = builder.set_detailed_status_codes_metrics(var_11);
          92  +
            }
          93  +
            ,
          94  +
            s if s.matches("AdvancedPerformanceMetrics") /* AdvancedPerformanceMetrics com.amazonaws.s3control#BucketLevel$AdvancedPerformanceMetrics */ =>  {
          95  +
                let var_12 =
          96  +
                    Some(
          97  +
                        crate::protocol_serde::shape_advanced_performance_metrics::de_advanced_performance_metrics(&mut tag)
          98  +
                        ?
          99  +
                    )
         100  +
                ;
         101  +
                builder = builder.set_advanced_performance_metrics(var_12);
   88    102   
            }
   89    103   
            ,
   90    104   
            _ => {}
   91    105   
        }
   92    106   
    }
   93    107   
    Ok(builder.build())
   94    108   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_job_operation.rs

@@ -16,16 +162,176 @@
   36     36   
        let inner_writer = scope.start_el("S3PutObjectRetention");
   37     37   
        crate::protocol_serde::shape_s3_set_object_retention_operation::ser_s3_set_object_retention_operation(var_8, inner_writer)?
   38     38   
    }
   39     39   
    if let Some(_var_9) = &input.s3_replicate_object {
   40     40   
        scope.start_el("S3ReplicateObject").finish();
   41     41   
    }
   42     42   
    if let Some(var_10) = &input.s3_compute_object_checksum {
   43     43   
        let inner_writer = scope.start_el("S3ComputeObjectChecksum");
   44     44   
        crate::protocol_serde::shape_s3_compute_object_checksum_operation::ser_s3_compute_object_checksum_operation(var_10, inner_writer)?
   45     45   
    }
          46  +
    if let Some(var_11) = &input.s3_update_object_encryption {
          47  +
        let inner_writer = scope.start_el("S3UpdateObjectEncryption");
          48  +
        crate::protocol_serde::shape_s3_update_object_encryption_operation::ser_s3_update_object_encryption_operation(var_11, inner_writer)?
          49  +
    }
   46     50   
    scope.finish();
   47     51   
    Ok(())
   48     52   
}
   49     53   
   50     54   
#[allow(clippy::needless_question_mark)]
   51     55   
pub fn de_job_operation(
   52     56   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
   53     57   
) -> ::std::result::Result<crate::types::JobOperation, ::aws_smithy_xml::decode::XmlDecodeError> {
   54     58   
    #[allow(unused_mut)]
   55     59   
    let mut builder = crate::types::JobOperation::builder();
   56     60   
    while let Some(mut tag) = decoder.next_tag() {
   57     61   
        match tag.start_el() {
   58     62   
            s if s.matches("LambdaInvoke") /* LambdaInvoke com.amazonaws.s3control#JobOperation$LambdaInvoke */ =>  {
   59         -
                let var_11 =
          63  +
                let var_12 =
   60     64   
                    Some(
   61     65   
                        crate::protocol_serde::shape_lambda_invoke_operation::de_lambda_invoke_operation(&mut tag)
   62     66   
                        ?
   63     67   
                    )
   64     68   
                ;
   65         -
                builder = builder.set_lambda_invoke(var_11);
          69  +
                builder = builder.set_lambda_invoke(var_12);
   66     70   
            }
   67     71   
            ,
   68     72   
            s if s.matches("S3PutObjectCopy") /* S3PutObjectCopy com.amazonaws.s3control#JobOperation$S3PutObjectCopy */ =>  {
   69         -
                let var_12 =
          73  +
                let var_13 =
   70     74   
                    Some(
   71     75   
                        crate::protocol_serde::shape_s3_copy_object_operation::de_s3_copy_object_operation(&mut tag)
   72     76   
                        ?
   73     77   
                    )
   74     78   
                ;
   75         -
                builder = builder.set_s3_put_object_copy(var_12);
          79  +
                builder = builder.set_s3_put_object_copy(var_13);
   76     80   
            }
   77     81   
            ,
   78     82   
            s if s.matches("S3PutObjectAcl") /* S3PutObjectAcl com.amazonaws.s3control#JobOperation$S3PutObjectAcl */ =>  {
   79         -
                let var_13 =
          83  +
                let var_14 =
   80     84   
                    Some(
   81     85   
                        crate::protocol_serde::shape_s3_set_object_acl_operation::de_s3_set_object_acl_operation(&mut tag)
   82     86   
                        ?
   83     87   
                    )
   84     88   
                ;
   85         -
                builder = builder.set_s3_put_object_acl(var_13);
          89  +
                builder = builder.set_s3_put_object_acl(var_14);
   86     90   
            }
   87     91   
            ,
   88     92   
            s if s.matches("S3PutObjectTagging") /* S3PutObjectTagging com.amazonaws.s3control#JobOperation$S3PutObjectTagging */ =>  {
   89         -
                let var_14 =
          93  +
                let var_15 =
   90     94   
                    Some(
   91     95   
                        crate::protocol_serde::shape_s3_set_object_tagging_operation::de_s3_set_object_tagging_operation(&mut tag)
   92     96   
                        ?
   93     97   
                    )
   94     98   
                ;
   95         -
                builder = builder.set_s3_put_object_tagging(var_14);
          99  +
                builder = builder.set_s3_put_object_tagging(var_15);
   96    100   
            }
   97    101   
            ,
   98    102   
            s if s.matches("S3DeleteObjectTagging") /* S3DeleteObjectTagging com.amazonaws.s3control#JobOperation$S3DeleteObjectTagging */ =>  {
   99         -
                let var_15 =
         103  +
                let var_16 =
  100    104   
                    Some(
  101    105   
                        crate::protocol_serde::shape_s3_delete_object_tagging_operation::de_s3_delete_object_tagging_operation(&mut tag)
  102    106   
                        ?
  103    107   
                    )
  104    108   
                ;
  105         -
                builder = builder.set_s3_delete_object_tagging(var_15);
         109  +
                builder = builder.set_s3_delete_object_tagging(var_16);
  106    110   
            }
  107    111   
            ,
  108    112   
            s if s.matches("S3InitiateRestoreObject") /* S3InitiateRestoreObject com.amazonaws.s3control#JobOperation$S3InitiateRestoreObject */ =>  {
  109         -
                let var_16 =
         113  +
                let var_17 =
  110    114   
                    Some(
  111    115   
                        crate::protocol_serde::shape_s3_initiate_restore_object_operation::de_s3_initiate_restore_object_operation(&mut tag)
  112    116   
                        ?
  113    117   
                    )
  114    118   
                ;
  115         -
                builder = builder.set_s3_initiate_restore_object(var_16);
         119  +
                builder = builder.set_s3_initiate_restore_object(var_17);
  116    120   
            }
  117    121   
            ,
  118    122   
            s if s.matches("S3PutObjectLegalHold") /* S3PutObjectLegalHold com.amazonaws.s3control#JobOperation$S3PutObjectLegalHold */ =>  {
  119         -
                let var_17 =
         123  +
                let var_18 =
  120    124   
                    Some(
  121    125   
                        crate::protocol_serde::shape_s3_set_object_legal_hold_operation::de_s3_set_object_legal_hold_operation(&mut tag)
  122    126   
                        ?
  123    127   
                    )
  124    128   
                ;
  125         -
                builder = builder.set_s3_put_object_legal_hold(var_17);
         129  +
                builder = builder.set_s3_put_object_legal_hold(var_18);
  126    130   
            }
  127    131   
            ,
  128    132   
            s if s.matches("S3PutObjectRetention") /* S3PutObjectRetention com.amazonaws.s3control#JobOperation$S3PutObjectRetention */ =>  {
  129         -
                let var_18 =
         133  +
                let var_19 =
  130    134   
                    Some(
  131    135   
                        crate::protocol_serde::shape_s3_set_object_retention_operation::de_s3_set_object_retention_operation(&mut tag)
  132    136   
                        ?
  133    137   
                    )
  134    138   
                ;
  135         -
                builder = builder.set_s3_put_object_retention(var_18);
         139  +
                builder = builder.set_s3_put_object_retention(var_19);
  136    140   
            }
  137    141   
            ,
  138    142   
            s if s.matches("S3ReplicateObject") /* S3ReplicateObject com.amazonaws.s3control#JobOperation$S3ReplicateObject */ =>  {
  139         -
                let var_19 =
         143  +
                let var_20 =
  140    144   
                    Some(
  141    145   
                        crate::protocol_serde::shape_s3_replicate_object_operation::de_s3_replicate_object_operation(&mut tag)
  142    146   
                        ?
  143    147   
                    )
  144    148   
                ;
  145         -
                builder = builder.set_s3_replicate_object(var_19);
         149  +
                builder = builder.set_s3_replicate_object(var_20);
  146    150   
            }
  147    151   
            ,
  148    152   
            s if s.matches("S3ComputeObjectChecksum") /* S3ComputeObjectChecksum com.amazonaws.s3control#JobOperation$S3ComputeObjectChecksum */ =>  {
  149         -
                let var_20 =
         153  +
                let var_21 =
  150    154   
                    Some(
  151    155   
                        crate::protocol_serde::shape_s3_compute_object_checksum_operation::de_s3_compute_object_checksum_operation(&mut tag)
  152    156   
                        ?
  153    157   
                    )
  154    158   
                ;
  155         -
                builder = builder.set_s3_compute_object_checksum(var_20);
         159  +
                builder = builder.set_s3_compute_object_checksum(var_21);
         160  +
            }
         161  +
            ,
         162  +
            s if s.matches("S3UpdateObjectEncryption") /* S3UpdateObjectEncryption com.amazonaws.s3control#JobOperation$S3UpdateObjectEncryption */ =>  {
         163  +
                let var_22 =
         164  +
                    Some(
         165  +
                        crate::protocol_serde::shape_s3_update_object_encryption_operation::de_s3_update_object_encryption_operation(&mut tag)
         166  +
                        ?
         167  +
                    )
         168  +
                ;
         169  +
                builder = builder.set_s3_update_object_encryption(var_22);
  156    170   
            }
  157    171   
            ,
  158    172   
            _ => {}
  159    173   
        }
  160    174   
    }
  161    175   
    Ok(builder.build())
  162    176   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_object_encryption.rs

@@ -0,1 +0,38 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub fn ser_object_encryption(
           3  +
    input: &crate::types::ObjectEncryption,
           4  +
    writer: ::aws_smithy_xml::encode::ElWriter,
           5  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    #[allow(unused_mut)]
           7  +
    let mut scope = writer.finish();
           8  +
    if let Some(var_1) = &input.ssekms {
           9  +
        let inner_writer = scope.start_el("SSE-KMS");
          10  +
        crate::protocol_serde::shape_s3_update_object_encryption_ssekms::ser_s3_update_object_encryption_ssekms(var_1, inner_writer)?
          11  +
    }
          12  +
    scope.finish();
          13  +
    Ok(())
          14  +
}
          15  +
          16  +
#[allow(clippy::needless_question_mark)]
          17  +
pub fn de_object_encryption(
          18  +
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
          19  +
) -> ::std::result::Result<crate::types::ObjectEncryption, ::aws_smithy_xml::decode::XmlDecodeError> {
          20  +
    #[allow(unused_mut)]
          21  +
    let mut builder = crate::types::ObjectEncryption::builder();
          22  +
    while let Some(mut tag) = decoder.next_tag() {
          23  +
        match tag.start_el() {
          24  +
            s if s.matches("SSE-KMS") /* SSEKMS com.amazonaws.s3control#ObjectEncryption$SSEKMS */ =>  {
          25  +
                let var_2 =
          26  +
                    Some(
          27  +
                        crate::protocol_serde::shape_s3_update_object_encryption_ssekms::de_s3_update_object_encryption_ssekms(&mut tag)
          28  +
                        ?
          29  +
                    )
          30  +
                ;
          31  +
                builder = builder.set_ssekms(var_2);
          32  +
            }
          33  +
            ,
          34  +
            _ => {}
          35  +
        }
          36  +
    }
          37  +
    Ok(builder.build())
          38  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_s3_update_object_encryption_operation.rs

@@ -0,1 +0,38 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub fn ser_s3_update_object_encryption_operation(
           3  +
    input: &crate::types::S3UpdateObjectEncryptionOperation,
           4  +
    writer: ::aws_smithy_xml::encode::ElWriter,
           5  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    #[allow(unused_mut)]
           7  +
    let mut scope = writer.finish();
           8  +
    if let Some(var_1) = &input.object_encryption {
           9  +
        let inner_writer = scope.start_el("ObjectEncryption");
          10  +
        crate::protocol_serde::shape_object_encryption::ser_object_encryption(var_1, inner_writer)?
          11  +
    }
          12  +
    scope.finish();
          13  +
    Ok(())
          14  +
}
          15  +
          16  +
#[allow(clippy::needless_question_mark)]
          17  +
pub fn de_s3_update_object_encryption_operation(
          18  +
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
          19  +
) -> ::std::result::Result<crate::types::S3UpdateObjectEncryptionOperation, ::aws_smithy_xml::decode::XmlDecodeError> {
          20  +
    #[allow(unused_mut)]
          21  +
    let mut builder = crate::types::S3UpdateObjectEncryptionOperation::builder();
          22  +
    while let Some(mut tag) = decoder.next_tag() {
          23  +
        match tag.start_el() {
          24  +
            s if s.matches("ObjectEncryption") /* ObjectEncryption com.amazonaws.s3control#S3UpdateObjectEncryptionOperation$ObjectEncryption */ =>  {
          25  +
                let var_2 =
          26  +
                    Some(
          27  +
                        crate::protocol_serde::shape_object_encryption::de_object_encryption(&mut tag)
          28  +
                        ?
          29  +
                    )
          30  +
                ;
          31  +
                builder = builder.set_object_encryption(var_2);
          32  +
            }
          33  +
            ,
          34  +
            _ => {}
          35  +
        }
          36  +
    }
          37  +
    Ok(builder.build())
          38  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_s3_update_object_encryption_ssekms.rs

@@ -0,1 +0,62 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub fn ser_s3_update_object_encryption_ssekms(
           3  +
    input: &crate::types::S3UpdateObjectEncryptionSsekms,
           4  +
    writer: ::aws_smithy_xml::encode::ElWriter,
           5  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    #[allow(unused_mut)]
           7  +
    let mut scope = writer.finish();
           8  +
    {
           9  +
        let mut inner_writer = scope.start_el("KMSKeyArn").finish();
          10  +
        inner_writer.data(input.kms_key_arn.as_str());
          11  +
    }
          12  +
    if let Some(var_1) = &input.bucket_key_enabled {
          13  +
        let mut inner_writer = scope.start_el("BucketKeyEnabled").finish();
          14  +
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(*var_1).encode());
          15  +
    }
          16  +
    scope.finish();
          17  +
    Ok(())
          18  +
}
          19  +
          20  +
#[allow(clippy::needless_question_mark)]
          21  +
pub fn de_s3_update_object_encryption_ssekms(
          22  +
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
          23  +
) -> ::std::result::Result<crate::types::S3UpdateObjectEncryptionSsekms, ::aws_smithy_xml::decode::XmlDecodeError> {
          24  +
    #[allow(unused_mut)]
          25  +
    let mut builder = crate::types::S3UpdateObjectEncryptionSsekms::builder();
          26  +
    while let Some(mut tag) = decoder.next_tag() {
          27  +
        match tag.start_el() {
          28  +
            s if s.matches("KMSKeyArn") /* KMSKeyArn com.amazonaws.s3control#S3UpdateObjectEncryptionSSEKMS$KMSKeyArn */ =>  {
          29  +
                let var_2 =
          30  +
                    Some(
          31  +
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
          32  +
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          33  +
                            .into()
          34  +
                        )
          35  +
                        ?
          36  +
                    )
          37  +
                ;
          38  +
                builder = builder.set_kms_key_arn(var_2);
          39  +
            }
          40  +
            ,
          41  +
            s if s.matches("BucketKeyEnabled") /* BucketKeyEnabled com.amazonaws.s3control#S3UpdateObjectEncryptionSSEKMS$BucketKeyEnabled */ =>  {
          42  +
                let var_3 =
          43  +
                    Some(
          44  +
                         {
          45  +
                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
          46  +
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          47  +
                            )
          48  +
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3control#Boolean`)"))
          49  +
                        }
          50  +
                        ?
          51  +
                    )
          52  +
                ;
          53  +
                builder = builder.set_bucket_key_enabled(var_3);
          54  +
            }
          55  +
            ,
          56  +
            _ => {}
          57  +
        }
          58  +
    }
          59  +
    Ok(crate::serde_util::s3_update_object_encryption_ssekms_correct_errors(builder)
          60  +
        .build()
          61  +
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
          62  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_storage_lens_configuration.rs

@@ -1,1 +149,180 @@
   18     18   
        crate::protocol_serde::shape_include::ser_include(var_2, inner_writer)?
   19     19   
    }
   20     20   
    if let Some(var_3) = &input.exclude {
   21     21   
        let inner_writer = scope.start_el("Exclude");
   22     22   
        crate::protocol_serde::shape_exclude::ser_exclude(var_3, inner_writer)?
   23     23   
    }
   24     24   
    if let Some(var_4) = &input.data_export {
   25     25   
        let inner_writer = scope.start_el("DataExport");
   26     26   
        crate::protocol_serde::shape_storage_lens_data_export::ser_storage_lens_data_export(var_4, inner_writer)?
   27     27   
    }
          28  +
    if let Some(var_5) = &input.expanded_prefixes_data_export {
          29  +
        let inner_writer = scope.start_el("ExpandedPrefixesDataExport");
          30  +
        crate::protocol_serde::shape_storage_lens_expanded_prefixes_data_export::ser_storage_lens_expanded_prefixes_data_export(var_5, inner_writer)?
          31  +
    }
   28     32   
    {
   29     33   
        let mut inner_writer = scope.start_el("IsEnabled").finish();
   30     34   
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(input.is_enabled).encode());
   31     35   
    }
   32         -
    if let Some(var_5) = &input.aws_org {
          36  +
    if let Some(var_6) = &input.aws_org {
   33     37   
        let inner_writer = scope.start_el("AwsOrg");
   34         -
        crate::protocol_serde::shape_storage_lens_aws_org::ser_storage_lens_aws_org(var_5, inner_writer)?
          38  +
        crate::protocol_serde::shape_storage_lens_aws_org::ser_storage_lens_aws_org(var_6, inner_writer)?
   35     39   
    }
   36         -
    if let Some(var_6) = &input.storage_lens_arn {
          40  +
    if let Some(var_7) = &input.storage_lens_arn {
   37     41   
        let mut inner_writer = scope.start_el("StorageLensArn").finish();
   38         -
        inner_writer.data(var_6.as_str());
          42  +
        inner_writer.data(var_7.as_str());
          43  +
    }
          44  +
    if let Some(var_8) = &input.prefix_delimiter {
          45  +
        let mut inner_writer = scope.start_el("PrefixDelimiter").finish();
          46  +
        inner_writer.data(var_8.as_str());
   39     47   
    }
   40     48   
    scope.finish();
   41     49   
    Ok(())
   42     50   
}
   43     51   
   44     52   
#[allow(clippy::needless_question_mark)]
   45     53   
pub fn de_storage_lens_configuration(
   46     54   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
   47     55   
) -> ::std::result::Result<crate::types::StorageLensConfiguration, ::aws_smithy_xml::decode::XmlDecodeError> {
   48     56   
    #[allow(unused_mut)]
   49     57   
    let mut builder = crate::types::StorageLensConfiguration::builder();
   50     58   
    while let Some(mut tag) = decoder.next_tag() {
   51     59   
        match tag.start_el() {
   52     60   
            s if s.matches("Id") /* Id com.amazonaws.s3control#StorageLensConfiguration$Id */ =>  {
   53         -
                let var_7 =
          61  +
                let var_9 =
   54     62   
                    Some(
   55     63   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
   56     64   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
   57     65   
                            .into()
   58     66   
                        )
   59     67   
                        ?
   60     68   
                    )
   61     69   
                ;
   62         -
                builder = builder.set_id(var_7);
          70  +
                builder = builder.set_id(var_9);
   63     71   
            }
   64     72   
            ,
   65     73   
            s if s.matches("AccountLevel") /* AccountLevel com.amazonaws.s3control#StorageLensConfiguration$AccountLevel */ =>  {
   66         -
                let var_8 =
          74  +
                let var_10 =
   67     75   
                    Some(
   68     76   
                        crate::protocol_serde::shape_account_level::de_account_level(&mut tag)
   69     77   
                        ?
   70     78   
                    )
   71     79   
                ;
   72         -
                builder = builder.set_account_level(var_8);
          80  +
                builder = builder.set_account_level(var_10);
   73     81   
            }
   74     82   
            ,
   75     83   
            s if s.matches("Include") /* Include com.amazonaws.s3control#StorageLensConfiguration$Include */ =>  {
   76         -
                let var_9 =
          84  +
                let var_11 =
   77     85   
                    Some(
   78     86   
                        crate::protocol_serde::shape_include::de_include(&mut tag)
   79     87   
                        ?
   80     88   
                    )
   81     89   
                ;
   82         -
                builder = builder.set_include(var_9);
          90  +
                builder = builder.set_include(var_11);
   83     91   
            }
   84     92   
            ,
   85     93   
            s if s.matches("Exclude") /* Exclude com.amazonaws.s3control#StorageLensConfiguration$Exclude */ =>  {
   86         -
                let var_10 =
          94  +
                let var_12 =
   87     95   
                    Some(
   88     96   
                        crate::protocol_serde::shape_exclude::de_exclude(&mut tag)
   89     97   
                        ?
   90     98   
                    )
   91     99   
                ;
   92         -
                builder = builder.set_exclude(var_10);
         100  +
                builder = builder.set_exclude(var_12);
   93    101   
            }
   94    102   
            ,
   95    103   
            s if s.matches("DataExport") /* DataExport com.amazonaws.s3control#StorageLensConfiguration$DataExport */ =>  {
   96         -
                let var_11 =
         104  +
                let var_13 =
   97    105   
                    Some(
   98    106   
                        crate::protocol_serde::shape_storage_lens_data_export::de_storage_lens_data_export(&mut tag)
   99    107   
                        ?
  100    108   
                    )
  101    109   
                ;
  102         -
                builder = builder.set_data_export(var_11);
         110  +
                builder = builder.set_data_export(var_13);
         111  +
            }
         112  +
            ,
         113  +
            s if s.matches("ExpandedPrefixesDataExport") /* ExpandedPrefixesDataExport com.amazonaws.s3control#StorageLensConfiguration$ExpandedPrefixesDataExport */ =>  {
         114  +
                let var_14 =
         115  +
                    Some(
         116  +
                        crate::protocol_serde::shape_storage_lens_expanded_prefixes_data_export::de_storage_lens_expanded_prefixes_data_export(&mut tag)
         117  +
                        ?
         118  +
                    )
         119  +
                ;
         120  +
                builder = builder.set_expanded_prefixes_data_export(var_14);
  103    121   
            }
  104    122   
            ,
  105    123   
            s if s.matches("IsEnabled") /* IsEnabled com.amazonaws.s3control#StorageLensConfiguration$IsEnabled */ =>  {
  106         -
                let var_12 =
         124  +
                let var_15 =
  107    125   
                    Some(
  108    126   
                         {
  109    127   
                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
  110    128   
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  111    129   
                            )
  112    130   
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3control#IsEnabled`)"))
  113    131   
                        }
  114    132   
                        ?
  115    133   
                    )
  116    134   
                ;
  117         -
                builder = builder.set_is_enabled(var_12);
         135  +
                builder = builder.set_is_enabled(var_15);
  118    136   
            }
  119    137   
            ,
  120    138   
            s if s.matches("AwsOrg") /* AwsOrg com.amazonaws.s3control#StorageLensConfiguration$AwsOrg */ =>  {
  121         -
                let var_13 =
         139  +
                let var_16 =
  122    140   
                    Some(
  123    141   
                        crate::protocol_serde::shape_storage_lens_aws_org::de_storage_lens_aws_org(&mut tag)
  124    142   
                        ?
  125    143   
                    )
  126    144   
                ;
  127         -
                builder = builder.set_aws_org(var_13);
         145  +
                builder = builder.set_aws_org(var_16);
  128    146   
            }
  129    147   
            ,
  130    148   
            s if s.matches("StorageLensArn") /* StorageLensArn com.amazonaws.s3control#StorageLensConfiguration$StorageLensArn */ =>  {
  131         -
                let var_14 =
         149  +
                let var_17 =
         150  +
                    Some(
         151  +
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
         152  +
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
         153  +
                            .into()
         154  +
                        )
         155  +
                        ?
         156  +
                    )
         157  +
                ;
         158  +
                builder = builder.set_storage_lens_arn(var_17);
         159  +
            }
         160  +
            ,
         161  +
            s if s.matches("PrefixDelimiter") /* PrefixDelimiter com.amazonaws.s3control#StorageLensConfiguration$PrefixDelimiter */ =>  {
         162  +
                let var_18 =
  132    163   
                    Some(
  133    164   
                        Result::<::std::string::String, ::aws_smithy_xml::decode::XmlDecodeError>::Ok(
  134    165   
                            ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
  135    166   
                            .into()
  136    167   
                        )
  137    168   
                        ?
  138    169   
                    )
  139    170   
                ;
  140         -
                builder = builder.set_storage_lens_arn(var_14);
         171  +
                builder = builder.set_prefix_delimiter(var_18);
  141    172   
            }
  142    173   
            ,
  143    174   
            _ => {}
  144    175   
        }
  145    176   
    }
  146    177   
    Ok(crate::serde_util::storage_lens_configuration_correct_errors(builder)
  147    178   
        .build()
  148    179   
        .map_err(|_| ::aws_smithy_xml::decode::XmlDecodeError::custom("missing field"))?)
  149    180   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_storage_lens_data_export.rs

@@ -1,1 +52,66 @@
    6      6   
    #[allow(unused_mut)]
    7      7   
    let mut scope = writer.finish();
    8      8   
    if let Some(var_1) = &input.s3_bucket_destination {
    9      9   
        let inner_writer = scope.start_el("S3BucketDestination");
   10     10   
        crate::protocol_serde::shape_s3_bucket_destination::ser_s3_bucket_destination(var_1, inner_writer)?
   11     11   
    }
   12     12   
    if let Some(var_2) = &input.cloud_watch_metrics {
   13     13   
        let inner_writer = scope.start_el("CloudWatchMetrics");
   14     14   
        crate::protocol_serde::shape_cloud_watch_metrics::ser_cloud_watch_metrics(var_2, inner_writer)?
   15     15   
    }
          16  +
    if let Some(var_3) = &input.storage_lens_table_destination {
          17  +
        let inner_writer = scope.start_el("StorageLensTableDestination");
          18  +
        crate::protocol_serde::shape_storage_lens_table_destination::ser_storage_lens_table_destination(var_3, inner_writer)?
          19  +
    }
   16     20   
    scope.finish();
   17     21   
    Ok(())
   18     22   
}
   19     23   
   20     24   
#[allow(clippy::needless_question_mark)]
   21     25   
pub fn de_storage_lens_data_export(
   22     26   
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
   23     27   
) -> ::std::result::Result<crate::types::StorageLensDataExport, ::aws_smithy_xml::decode::XmlDecodeError> {
   24     28   
    #[allow(unused_mut)]
   25     29   
    let mut builder = crate::types::StorageLensDataExport::builder();
   26     30   
    while let Some(mut tag) = decoder.next_tag() {
   27     31   
        match tag.start_el() {
   28     32   
            s if s.matches("S3BucketDestination") /* S3BucketDestination com.amazonaws.s3control#StorageLensDataExport$S3BucketDestination */ =>  {
   29         -
                let var_3 =
          33  +
                let var_4 =
   30     34   
                    Some(
   31     35   
                        crate::protocol_serde::shape_s3_bucket_destination::de_s3_bucket_destination(&mut tag)
   32     36   
                        ?
   33     37   
                    )
   34     38   
                ;
   35         -
                builder = builder.set_s3_bucket_destination(var_3);
          39  +
                builder = builder.set_s3_bucket_destination(var_4);
   36     40   
            }
   37     41   
            ,
   38     42   
            s if s.matches("CloudWatchMetrics") /* CloudWatchMetrics com.amazonaws.s3control#StorageLensDataExport$CloudWatchMetrics */ =>  {
   39         -
                let var_4 =
          43  +
                let var_5 =
   40     44   
                    Some(
   41     45   
                        crate::protocol_serde::shape_cloud_watch_metrics::de_cloud_watch_metrics(&mut tag)
   42     46   
                        ?
   43     47   
                    )
   44     48   
                ;
   45         -
                builder = builder.set_cloud_watch_metrics(var_4);
          49  +
                builder = builder.set_cloud_watch_metrics(var_5);
          50  +
            }
          51  +
            ,
          52  +
            s if s.matches("StorageLensTableDestination") /* StorageLensTableDestination com.amazonaws.s3control#StorageLensDataExport$StorageLensTableDestination */ =>  {
          53  +
                let var_6 =
          54  +
                    Some(
          55  +
                        crate::protocol_serde::shape_storage_lens_table_destination::de_storage_lens_table_destination(&mut tag)
          56  +
                        ?
          57  +
                    )
          58  +
                ;
          59  +
                builder = builder.set_storage_lens_table_destination(var_6);
   46     60   
            }
   47     61   
            ,
   48     62   
            _ => {}
   49     63   
        }
   50     64   
    }
   51     65   
    Ok(builder.build())
   52     66   
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_storage_lens_expanded_prefixes_data_export.rs

@@ -0,1 +0,52 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub fn ser_storage_lens_expanded_prefixes_data_export(
           3  +
    input: &crate::types::StorageLensExpandedPrefixesDataExport,
           4  +
    writer: ::aws_smithy_xml::encode::ElWriter,
           5  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    #[allow(unused_mut)]
           7  +
    let mut scope = writer.finish();
           8  +
    if let Some(var_1) = &input.s3_bucket_destination {
           9  +
        let inner_writer = scope.start_el("S3BucketDestination");
          10  +
        crate::protocol_serde::shape_s3_bucket_destination::ser_s3_bucket_destination(var_1, inner_writer)?
          11  +
    }
          12  +
    if let Some(var_2) = &input.storage_lens_table_destination {
          13  +
        let inner_writer = scope.start_el("StorageLensTableDestination");
          14  +
        crate::protocol_serde::shape_storage_lens_table_destination::ser_storage_lens_table_destination(var_2, inner_writer)?
          15  +
    }
          16  +
    scope.finish();
          17  +
    Ok(())
          18  +
}
          19  +
          20  +
#[allow(clippy::needless_question_mark)]
          21  +
pub fn de_storage_lens_expanded_prefixes_data_export(
          22  +
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
          23  +
) -> ::std::result::Result<crate::types::StorageLensExpandedPrefixesDataExport, ::aws_smithy_xml::decode::XmlDecodeError> {
          24  +
    #[allow(unused_mut)]
          25  +
    let mut builder = crate::types::StorageLensExpandedPrefixesDataExport::builder();
          26  +
    while let Some(mut tag) = decoder.next_tag() {
          27  +
        match tag.start_el() {
          28  +
            s if s.matches("S3BucketDestination") /* S3BucketDestination com.amazonaws.s3control#StorageLensExpandedPrefixesDataExport$S3BucketDestination */ =>  {
          29  +
                let var_3 =
          30  +
                    Some(
          31  +
                        crate::protocol_serde::shape_s3_bucket_destination::de_s3_bucket_destination(&mut tag)
          32  +
                        ?
          33  +
                    )
          34  +
                ;
          35  +
                builder = builder.set_s3_bucket_destination(var_3);
          36  +
            }
          37  +
            ,
          38  +
            s if s.matches("StorageLensTableDestination") /* StorageLensTableDestination com.amazonaws.s3control#StorageLensExpandedPrefixesDataExport$StorageLensTableDestination */ =>  {
          39  +
                let var_4 =
          40  +
                    Some(
          41  +
                        crate::protocol_serde::shape_storage_lens_table_destination::de_storage_lens_table_destination(&mut tag)
          42  +
                        ?
          43  +
                    )
          44  +
                ;
          45  +
                builder = builder.set_storage_lens_table_destination(var_4);
          46  +
            }
          47  +
            ,
          48  +
            _ => {}
          49  +
        }
          50  +
    }
          51  +
    Ok(builder.build())
          52  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/protocol_serde/shape_storage_lens_table_destination.rs

@@ -0,1 +0,57 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
pub fn ser_storage_lens_table_destination(
           3  +
    input: &crate::types::StorageLensTableDestination,
           4  +
    writer: ::aws_smithy_xml::encode::ElWriter,
           5  +
) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
           6  +
    #[allow(unused_mut)]
           7  +
    let mut scope = writer.finish();
           8  +
    {
           9  +
        let mut inner_writer = scope.start_el("IsEnabled").finish();
          10  +
        inner_writer.data(::aws_smithy_types::primitive::Encoder::from(input.is_enabled).encode());
          11  +
    }
          12  +
    if let Some(var_1) = &input.encryption {
          13  +
        let inner_writer = scope.start_el("Encryption");
          14  +
        crate::protocol_serde::shape_storage_lens_data_export_encryption::ser_storage_lens_data_export_encryption(var_1, inner_writer)?
          15  +
    }
          16  +
    scope.finish();
          17  +
    Ok(())
          18  +
}
          19  +
          20  +
#[allow(clippy::needless_question_mark)]
          21  +
pub fn de_storage_lens_table_destination(
          22  +
    decoder: &mut ::aws_smithy_xml::decode::ScopedDecoder,
          23  +
) -> ::std::result::Result<crate::types::StorageLensTableDestination, ::aws_smithy_xml::decode::XmlDecodeError> {
          24  +
    #[allow(unused_mut)]
          25  +
    let mut builder = crate::types::StorageLensTableDestination::builder();
          26  +
    while let Some(mut tag) = decoder.next_tag() {
          27  +
        match tag.start_el() {
          28  +
            s if s.matches("IsEnabled") /* IsEnabled com.amazonaws.s3control#StorageLensTableDestination$IsEnabled */ =>  {
          29  +
                let var_2 =
          30  +
                    Some(
          31  +
                         {
          32  +
                            <bool as ::aws_smithy_types::primitive::Parse>::parse_smithy_primitive(
          33  +
                                ::aws_smithy_xml::decode::try_data(&mut tag)?.as_ref()
          34  +
                            )
          35  +
                            .map_err(|_|::aws_smithy_xml::decode::XmlDecodeError::custom("expected (boolean: `com.amazonaws.s3control#IsEnabled`)"))
          36  +
                        }
          37  +
                        ?
          38  +
                    )
          39  +
                ;
          40  +
                builder = builder.set_is_enabled(var_2);
          41  +
            }
          42  +
            ,
          43  +
            s if s.matches("Encryption") /* Encryption com.amazonaws.s3control#StorageLensTableDestination$Encryption */ =>  {
          44  +
                let var_3 =
          45  +
                    Some(
          46  +
                        crate::protocol_serde::shape_storage_lens_data_export_encryption::de_storage_lens_data_export_encryption(&mut tag)
          47  +
                        ?
          48  +
                    )
          49  +
                ;
          50  +
                builder = builder.set_encryption(var_3);
          51  +
            }
          52  +
            ,
          53  +
            _ => {}
          54  +
        }
          55  +
    }
          56  +
    Ok(crate::serde_util::storage_lens_table_destination_correct_errors(builder).build())
          57  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/src/serde_util.rs

@@ -411,411 +470,479 @@
  431    431   
  432    432   
pub(crate) fn s3_object_lock_legal_hold_correct_errors(
  433    433   
    mut builder: crate::types::builders::S3ObjectLockLegalHoldBuilder,
  434    434   
) -> crate::types::builders::S3ObjectLockLegalHoldBuilder {
  435    435   
    if builder.status.is_none() {
  436    436   
        builder.status = "no value was set".parse::<crate::types::S3ObjectLockLegalHoldStatus>().ok()
  437    437   
    }
  438    438   
    builder
  439    439   
}
  440    440   
         441  +
pub(crate) fn storage_lens_table_destination_correct_errors(
         442  +
    mut builder: crate::types::builders::StorageLensTableDestinationBuilder,
         443  +
) -> crate::types::builders::StorageLensTableDestinationBuilder {
         444  +
    if builder.is_enabled.is_none() {
         445  +
        builder.is_enabled = Some(Default::default())
         446  +
    }
         447  +
    builder
         448  +
}
         449  +
  441    450   
pub(crate) fn access_control_translation_correct_errors(
  442    451   
    mut builder: crate::types::builders::AccessControlTranslationBuilder,
  443    452   
) -> crate::types::builders::AccessControlTranslationBuilder {
  444    453   
    if builder.owner.is_none() {
  445    454   
        builder.owner = "no value was set".parse::<crate::types::OwnerOverride>().ok()
  446    455   
    }
  447    456   
    builder
  448    457   
}
  449    458   
  450    459   
pub(crate) fn aws_lambda_transformation_correct_errors(
@@ -489,498 +542,560 @@
  509    518   
) -> crate::types::builders::S3AccessControlListBuilder {
  510    519   
    if builder.owner.is_none() {
  511    520   
        builder.owner = {
  512    521   
            let builder = crate::types::builders::S3ObjectOwnerBuilder::default();
  513    522   
            Some(builder.build())
  514    523   
        }
  515    524   
    }
  516    525   
    builder
  517    526   
}
  518    527   
         528  +
pub(crate) fn s3_update_object_encryption_ssekms_correct_errors(
         529  +
    mut builder: crate::types::builders::S3UpdateObjectEncryptionSsekmsBuilder,
         530  +
) -> crate::types::builders::S3UpdateObjectEncryptionSsekmsBuilder {
         531  +
    if builder.kms_key_arn.is_none() {
         532  +
        builder.kms_key_arn = Some(Default::default())
         533  +
    }
         534  +
    builder
         535  +
}
         536  +
  519    537   
pub(crate) fn sse_kms_encrypted_objects_correct_errors(
  520    538   
    mut builder: crate::types::builders::SseKmsEncryptedObjectsBuilder,
  521    539   
) -> crate::types::builders::SseKmsEncryptedObjectsBuilder {
  522    540   
    if builder.status.is_none() {
  523    541   
        builder.status = "no value was set".parse::<crate::types::SseKmsEncryptedObjectsStatus>().ok()
  524    542   
    }
  525    543   
    builder
  526    544   
}
  527    545   
  528    546   
pub(crate) fn ssekms_correct_errors(mut builder: crate::types::builders::SsekmsBuilder) -> crate::types::builders::SsekmsBuilder {

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

@@ -72,72 +299,311 @@
   92     92   
pub use crate::types::_s3_initiate_restore_object_operation::S3InitiateRestoreObjectOperation;
   93     93   
   94     94   
pub use crate::types::_s3_set_object_legal_hold_operation::S3SetObjectLegalHoldOperation;
   95     95   
   96     96   
pub use crate::types::_s3_set_object_retention_operation::S3SetObjectRetentionOperation;
   97     97   
   98     98   
pub use crate::types::_s3_replicate_object_operation::S3ReplicateObjectOperation;
   99     99   
  100    100   
pub use crate::types::_s3_compute_object_checksum_operation::S3ComputeObjectChecksumOperation;
  101    101   
         102  +
pub use crate::types::_s3_update_object_encryption_operation::S3UpdateObjectEncryptionOperation;
         103  +
  102    104   
pub use crate::types::_job_report_format::JobReportFormat;
  103    105   
  104    106   
pub use crate::types::_job_report_scope::JobReportScope;
  105    107   
  106    108   
pub use crate::types::_job_manifest_spec::JobManifestSpec;
  107    109   
  108    110   
pub use crate::types::_job_manifest_location::JobManifestLocation;
  109    111   
  110    112   
pub use crate::types::_s3_tag::S3Tag;
  111    113   
  112    114   
pub use crate::types::_s3_job_manifest_generator::S3JobManifestGenerator;
  113    115   
  114    116   
pub use crate::types::_storage_lens_group_filter::StorageLensGroupFilter;
  115    117   
  116    118   
pub use crate::types::_job_progress_summary::JobProgressSummary;
  117    119   
  118    120   
pub use crate::types::_s3_generated_manifest_descriptor::S3GeneratedManifestDescriptor;
  119    121   
  120    122   
pub use crate::types::_async_operation_name::AsyncOperationName;
  121    123   
  122    124   
pub use crate::types::_async_request_parameters::AsyncRequestParameters;
  123    125   
  124    126   
pub use crate::types::_async_response_details::AsyncResponseDetails;
  125    127   
  126    128   
pub use crate::types::_lifecycle_rule::LifecycleRule;
  127    129   
  128    130   
pub use crate::types::_multi_region_access_point_status::MultiRegionAccessPointStatus;
  129    131   
  130    132   
pub use crate::types::_established_multi_region_access_point_policy::EstablishedMultiRegionAccessPointPolicy;
  131    133   
  132    134   
pub use crate::types::_proposed_multi_region_access_point_policy::ProposedMultiRegionAccessPointPolicy;
  133    135   
  134    136   
pub use crate::types::_multi_region_access_point_route::MultiRegionAccessPointRoute;
  135    137   
  136    138   
pub use crate::types::_account_level::AccountLevel;
  137    139   
  138    140   
pub use crate::types::_include::Include;
  139    141   
  140    142   
pub use crate::types::_exclude::Exclude;
  141    143   
  142    144   
pub use crate::types::_storage_lens_data_export::StorageLensDataExport;
  143    145   
         146  +
pub use crate::types::_storage_lens_expanded_prefixes_data_export::StorageLensExpandedPrefixesDataExport;
         147  +
  144    148   
pub use crate::types::_storage_lens_aws_org::StorageLensAwsOrg;
  145    149   
  146    150   
pub use crate::types::_storage_lens_tag::StorageLensTag;
  147    151   
  148    152   
pub use crate::types::_list_access_grant_entry::ListAccessGrantEntry;
  149    153   
  150    154   
pub use crate::types::_list_access_grants_instance_entry::ListAccessGrantsInstanceEntry;
  151    155   
  152    156   
pub use crate::types::_list_access_grants_locations_entry::ListAccessGrantsLocationsEntry;
  153    157   
  154    158   
pub use crate::types::_access_point::AccessPoint;
  155    159   
  156    160   
pub use crate::types::_object_lambda_access_point::ObjectLambdaAccessPoint;
  157    161   
  158    162   
pub use crate::types::_list_caller_access_grants_entry::ListCallerAccessGrantsEntry;
  159    163   
  160    164   
pub use crate::types::_job_list_descriptor::JobListDescriptor;
  161    165   
  162    166   
pub use crate::types::_regional_bucket::RegionalBucket;
  163    167   
  164    168   
pub use crate::types::_list_storage_lens_configuration_entry::ListStorageLensConfigurationEntry;
  165    169   
  166    170   
pub use crate::types::_list_storage_lens_group_entry::ListStorageLensGroupEntry;
  167    171   
  168    172   
pub use crate::types::_mfa_delete::MfaDelete;
  169    173   
  170    174   
pub use crate::types::_scope_permission::ScopePermission;
  171    175   
  172    176   
pub use crate::types::_object_lambda_allowed_feature::ObjectLambdaAllowedFeature;
  173    177   
  174    178   
pub use crate::types::_object_lambda_transformation_configuration::ObjectLambdaTransformationConfiguration;
  175    179   
  176    180   
pub use crate::types::_s3_canned_access_control_list::S3CannedAccessControlList;
  177    181   
  178    182   
pub use crate::types::_s3_metadata_directive::S3MetadataDirective;
  179    183   
  180    184   
pub use crate::types::_s3_object_metadata::S3ObjectMetadata;
  181    185   
  182    186   
pub use crate::types::_s3_storage_class::S3StorageClass;
  183    187   
  184    188   
pub use crate::types::_s3_object_lock_legal_hold_status::S3ObjectLockLegalHoldStatus;
  185    189   
  186    190   
pub use crate::types::_s3_object_lock_mode::S3ObjectLockMode;
  187    191   
  188    192   
pub use crate::types::_s3_checksum_algorithm::S3ChecksumAlgorithm;
  189    193   
  190    194   
pub use crate::types::_s3_access_control_policy::S3AccessControlPolicy;
  191    195   
  192    196   
pub use crate::types::_s3_glacier_job_tier::S3GlacierJobTier;
  193    197   
  194    198   
pub use crate::types::_s3_object_lock_legal_hold::S3ObjectLockLegalHold;
  195    199   
  196    200   
pub use crate::types::_s3_retention::S3Retention;
  197    201   
  198    202   
pub use crate::types::_compute_object_checksum_algorithm::ComputeObjectChecksumAlgorithm;
  199    203   
  200    204   
pub use crate::types::_compute_object_checksum_type::ComputeObjectChecksumType;
  201    205   
         206  +
pub use crate::types::_object_encryption::ObjectEncryption;
         207  +
  202    208   
pub use crate::types::_job_manifest_format::JobManifestFormat;
  203    209   
  204    210   
pub use crate::types::_s3_manifest_output_location::S3ManifestOutputLocation;
  205    211   
  206    212   
pub use crate::types::_job_manifest_generator_filter::JobManifestGeneratorFilter;
  207    213   
  208    214   
pub use crate::types::_region::Region;
  209    215   
  210    216   
pub use crate::types::_match_object_age::MatchObjectAge;
  211    217   
  212    218   
pub use crate::types::_match_object_size::MatchObjectSize;
  213    219   
  214    220   
pub use crate::types::_storage_lens_group_and_operator::StorageLensGroupAndOperator;
  215    221   
  216    222   
pub use crate::types::_storage_lens_group_or_operator::StorageLensGroupOrOperator;
  217    223   
  218    224   
pub use crate::types::_job_timers::JobTimers;
  219    225   
  220    226   
pub use crate::types::_job_failure::JobFailure;
  221    227   
  222    228   
pub use crate::types::_generated_manifest_format::GeneratedManifestFormat;
  223    229   
  224    230   
pub use crate::types::_multi_region_access_points_async_response::MultiRegionAccessPointsAsyncResponse;
  225    231   
  226    232   
pub use crate::types::_async_error_details::AsyncErrorDetails;
  227    233   
  228    234   
pub use crate::types::_lifecycle_expiration::LifecycleExpiration;
  229    235   
  230    236   
pub use crate::types::_lifecycle_rule_filter::LifecycleRuleFilter;
  231    237   
  232    238   
pub use crate::types::_expiration_status::ExpirationStatus;
  233    239   
  234    240   
pub use crate::types::_noncurrent_version_expiration::NoncurrentVersionExpiration;
  235    241   
  236    242   
pub use crate::types::_abort_incomplete_multipart_upload::AbortIncompleteMultipartUpload;
  237    243   
  238    244   
pub use crate::types::_replication_rule::ReplicationRule;
  239    245   
  240    246   
pub use crate::types::_region_report::RegionReport;
  241    247   
  242    248   
pub use crate::types::_activity_metrics::ActivityMetrics;
  243    249   
  244    250   
pub use crate::types::_bucket_level::BucketLevel;
  245    251   
  246    252   
pub use crate::types::_advanced_cost_optimization_metrics::AdvancedCostOptimizationMetrics;
  247    253   
  248    254   
pub use crate::types::_advanced_data_protection_metrics::AdvancedDataProtectionMetrics;
  249    255   
  250    256   
pub use crate::types::_detailed_status_codes_metrics::DetailedStatusCodesMetrics;
  251    257   
         258  +
pub use crate::types::_advanced_performance_metrics::AdvancedPerformanceMetrics;
         259  +
  252    260   
pub use crate::types::_storage_lens_group_level::StorageLensGroupLevel;
  253    261   
  254    262   
pub use crate::types::_s3_bucket_destination::S3BucketDestination;
  255    263   
  256    264   
pub use crate::types::_cloud_watch_metrics::CloudWatchMetrics;
  257    265   
         266  +
pub use crate::types::_storage_lens_table_destination::StorageLensTableDestination;
         267  +
  258    268   
pub use crate::types::_operation_name::OperationName;
  259    269   
  260    270   
pub use crate::types::_object_lambda_content_transformation::ObjectLambdaContentTransformation;
  261    271   
  262    272   
pub use crate::types::_s3_grant::S3Grant;
  263    273   
  264    274   
pub use crate::types::_s3_sse_algorithm::S3SseAlgorithm;
  265    275   
  266    276   
pub use crate::types::_s3_access_control_list::S3AccessControlList;
  267    277   
  268    278   
pub use crate::types::_s3_object_lock_retention_mode::S3ObjectLockRetentionMode;
  269    279   
         280  +
pub use crate::types::_s3_update_object_encryption_ssekms::S3UpdateObjectEncryptionSsekms;
         281  +
  270    282   
pub use crate::types::_job_manifest_field_name::JobManifestFieldName;
  271    283   
  272    284   
pub use crate::types::_generated_manifest_encryption::GeneratedManifestEncryption;
  273    285   
  274    286   
pub use crate::types::_key_name_constraint::KeyNameConstraint;
  275    287   
  276    288   
pub use crate::types::_lifecycle_rule_and_operator::LifecycleRuleAndOperator;
  277    289   
  278    290   
pub use crate::types::_transition::Transition;
  279    291   
@@ -364,376 +423,437 @@
  384    396   
mod _access_point;
  385    397   
  386    398   
mod _account_level;
  387    399   
  388    400   
mod _activity_metrics;
  389    401   
  390    402   
mod _advanced_cost_optimization_metrics;
  391    403   
  392    404   
mod _advanced_data_protection_metrics;
  393    405   
         406  +
mod _advanced_performance_metrics;
         407  +
  394    408   
mod _async_error_details;
  395    409   
  396    410   
mod _async_operation;
  397    411   
  398    412   
mod _async_operation_name;
  399    413   
  400    414   
mod _async_request_parameters;
  401    415   
  402    416   
mod _async_response_details;
  403    417   
@@ -524,538 +583,599 @@
  544    558   
mod _multi_region_access_points_async_response;
  545    559   
  546    560   
mod _network_origin;
  547    561   
  548    562   
mod _noncurrent_version_expiration;
  549    563   
  550    564   
mod _noncurrent_version_transition;
  551    565   
  552    566   
mod _not_sse_filter;
  553    567   
         568  +
mod _object_encryption;
         569  +
  554    570   
mod _object_encryption_filter;
  555    571   
  556    572   
mod _object_lambda_access_point;
  557    573   
  558    574   
mod _object_lambda_access_point_alias;
  559    575   
  560    576   
mod _object_lambda_access_point_alias_status;
  561    577   
  562    578   
mod _object_lambda_allowed_feature;
  563    579   
@@ -664,680 +758,782 @@
  684    700   
mod _s3_set_object_retention_operation;
  685    701   
  686    702   
mod _s3_set_object_tagging_operation;
  687    703   
  688    704   
mod _s3_sse_algorithm;
  689    705   
  690    706   
mod _s3_storage_class;
  691    707   
  692    708   
mod _s3_tag;
  693    709   
         710  +
mod _s3_update_object_encryption_operation;
         711  +
         712  +
mod _s3_update_object_encryption_ssekms;
         713  +
  694    714   
mod _scope;
  695    715   
  696    716   
mod _scope_permission;
  697    717   
  698    718   
mod _selection_criteria;
  699    719   
  700    720   
mod _source_selection_criteria;
  701    721   
  702    722   
mod _sse_kms_encrypted_objects;
  703    723   
  704    724   
mod _sse_kms_encrypted_objects_status;
  705    725   
  706    726   
mod _ssec_filter;
  707    727   
  708    728   
mod _ssekms;
  709    729   
  710    730   
mod _ssekms_encryption;
  711    731   
  712    732   
mod _ssekms_filter;
  713    733   
  714    734   
mod _sses3;
  715    735   
  716    736   
mod _sses3_encryption;
  717    737   
  718    738   
mod _sses3_filter;
  719    739   
  720    740   
mod _storage_lens_aws_org;
  721    741   
  722    742   
mod _storage_lens_configuration;
  723    743   
  724    744   
mod _storage_lens_data_export;
  725    745   
  726    746   
mod _storage_lens_data_export_encryption;
  727    747   
         748  +
mod _storage_lens_expanded_prefixes_data_export;
         749  +
  728    750   
mod _storage_lens_group;
  729    751   
  730    752   
mod _storage_lens_group_and_operator;
  731    753   
  732    754   
mod _storage_lens_group_filter;
  733    755   
  734    756   
mod _storage_lens_group_level;
  735    757   
  736    758   
mod _storage_lens_group_level_selection_criteria;
  737    759   
  738    760   
mod _storage_lens_group_or_operator;
  739    761   
         762  +
mod _storage_lens_table_destination;
         763  +
  740    764   
mod _storage_lens_tag;
  741    765   
  742    766   
mod _tag;
  743    767   
  744    768   
mod _tagging;
  745    769   
  746    770   
mod _transition;
  747    771   
  748    772   
mod _transition_storage_class;
  749    773   

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

@@ -1,1 +92,101 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// <p>A container element for the account-level Amazon S3 Storage Lens configuration.</p>
           3  +
/// <p>A container element for the account-level Amazon S3 Storage Lens configuration.</p><note>
           4  +
/// <p>You must enable Storage Lens metrics consistently at both the account level and bucket level, or your request will fail.</p>
           5  +
/// </note>
    4      6   
/// <p>For more information about S3 Storage Lens, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html">Assessing your storage activity and usage with S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. For a complete list of S3 Storage Lens metrics, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html">S3 Storage Lens metrics glossary</a> in the <i>Amazon S3 User Guide</i>.</p>
    5      7   
#[non_exhaustive]
    6      8   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    7      9   
pub struct AccountLevel {
    8     10   
    /// <p>A container element for S3 Storage Lens activity metrics.</p>
    9     11   
    pub activity_metrics: ::std::option::Option<crate::types::ActivityMetrics>,
   10     12   
    /// <p>A container element for the S3 Storage Lens bucket-level configuration.</p>
   11     13   
    pub bucket_level: ::std::option::Option<crate::types::BucketLevel>,
   12     14   
    /// <p>A container element for S3 Storage Lens advanced cost-optimization metrics.</p>
   13     15   
    pub advanced_cost_optimization_metrics: ::std::option::Option<crate::types::AdvancedCostOptimizationMetrics>,
   14     16   
    /// <p>A container element for S3 Storage Lens advanced data-protection metrics.</p>
   15     17   
    pub advanced_data_protection_metrics: ::std::option::Option<crate::types::AdvancedDataProtectionMetrics>,
   16     18   
    /// <p>A container element for detailed status code metrics.</p>
   17     19   
    pub detailed_status_codes_metrics: ::std::option::Option<crate::types::DetailedStatusCodesMetrics>,
          20  +
    /// <p>A container element for S3 Storage Lens advanced performance metrics.</p>
          21  +
    pub advanced_performance_metrics: ::std::option::Option<crate::types::AdvancedPerformanceMetrics>,
   18     22   
    /// <p>A container element for S3 Storage Lens groups metrics.</p>
   19     23   
    pub storage_lens_group_level: ::std::option::Option<crate::types::StorageLensGroupLevel>,
   20     24   
}
   21     25   
impl AccountLevel {
   22     26   
    /// <p>A container element for S3 Storage Lens activity metrics.</p>
   23     27   
    pub fn activity_metrics(&self) -> ::std::option::Option<&crate::types::ActivityMetrics> {
   24     28   
        self.activity_metrics.as_ref()
   25     29   
    }
   26     30   
    /// <p>A container element for the S3 Storage Lens bucket-level configuration.</p>
   27     31   
    pub fn bucket_level(&self) -> ::std::option::Option<&crate::types::BucketLevel> {
   28     32   
        self.bucket_level.as_ref()
   29     33   
    }
   30     34   
    /// <p>A container element for S3 Storage Lens advanced cost-optimization metrics.</p>
   31     35   
    pub fn advanced_cost_optimization_metrics(&self) -> ::std::option::Option<&crate::types::AdvancedCostOptimizationMetrics> {
   32     36   
        self.advanced_cost_optimization_metrics.as_ref()
   33     37   
    }
   34     38   
    /// <p>A container element for S3 Storage Lens advanced data-protection metrics.</p>
   35     39   
    pub fn advanced_data_protection_metrics(&self) -> ::std::option::Option<&crate::types::AdvancedDataProtectionMetrics> {
   36     40   
        self.advanced_data_protection_metrics.as_ref()
   37     41   
    }
   38     42   
    /// <p>A container element for detailed status code metrics.</p>
   39     43   
    pub fn detailed_status_codes_metrics(&self) -> ::std::option::Option<&crate::types::DetailedStatusCodesMetrics> {
   40     44   
        self.detailed_status_codes_metrics.as_ref()
   41     45   
    }
          46  +
    /// <p>A container element for S3 Storage Lens advanced performance metrics.</p>
          47  +
    pub fn advanced_performance_metrics(&self) -> ::std::option::Option<&crate::types::AdvancedPerformanceMetrics> {
          48  +
        self.advanced_performance_metrics.as_ref()
          49  +
    }
   42     50   
    /// <p>A container element for S3 Storage Lens groups metrics.</p>
   43     51   
    pub fn storage_lens_group_level(&self) -> ::std::option::Option<&crate::types::StorageLensGroupLevel> {
   44     52   
        self.storage_lens_group_level.as_ref()
   45     53   
    }
   46     54   
}
   47     55   
impl AccountLevel {
   48     56   
    /// Creates a new builder-style object to manufacture [`AccountLevel`](crate::types::AccountLevel).
   49     57   
    pub fn builder() -> crate::types::builders::AccountLevelBuilder {
   50     58   
        crate::types::builders::AccountLevelBuilder::default()
   51     59   
    }
   52     60   
}
   53     61   
   54     62   
/// A builder for [`AccountLevel`](crate::types::AccountLevel).
   55     63   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   56     64   
#[non_exhaustive]
   57     65   
pub struct AccountLevelBuilder {
   58     66   
    pub(crate) activity_metrics: ::std::option::Option<crate::types::ActivityMetrics>,
   59     67   
    pub(crate) bucket_level: ::std::option::Option<crate::types::BucketLevel>,
   60     68   
    pub(crate) advanced_cost_optimization_metrics: ::std::option::Option<crate::types::AdvancedCostOptimizationMetrics>,
   61     69   
    pub(crate) advanced_data_protection_metrics: ::std::option::Option<crate::types::AdvancedDataProtectionMetrics>,
   62     70   
    pub(crate) detailed_status_codes_metrics: ::std::option::Option<crate::types::DetailedStatusCodesMetrics>,
          71  +
    pub(crate) advanced_performance_metrics: ::std::option::Option<crate::types::AdvancedPerformanceMetrics>,
   63     72   
    pub(crate) storage_lens_group_level: ::std::option::Option<crate::types::StorageLensGroupLevel>,
   64     73   
}
   65     74   
impl AccountLevelBuilder {
   66     75   
    /// <p>A container element for S3 Storage Lens activity metrics.</p>
   67     76   
    pub fn activity_metrics(mut self, input: crate::types::ActivityMetrics) -> Self {
   68     77   
        self.activity_metrics = ::std::option::Option::Some(input);
   69     78   
        self
   70     79   
    }
   71     80   
    /// <p>A container element for S3 Storage Lens activity metrics.</p>
   72     81   
    pub fn set_activity_metrics(mut self, input: ::std::option::Option<crate::types::ActivityMetrics>) -> Self {
@@ -107,116 +162,186 @@
  127    136   
    }
  128    137   
    /// <p>A container element for detailed status code metrics.</p>
  129    138   
    pub fn set_detailed_status_codes_metrics(mut self, input: ::std::option::Option<crate::types::DetailedStatusCodesMetrics>) -> Self {
  130    139   
        self.detailed_status_codes_metrics = input;
  131    140   
        self
  132    141   
    }
  133    142   
    /// <p>A container element for detailed status code metrics.</p>
  134    143   
    pub fn get_detailed_status_codes_metrics(&self) -> &::std::option::Option<crate::types::DetailedStatusCodesMetrics> {
  135    144   
        &self.detailed_status_codes_metrics
  136    145   
    }
         146  +
    /// <p>A container element for S3 Storage Lens advanced performance metrics.</p>
         147  +
    pub fn advanced_performance_metrics(mut self, input: crate::types::AdvancedPerformanceMetrics) -> Self {
         148  +
        self.advanced_performance_metrics = ::std::option::Option::Some(input);
         149  +
        self
         150  +
    }
         151  +
    /// <p>A container element for S3 Storage Lens advanced performance metrics.</p>
         152  +
    pub fn set_advanced_performance_metrics(mut self, input: ::std::option::Option<crate::types::AdvancedPerformanceMetrics>) -> Self {
         153  +
        self.advanced_performance_metrics = input;
         154  +
        self
         155  +
    }
         156  +
    /// <p>A container element for S3 Storage Lens advanced performance metrics.</p>
         157  +
    pub fn get_advanced_performance_metrics(&self) -> &::std::option::Option<crate::types::AdvancedPerformanceMetrics> {
         158  +
        &self.advanced_performance_metrics
         159  +
    }
  137    160   
    /// <p>A container element for S3 Storage Lens groups metrics.</p>
  138    161   
    pub fn storage_lens_group_level(mut self, input: crate::types::StorageLensGroupLevel) -> Self {
  139    162   
        self.storage_lens_group_level = ::std::option::Option::Some(input);
  140    163   
        self
  141    164   
    }
  142    165   
    /// <p>A container element for S3 Storage Lens groups metrics.</p>
  143    166   
    pub fn set_storage_lens_group_level(mut self, input: ::std::option::Option<crate::types::StorageLensGroupLevel>) -> Self {
  144    167   
        self.storage_lens_group_level = input;
  145    168   
        self
  146    169   
    }
  147    170   
    /// <p>A container element for S3 Storage Lens groups metrics.</p>
  148    171   
    pub fn get_storage_lens_group_level(&self) -> &::std::option::Option<crate::types::StorageLensGroupLevel> {
  149    172   
        &self.storage_lens_group_level
  150    173   
    }
  151    174   
    /// Consumes the builder and constructs a [`AccountLevel`](crate::types::AccountLevel).
  152    175   
    pub fn build(self) -> crate::types::AccountLevel {
  153    176   
        crate::types::AccountLevel {
  154    177   
            activity_metrics: self.activity_metrics,
  155    178   
            bucket_level: self.bucket_level,
  156    179   
            advanced_cost_optimization_metrics: self.advanced_cost_optimization_metrics,
  157    180   
            advanced_data_protection_metrics: self.advanced_data_protection_metrics,
  158    181   
            detailed_status_codes_metrics: self.detailed_status_codes_metrics,
         182  +
            advanced_performance_metrics: self.advanced_performance_metrics,
  159    183   
            storage_lens_group_level: self.storage_lens_group_level,
  160    184   
        }
  161    185   
    }
  162    186   
}

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

@@ -0,1 +0,51 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
/// <p>The container element for S3 Storage Lens advanced performance metrics. Advanced performance metrics provide insights into application performance, such as request efficiency and access patterns. These metrics help you optimize your S3 storage for both cost and performance by providing detailed analytics on how your applications interact with S3 resources.</p>
           4  +
/// <p>For more information about S3 Storage Lens, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html">Assessing your storage activity and usage with S3 Storage Lens</a> in the <i>Amazon S3 User Guide</i>. For a complete list of S3 Storage Lens metrics, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html">S3 Storage Lens metrics glossary</a> in the <i>Amazon S3 User Guide</i>.</p>
           5  +
#[non_exhaustive]
           6  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
           7  +
pub struct AdvancedPerformanceMetrics {
           8  +
    /// <p>A container that indicates whether S3 Storage Lens advanced performance metrics are enabled.</p>
           9  +
    pub is_enabled: bool,
          10  +
}
          11  +
impl AdvancedPerformanceMetrics {
          12  +
    /// <p>A container that indicates whether S3 Storage Lens advanced performance metrics are enabled.</p>
          13  +
    pub fn is_enabled(&self) -> bool {
          14  +
        self.is_enabled
          15  +
    }
          16  +
}
          17  +
impl AdvancedPerformanceMetrics {
          18  +
    /// Creates a new builder-style object to manufacture [`AdvancedPerformanceMetrics`](crate::types::AdvancedPerformanceMetrics).
          19  +
    pub fn builder() -> crate::types::builders::AdvancedPerformanceMetricsBuilder {
          20  +
        crate::types::builders::AdvancedPerformanceMetricsBuilder::default()
          21  +
    }
          22  +
}
          23  +
          24  +
/// A builder for [`AdvancedPerformanceMetrics`](crate::types::AdvancedPerformanceMetrics).
          25  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
          26  +
#[non_exhaustive]
          27  +
pub struct AdvancedPerformanceMetricsBuilder {
          28  +
    pub(crate) is_enabled: ::std::option::Option<bool>,
          29  +
}
          30  +
impl AdvancedPerformanceMetricsBuilder {
          31  +
    /// <p>A container that indicates whether S3 Storage Lens advanced performance metrics are enabled.</p>
          32  +
    pub fn is_enabled(mut self, input: bool) -> Self {
          33  +
        self.is_enabled = ::std::option::Option::Some(input);
          34  +
        self
          35  +
    }
          36  +
    /// <p>A container that indicates whether S3 Storage Lens advanced performance metrics are enabled.</p>
          37  +
    pub fn set_is_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
          38  +
        self.is_enabled = input;
          39  +
        self
          40  +
    }
          41  +
    /// <p>A container that indicates whether S3 Storage Lens advanced performance metrics are enabled.</p>
          42  +
    pub fn get_is_enabled(&self) -> &::std::option::Option<bool> {
          43  +
        &self.is_enabled
          44  +
    }
          45  +
    /// Consumes the builder and constructs a [`AdvancedPerformanceMetrics`](crate::types::AdvancedPerformanceMetrics).
          46  +
    pub fn build(self) -> crate::types::AdvancedPerformanceMetrics {
          47  +
        crate::types::AdvancedPerformanceMetrics {
          48  +
            is_enabled: self.is_enabled.unwrap_or_default(),
          49  +
        }
          50  +
    }
          51  +
}

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

@@ -1,1 +86,93 @@
    8      8   
    /// <p>A container for the bucket-level activity metrics for S3 Storage Lens.</p>
    9      9   
    pub activity_metrics: ::std::option::Option<crate::types::ActivityMetrics>,
   10     10   
    /// <p>A container for the prefix-level metrics for S3 Storage Lens.</p>
   11     11   
    pub prefix_level: ::std::option::Option<crate::types::PrefixLevel>,
   12     12   
    /// <p>A container for bucket-level advanced cost-optimization metrics for S3 Storage Lens.</p>
   13     13   
    pub advanced_cost_optimization_metrics: ::std::option::Option<crate::types::AdvancedCostOptimizationMetrics>,
   14     14   
    /// <p>A container for bucket-level advanced data-protection metrics for S3 Storage Lens.</p>
   15     15   
    pub advanced_data_protection_metrics: ::std::option::Option<crate::types::AdvancedDataProtectionMetrics>,
   16     16   
    /// <p>A container for bucket-level detailed status code metrics for S3 Storage Lens.</p>
   17     17   
    pub detailed_status_codes_metrics: ::std::option::Option<crate::types::DetailedStatusCodesMetrics>,
          18  +
    /// <p>A container for bucket-level advanced performance metrics for S3 Storage Lens.</p>
          19  +
    pub advanced_performance_metrics: ::std::option::Option<crate::types::AdvancedPerformanceMetrics>,
   18     20   
}
   19     21   
impl BucketLevel {
   20     22   
    /// <p>A container for the bucket-level activity metrics for S3 Storage Lens.</p>
   21     23   
    pub fn activity_metrics(&self) -> ::std::option::Option<&crate::types::ActivityMetrics> {
   22     24   
        self.activity_metrics.as_ref()
   23     25   
    }
   24     26   
    /// <p>A container for the prefix-level metrics for S3 Storage Lens.</p>
   25     27   
    pub fn prefix_level(&self) -> ::std::option::Option<&crate::types::PrefixLevel> {
   26     28   
        self.prefix_level.as_ref()
   27     29   
    }
   28     30   
    /// <p>A container for bucket-level advanced cost-optimization metrics for S3 Storage Lens.</p>
   29     31   
    pub fn advanced_cost_optimization_metrics(&self) -> ::std::option::Option<&crate::types::AdvancedCostOptimizationMetrics> {
   30     32   
        self.advanced_cost_optimization_metrics.as_ref()
   31     33   
    }
   32     34   
    /// <p>A container for bucket-level advanced data-protection metrics for S3 Storage Lens.</p>
   33     35   
    pub fn advanced_data_protection_metrics(&self) -> ::std::option::Option<&crate::types::AdvancedDataProtectionMetrics> {
   34     36   
        self.advanced_data_protection_metrics.as_ref()
   35     37   
    }
   36     38   
    /// <p>A container for bucket-level detailed status code metrics for S3 Storage Lens.</p>
   37     39   
    pub fn detailed_status_codes_metrics(&self) -> ::std::option::Option<&crate::types::DetailedStatusCodesMetrics> {
   38     40   
        self.detailed_status_codes_metrics.as_ref()
   39     41   
    }
          42  +
    /// <p>A container for bucket-level advanced performance metrics for S3 Storage Lens.</p>
          43  +
    pub fn advanced_performance_metrics(&self) -> ::std::option::Option<&crate::types::AdvancedPerformanceMetrics> {
          44  +
        self.advanced_performance_metrics.as_ref()
          45  +
    }
   40     46   
}
   41     47   
impl BucketLevel {
   42     48   
    /// Creates a new builder-style object to manufacture [`BucketLevel`](crate::types::BucketLevel).
   43     49   
    pub fn builder() -> crate::types::builders::BucketLevelBuilder {
   44     50   
        crate::types::builders::BucketLevelBuilder::default()
   45     51   
    }
   46     52   
}
   47     53   
   48     54   
/// A builder for [`BucketLevel`](crate::types::BucketLevel).
   49     55   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   50     56   
#[non_exhaustive]
   51     57   
pub struct BucketLevelBuilder {
   52     58   
    pub(crate) activity_metrics: ::std::option::Option<crate::types::ActivityMetrics>,
   53     59   
    pub(crate) prefix_level: ::std::option::Option<crate::types::PrefixLevel>,
   54     60   
    pub(crate) advanced_cost_optimization_metrics: ::std::option::Option<crate::types::AdvancedCostOptimizationMetrics>,
   55     61   
    pub(crate) advanced_data_protection_metrics: ::std::option::Option<crate::types::AdvancedDataProtectionMetrics>,
   56     62   
    pub(crate) detailed_status_codes_metrics: ::std::option::Option<crate::types::DetailedStatusCodesMetrics>,
          63  +
    pub(crate) advanced_performance_metrics: ::std::option::Option<crate::types::AdvancedPerformanceMetrics>,
   57     64   
}
   58     65   
impl BucketLevelBuilder {
   59     66   
    /// <p>A container for the bucket-level activity metrics for S3 Storage Lens.</p>
   60     67   
    pub fn activity_metrics(mut self, input: crate::types::ActivityMetrics) -> Self {
   61     68   
        self.activity_metrics = ::std::option::Option::Some(input);
   62     69   
        self
   63     70   
    }
   64     71   
    /// <p>A container for the bucket-level activity metrics for S3 Storage Lens.</p>
   65     72   
    pub fn set_activity_metrics(mut self, input: ::std::option::Option<crate::types::ActivityMetrics>) -> Self {
   66     73   
        self.activity_metrics = input;
@@ -99,106 +139,161 @@
  119    126   
    }
  120    127   
    /// <p>A container for bucket-level detailed status code metrics for S3 Storage Lens.</p>
  121    128   
    pub fn set_detailed_status_codes_metrics(mut self, input: ::std::option::Option<crate::types::DetailedStatusCodesMetrics>) -> Self {
  122    129   
        self.detailed_status_codes_metrics = input;
  123    130   
        self
  124    131   
    }
  125    132   
    /// <p>A container for bucket-level detailed status code metrics for S3 Storage Lens.</p>
  126    133   
    pub fn get_detailed_status_codes_metrics(&self) -> &::std::option::Option<crate::types::DetailedStatusCodesMetrics> {
  127    134   
        &self.detailed_status_codes_metrics
  128    135   
    }
         136  +
    /// <p>A container for bucket-level advanced performance metrics for S3 Storage Lens.</p>
         137  +
    pub fn advanced_performance_metrics(mut self, input: crate::types::AdvancedPerformanceMetrics) -> Self {
         138  +
        self.advanced_performance_metrics = ::std::option::Option::Some(input);
         139  +
        self
         140  +
    }
         141  +
    /// <p>A container for bucket-level advanced performance metrics for S3 Storage Lens.</p>
         142  +
    pub fn set_advanced_performance_metrics(mut self, input: ::std::option::Option<crate::types::AdvancedPerformanceMetrics>) -> Self {
         143  +
        self.advanced_performance_metrics = input;
         144  +
        self
         145  +
    }
         146  +
    /// <p>A container for bucket-level advanced performance metrics for S3 Storage Lens.</p>
         147  +
    pub fn get_advanced_performance_metrics(&self) -> &::std::option::Option<crate::types::AdvancedPerformanceMetrics> {
         148  +
        &self.advanced_performance_metrics
         149  +
    }
  129    150   
    /// Consumes the builder and constructs a [`BucketLevel`](crate::types::BucketLevel).
  130    151   
    pub fn build(self) -> crate::types::BucketLevel {
  131    152   
        crate::types::BucketLevel {
  132    153   
            activity_metrics: self.activity_metrics,
  133    154   
            prefix_level: self.prefix_level,
  134    155   
            advanced_cost_optimization_metrics: self.advanced_cost_optimization_metrics,
  135    156   
            advanced_data_protection_metrics: self.advanced_data_protection_metrics,
  136    157   
            detailed_status_codes_metrics: self.detailed_status_codes_metrics,
         158  +
            advanced_performance_metrics: self.advanced_performance_metrics,
  137    159   
        }
  138    160   
    }
  139    161   
}

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

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