AWS SDK

AWS SDK

rev. bf7b54724930715a0014743ff218858d02acbe40

Files changed:

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/operation/update_table/builders.rs

@@ -415,415 +445,480 @@
  435    435   
    }
  436    436   
    /// <p>Represents the warm throughput (in read units per second and write units per second) for updating a table.</p>
  437    437   
    pub fn set_warm_throughput(mut self, input: ::std::option::Option<crate::types::WarmThroughput>) -> Self {
  438    438   
        self.inner = self.inner.set_warm_throughput(input);
  439    439   
        self
  440    440   
    }
  441    441   
    /// <p>Represents the warm throughput (in read units per second and write units per second) for updating a table.</p>
  442    442   
    pub fn get_warm_throughput(&self) -> &::std::option::Option<crate::types::WarmThroughput> {
  443    443   
        self.inner.get_warm_throughput()
  444    444   
    }
         445  +
    /// <p>Controls the settings replication mode for a global table replica. This attribute can be defined using UpdateTable operation only on a regional table with values:</p>
         446  +
    /// <ul>
         447  +
    /// <li>
         448  +
    /// <p><code>ENABLED</code>: Defines settings replication on a regional table to be used as a source table for creating Multi-Account Global Table.</p></li>
         449  +
    /// <li>
         450  +
    /// <p><code>DISABLED</code>: Remove settings replication on a regional table. Settings replication needs to be defined to ENABLED again in order to create a Multi-Account Global Table using this table.</p></li>
         451  +
    /// </ul>
         452  +
    pub fn global_table_settings_replication_mode(mut self, input: crate::types::GlobalTableSettingsReplicationMode) -> Self {
         453  +
        self.inner = self.inner.global_table_settings_replication_mode(input);
         454  +
        self
         455  +
    }
         456  +
    /// <p>Controls the settings replication mode for a global table replica. This attribute can be defined using UpdateTable operation only on a regional table with values:</p>
         457  +
    /// <ul>
         458  +
    /// <li>
         459  +
    /// <p><code>ENABLED</code>: Defines settings replication on a regional table to be used as a source table for creating Multi-Account Global Table.</p></li>
         460  +
    /// <li>
         461  +
    /// <p><code>DISABLED</code>: Remove settings replication on a regional table. Settings replication needs to be defined to ENABLED again in order to create a Multi-Account Global Table using this table.</p></li>
         462  +
    /// </ul>
         463  +
    pub fn set_global_table_settings_replication_mode(
         464  +
        mut self,
         465  +
        input: ::std::option::Option<crate::types::GlobalTableSettingsReplicationMode>,
         466  +
    ) -> Self {
         467  +
        self.inner = self.inner.set_global_table_settings_replication_mode(input);
         468  +
        self
         469  +
    }
         470  +
    /// <p>Controls the settings replication mode for a global table replica. This attribute can be defined using UpdateTable operation only on a regional table with values:</p>
         471  +
    /// <ul>
         472  +
    /// <li>
         473  +
    /// <p><code>ENABLED</code>: Defines settings replication on a regional table to be used as a source table for creating Multi-Account Global Table.</p></li>
         474  +
    /// <li>
         475  +
    /// <p><code>DISABLED</code>: Remove settings replication on a regional table. Settings replication needs to be defined to ENABLED again in order to create a Multi-Account Global Table using this table.</p></li>
         476  +
    /// </ul>
         477  +
    pub fn get_global_table_settings_replication_mode(&self) -> &::std::option::Option<crate::types::GlobalTableSettingsReplicationMode> {
         478  +
        self.inner.get_global_table_settings_replication_mode()
         479  +
    }
  445    480   
}

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/protocol_serde/shape_create_table_input.rs

@@ -81,81 +112,118 @@
  101    101   
    }
  102    102   
    if let Some(var_33) = &input.resource_policy {
  103    103   
        object.key("ResourcePolicy").string(var_33.as_str());
  104    104   
    }
  105    105   
    if let Some(var_34) = &input.on_demand_throughput {
  106    106   
        #[allow(unused_mut)]
  107    107   
        let mut object_35 = object.key("OnDemandThroughput").start_object();
  108    108   
        crate::protocol_serde::shape_on_demand_throughput::ser_on_demand_throughput(&mut object_35, var_34)?;
  109    109   
        object_35.finish();
  110    110   
    }
         111  +
    if let Some(var_36) = &input.global_table_source_arn {
         112  +
        object.key("GlobalTableSourceArn").string(var_36.as_str());
         113  +
    }
         114  +
    if let Some(var_37) = &input.global_table_settings_replication_mode {
         115  +
        object.key("GlobalTableSettingsReplicationMode").string(var_37.as_str());
         116  +
    }
  111    117   
    Ok(())
  112    118   
}

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/protocol_serde/shape_replica_description.rs

@@ -2,2 +99,116 @@
   22     22   
                                    .transpose()?,
   23     23   
                            );
   24     24   
                        }
   25     25   
                        "ReplicaStatus" => {
   26     26   
                            builder = builder.set_replica_status(
   27     27   
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   28     28   
                                    .map(|s| s.to_unescaped().map(|u| crate::types::ReplicaStatus::from(u.as_ref())))
   29     29   
                                    .transpose()?,
   30     30   
                            );
   31     31   
                        }
          32  +
                        "ReplicaArn" => {
          33  +
                            builder = builder.set_replica_arn(
          34  +
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          35  +
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
          36  +
                                    .transpose()?,
          37  +
                            );
          38  +
                        }
   32     39   
                        "ReplicaStatusDescription" => {
   33     40   
                            builder = builder.set_replica_status_description(
   34     41   
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   35     42   
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   36     43   
                                    .transpose()?,
   37     44   
                            );
   38     45   
                        }
   39     46   
                        "ReplicaStatusPercentProgress" => {
   40     47   
                            builder = builder.set_replica_status_percent_progress(
   41     48   
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   42     49   
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   43     50   
                                    .transpose()?,
   44     51   
                            );
   45     52   
                        }
   46     53   
                        "KMSMasterKeyId" => {
   47     54   
                            builder = builder.set_kms_master_key_id(
   48     55   
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
   49     56   
                                    .map(|s| s.to_unescaped().map(|u| u.into_owned()))
   50     57   
                                    .transpose()?,
   51     58   
                            );
   52     59   
                        }
   53     60   
                        "ProvisionedThroughputOverride" => {
   54     61   
                            builder = builder.set_provisioned_throughput_override(
   55     62   
                                crate::protocol_serde::shape_provisioned_throughput_override::de_provisioned_throughput_override(tokens, _value)?,
   56     63   
                            );
   57     64   
                        }
   58     65   
                        "OnDemandThroughputOverride" => {
   59     66   
                            builder = builder.set_on_demand_throughput_override(
   60     67   
                                crate::protocol_serde::shape_on_demand_throughput_override::de_on_demand_throughput_override(tokens, _value)?,
   61     68   
                            );
   62     69   
                        }
   63     70   
                        "WarmThroughput" => {
   64     71   
                            builder = builder.set_warm_throughput(
   65     72   
                                crate::protocol_serde::shape_table_warm_throughput_description::de_table_warm_throughput_description(tokens, _value)?,
   66     73   
                            );
   67     74   
                        }
   68     75   
                        "GlobalSecondaryIndexes" => {
   69     76   
                            builder = builder.set_global_secondary_indexes(
   70     77   
                                    crate::protocol_serde::shape_replica_global_secondary_index_description_list::de_replica_global_secondary_index_description_list(tokens, _value)?
   71     78   
                                );
   72     79   
                        }
   73     80   
                        "ReplicaInaccessibleDateTime" => {
   74     81   
                            builder = builder.set_replica_inaccessible_date_time(::aws_smithy_json::deserialize::token::expect_timestamp_or_null(
   75     82   
                                tokens.next(),
   76     83   
                                ::aws_smithy_types::date_time::Format::EpochSeconds,
   77     84   
                            )?);
   78     85   
                        }
   79     86   
                        "ReplicaTableClassSummary" => {
   80     87   
                            builder = builder.set_replica_table_class_summary(
   81     88   
                                crate::protocol_serde::shape_table_class_summary::de_table_class_summary(tokens, _value)?,
   82     89   
                            );
   83     90   
                        }
          91  +
                        "GlobalTableSettingsReplicationMode" => {
          92  +
                            builder = builder.set_global_table_settings_replication_mode(
          93  +
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
          94  +
                                    .map(|s| {
          95  +
                                        s.to_unescaped()
          96  +
                                            .map(|u| crate::types::GlobalTableSettingsReplicationMode::from(u.as_ref()))
          97  +
                                    })
          98  +
                                    .transpose()?,
          99  +
                            );
         100  +
                        }
   84    101   
                        _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
   85    102   
                    },
   86    103   
                    other => {
   87    104   
                        return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
   88    105   
                            "expected object key or end object, found: {other:?}"
   89    106   
                        )))
   90    107   
                    }
   91    108   
                }
   92    109   
            }
   93    110   
            Ok(Some(builder.build()))

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/protocol_serde/shape_table_description.rs

@@ -108,108 +167,177 @@
  128    128   
                                tokens, _value,
  129    129   
                            )?);
  130    130   
                        }
  131    131   
                        "GlobalTableWitnesses" => {
  132    132   
                            builder = builder.set_global_table_witnesses(
  133    133   
                                crate::protocol_serde::shape_global_table_witness_description_list::de_global_table_witness_description_list(
  134    134   
                                    tokens, _value,
  135    135   
                                )?,
  136    136   
                            );
  137    137   
                        }
         138  +
                        "GlobalTableSettingsReplicationMode" => {
         139  +
                            builder = builder.set_global_table_settings_replication_mode(
         140  +
                                ::aws_smithy_json::deserialize::token::expect_string_or_null(tokens.next())?
         141  +
                                    .map(|s| {
         142  +
                                        s.to_unescaped()
         143  +
                                            .map(|u| crate::types::GlobalTableSettingsReplicationMode::from(u.as_ref()))
         144  +
                                    })
         145  +
                                    .transpose()?,
         146  +
                            );
         147  +
                        }
  138    148   
                        "RestoreSummary" => {
  139    149   
                            builder = builder.set_restore_summary(crate::protocol_serde::shape_restore_summary::de_restore_summary(tokens, _value)?);
  140    150   
                        }
  141    151   
                        "SSEDescription" => {
  142    152   
                            builder = builder.set_sse_description(crate::protocol_serde::shape_sse_description::de_sse_description(tokens, _value)?);
  143    153   
                        }
  144    154   
                        "ArchivalSummary" => {
  145    155   
                            builder =
  146    156   
                                builder.set_archival_summary(crate::protocol_serde::shape_archival_summary::de_archival_summary(tokens, _value)?);
  147    157   
                        }

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/protocol_serde/shape_update_table_input.rs

@@ -69,69 +100,103 @@
   89     89   
        let mut object_29 = object.key("OnDemandThroughput").start_object();
   90     90   
        crate::protocol_serde::shape_on_demand_throughput::ser_on_demand_throughput(&mut object_29, var_28)?;
   91     91   
        object_29.finish();
   92     92   
    }
   93     93   
    if let Some(var_30) = &input.warm_throughput {
   94     94   
        #[allow(unused_mut)]
   95     95   
        let mut object_31 = object.key("WarmThroughput").start_object();
   96     96   
        crate::protocol_serde::shape_warm_throughput::ser_warm_throughput(&mut object_31, var_30)?;
   97     97   
        object_31.finish();
   98     98   
    }
          99  +
    if let Some(var_32) = &input.global_table_settings_replication_mode {
         100  +
        object.key("GlobalTableSettingsReplicationMode").string(var_32.as_str());
         101  +
    }
   99    102   
    Ok(())
  100    103   
}

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

@@ -1,1 +53,55 @@
   14     14   
pub use crate::types::_stream_specification::StreamSpecification;
   15     15   
   16     16   
pub use crate::types::_sse_specification::SseSpecification;
   17     17   
   18     18   
pub use crate::types::_table_class::TableClass;
   19     19   
   20     20   
pub use crate::types::_warm_throughput::WarmThroughput;
   21     21   
   22     22   
pub use crate::types::_on_demand_throughput::OnDemandThroughput;
   23     23   
          24  +
pub use crate::types::_global_table_settings_replication_mode::GlobalTableSettingsReplicationMode;
          25  +
   24     26   
pub use crate::types::_table_description::TableDescription;
   25     27   
   26     28   
pub use crate::types::_backup_description::BackupDescription;
   27     29   
   28     30   
pub use crate::types::_conditional_operator::ConditionalOperator;
   29     31   
   30     32   
pub use crate::types::_return_value::ReturnValue;
   31     33   
   32     34   
pub use crate::types::_return_values_on_condition_check_failure::ReturnValuesOnConditionCheckFailure;
   33     35   
@@ -422,424 +481,485 @@
  442    444   
mod _global_secondary_index_update;
  443    445   
  444    446   
mod _global_secondary_index_warm_throughput_description;
  445    447   
  446    448   
mod _global_table;
  447    449   
  448    450   
mod _global_table_description;
  449    451   
  450    452   
mod _global_table_global_secondary_index_settings_update;
  451    453   
         454  +
mod _global_table_settings_replication_mode;
         455  +
  452    456   
mod _global_table_status;
  453    457   
  454    458   
mod _global_table_witness_description;
  455    459   
  456    460   
mod _global_table_witness_group_update;
  457    461   
  458    462   
mod _import_status;
  459    463   
  460    464   
mod _import_summary;
  461    465   

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/types/_create_global_secondary_index_action.rs

@@ -1,1 +130,130 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3      3   
/// <p>Represents a new global secondary index to be added to an existing table.</p>
    4      4   
#[non_exhaustive]
    5      5   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    6      6   
pub struct CreateGlobalSecondaryIndexAction {
    7      7   
    /// <p>The name of the global secondary index to be created.</p>
    8      8   
    pub index_name: ::std::string::String,
    9         -
    /// <p>The key schema for the global secondary index.</p>
           9  +
    /// <p>The key schema for the global secondary index. Global secondary index supports up to 4 partition and up to 4 sort keys.</p>
   10     10   
    pub key_schema: ::std::vec::Vec<crate::types::KeySchemaElement>,
   11     11   
    /// <p>Represents attributes that are copied (projected) from the table into an index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
   12     12   
    pub projection: ::std::option::Option<crate::types::Projection>,
   13     13   
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
   14     14   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   15     15   
    pub provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
   16     16   
    /// <p>The maximum number of read and write units for the global secondary index being created. If you use this parameter, you must specify <code>MaxReadRequestUnits</code>, <code>MaxWriteRequestUnits</code>, or both. You must use either <code>OnDemand Throughput</code> or <code>ProvisionedThroughput</code> based on your table's capacity mode.</p>
   17     17   
    pub on_demand_throughput: ::std::option::Option<crate::types::OnDemandThroughput>,
   18     18   
    /// <p>Represents the warm throughput value (in read units per second and write units per second) when creating a secondary index.</p>
   19     19   
    pub warm_throughput: ::std::option::Option<crate::types::WarmThroughput>,
   20     20   
}
   21     21   
impl CreateGlobalSecondaryIndexAction {
   22     22   
    /// <p>The name of the global secondary index to be created.</p>
   23     23   
    pub fn index_name(&self) -> &str {
   24     24   
        use std::ops::Deref;
   25     25   
        self.index_name.deref()
   26     26   
    }
   27         -
    /// <p>The key schema for the global secondary index.</p>
          27  +
    /// <p>The key schema for the global secondary index. Global secondary index supports up to 4 partition and up to 4 sort keys.</p>
   28     28   
    pub fn key_schema(&self) -> &[crate::types::KeySchemaElement] {
   29     29   
        use std::ops::Deref;
   30     30   
        self.key_schema.deref()
   31     31   
    }
   32     32   
    /// <p>Represents attributes that are copied (projected) from the table into an index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
   33     33   
    pub fn projection(&self) -> ::std::option::Option<&crate::types::Projection> {
   34     34   
        self.projection.as_ref()
   35     35   
    }
   36     36   
    /// <p>Represents the provisioned throughput settings for the specified global secondary index.</p>
   37     37   
    /// <p>For current minimum and maximum provisioned throughput values, see <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p>
   38     38   
    pub fn provisioned_throughput(&self) -> ::std::option::Option<&crate::types::ProvisionedThroughput> {
   39     39   
        self.provisioned_throughput.as_ref()
   40     40   
    }
   41     41   
    /// <p>The maximum number of read and write units for the global secondary index being created. If you use this parameter, you must specify <code>MaxReadRequestUnits</code>, <code>MaxWriteRequestUnits</code>, or both. You must use either <code>OnDemand Throughput</code> or <code>ProvisionedThroughput</code> based on your table's capacity mode.</p>
   42     42   
    pub fn on_demand_throughput(&self) -> ::std::option::Option<&crate::types::OnDemandThroughput> {
   43     43   
        self.on_demand_throughput.as_ref()
   44     44   
    }
   45     45   
    /// <p>Represents the warm throughput value (in read units per second and write units per second) when creating a secondary index.</p>
   46     46   
    pub fn warm_throughput(&self) -> ::std::option::Option<&crate::types::WarmThroughput> {
   47     47   
        self.warm_throughput.as_ref()
   48     48   
    }
   49     49   
}
   50     50   
impl CreateGlobalSecondaryIndexAction {
   51     51   
    /// Creates a new builder-style object to manufacture [`CreateGlobalSecondaryIndexAction`](crate::types::CreateGlobalSecondaryIndexAction).
   52     52   
    pub fn builder() -> crate::types::builders::CreateGlobalSecondaryIndexActionBuilder {
   53     53   
        crate::types::builders::CreateGlobalSecondaryIndexActionBuilder::default()
   54     54   
    }
   55     55   
}
   56     56   
   57     57   
/// A builder for [`CreateGlobalSecondaryIndexAction`](crate::types::CreateGlobalSecondaryIndexAction).
   58     58   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
   59     59   
#[non_exhaustive]
   60     60   
pub struct CreateGlobalSecondaryIndexActionBuilder {
   61     61   
    pub(crate) index_name: ::std::option::Option<::std::string::String>,
   62     62   
    pub(crate) key_schema: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>,
   63     63   
    pub(crate) projection: ::std::option::Option<crate::types::Projection>,
   64     64   
    pub(crate) provisioned_throughput: ::std::option::Option<crate::types::ProvisionedThroughput>,
   65     65   
    pub(crate) on_demand_throughput: ::std::option::Option<crate::types::OnDemandThroughput>,
   66     66   
    pub(crate) warm_throughput: ::std::option::Option<crate::types::WarmThroughput>,
   67     67   
}
   68     68   
impl CreateGlobalSecondaryIndexActionBuilder {
   69     69   
    /// <p>The name of the global secondary index to be created.</p>
   70     70   
    /// This field is required.
   71     71   
    pub fn index_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
   72     72   
        self.index_name = ::std::option::Option::Some(input.into());
   73     73   
        self
   74     74   
    }
   75     75   
    /// <p>The name of the global secondary index to be created.</p>
   76     76   
    pub fn set_index_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
   77     77   
        self.index_name = input;
   78     78   
        self
   79     79   
    }
   80     80   
    /// <p>The name of the global secondary index to be created.</p>
   81     81   
    pub fn get_index_name(&self) -> &::std::option::Option<::std::string::String> {
   82     82   
        &self.index_name
   83     83   
    }
   84     84   
    /// Appends an item to `key_schema`.
   85     85   
    ///
   86     86   
    /// To override the contents of this collection use [`set_key_schema`](Self::set_key_schema).
   87     87   
    ///
   88         -
    /// <p>The key schema for the global secondary index.</p>
          88  +
    /// <p>The key schema for the global secondary index. Global secondary index supports up to 4 partition and up to 4 sort keys.</p>
   89     89   
    pub fn key_schema(mut self, input: crate::types::KeySchemaElement) -> Self {
   90     90   
        let mut v = self.key_schema.unwrap_or_default();
   91     91   
        v.push(input);
   92     92   
        self.key_schema = ::std::option::Option::Some(v);
   93     93   
        self
   94     94   
    }
   95         -
    /// <p>The key schema for the global secondary index.</p>
          95  +
    /// <p>The key schema for the global secondary index. Global secondary index supports up to 4 partition and up to 4 sort keys.</p>
   96     96   
    pub fn set_key_schema(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>>) -> Self {
   97     97   
        self.key_schema = input;
   98     98   
        self
   99     99   
    }
  100         -
    /// <p>The key schema for the global secondary index.</p>
         100  +
    /// <p>The key schema for the global secondary index. Global secondary index supports up to 4 partition and up to 4 sort keys.</p>
  101    101   
    pub fn get_key_schema(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::KeySchemaElement>> {
  102    102   
        &self.key_schema
  103    103   
    }
  104    104   
    /// <p>Represents attributes that are copied (projected) from the table into an index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>
  105    105   
    /// This field is required.
  106    106   
    pub fn projection(mut self, input: crate::types::Projection) -> Self {
  107    107   
        self.projection = ::std::option::Option::Some(input);
  108    108   
        self
  109    109   
    }
  110    110   
    /// <p>Represents attributes that are copied (projected) from the table into an index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.</p>

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/types/_global_table_settings_replication_mode.rs

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

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/types/_replica_description.rs

@@ -1,1 +165,195 @@
   19     19   
    /// <li>
   20     20   
    /// <p><code>REGION_DISABLED</code> - The replica is inaccessible because the Amazon Web Services Region has been disabled.</p><note>
   21     21   
    /// <p>If the Amazon Web Services Region remains inaccessible for more than 20 hours, DynamoDB will remove this replica from the replication group. The replica will not be deleted and replication will stop from and to this region.</p>
   22     22   
    /// </note></li>
   23     23   
    /// <li>
   24     24   
    /// <p><code>INACCESSIBLE_ENCRYPTION_CREDENTIALS </code> - The KMS key used to encrypt the table is inaccessible.</p><note>
   25     25   
    /// <p>If the KMS key remains inaccessible for more than 20 hours, DynamoDB will remove this replica from the replication group. The replica will not be deleted and replication will stop from and to this region.</p>
   26     26   
    /// </note></li>
   27     27   
    /// </ul>
   28     28   
    pub replica_status: ::std::option::Option<crate::types::ReplicaStatus>,
          29  +
    /// <p>The Amazon Resource Name (ARN) of the global table replica.</p>
          30  +
    pub replica_arn: ::std::option::Option<::std::string::String>,
   29     31   
    /// <p>Detailed information about the replica status.</p>
   30     32   
    pub replica_status_description: ::std::option::Option<::std::string::String>,
   31     33   
    /// <p>Specifies the progress of a Create, Update, or Delete action on the replica as a percentage.</p>
   32     34   
    pub replica_status_percent_progress: ::std::option::Option<::std::string::String>,
   33     35   
    /// <p>The KMS key of the replica that will be used for KMS encryption.</p>
   34     36   
    pub kms_master_key_id: ::std::option::Option<::std::string::String>,
   35     37   
    /// <p>Replica-specific provisioned throughput. If not described, uses the source table's provisioned throughput settings.</p>
   36     38   
    pub provisioned_throughput_override: ::std::option::Option<crate::types::ProvisionedThroughputOverride>,
   37     39   
    /// <p>Overrides the maximum on-demand throughput settings for the specified replica table.</p>
   38     40   
    pub on_demand_throughput_override: ::std::option::Option<crate::types::OnDemandThroughputOverride>,
   39     41   
    /// <p>Represents the warm throughput value for this replica.</p>
   40     42   
    pub warm_throughput: ::std::option::Option<crate::types::TableWarmThroughputDescription>,
   41     43   
    /// <p>Replica-specific global secondary index settings.</p>
   42     44   
    pub global_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaGlobalSecondaryIndexDescription>>,
   43     45   
    /// <p>The time at which the replica was first detected as inaccessible. To determine cause of inaccessibility check the <code>ReplicaStatus</code> property.</p>
   44     46   
    pub replica_inaccessible_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
   45     47   
    /// <p>Contains details of the table class.</p>
   46     48   
    pub replica_table_class_summary: ::std::option::Option<crate::types::TableClassSummary>,
          49  +
    /// <p>Indicates one of the settings synchronization modes for the global table replica:</p>
          50  +
    /// <ul>
          51  +
    /// <li>
          52  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table replica is enabled.</p></li>
          53  +
    /// <li>
          54  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table replica is disabled.</p></li>
          55  +
    /// <li>
          56  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
          57  +
    /// </ul>
          58  +
    pub global_table_settings_replication_mode: ::std::option::Option<crate::types::GlobalTableSettingsReplicationMode>,
   47     59   
}
   48     60   
impl ReplicaDescription {
   49     61   
    /// <p>The name of the Region.</p>
   50     62   
    pub fn region_name(&self) -> ::std::option::Option<&str> {
   51     63   
        self.region_name.as_deref()
   52     64   
    }
   53     65   
    /// <p>The current state of the replica:</p>
   54     66   
    /// <ul>
   55     67   
    /// <li>
   56     68   
    /// <p><code>CREATING</code> - The replica is being created.</p></li>
   57     69   
    /// <li>
   58     70   
    /// <p><code>UPDATING</code> - The replica is being updated.</p></li>
   59     71   
    /// <li>
   60     72   
    /// <p><code>DELETING</code> - The replica is being deleted.</p></li>
   61     73   
    /// <li>
   62     74   
    /// <p><code>ACTIVE</code> - The replica is ready for use.</p></li>
   63     75   
    /// <li>
   64     76   
    /// <p><code>REGION_DISABLED</code> - The replica is inaccessible because the Amazon Web Services Region has been disabled.</p><note>
   65     77   
    /// <p>If the Amazon Web Services Region remains inaccessible for more than 20 hours, DynamoDB will remove this replica from the replication group. The replica will not be deleted and replication will stop from and to this region.</p>
   66     78   
    /// </note></li>
   67     79   
    /// <li>
   68     80   
    /// <p><code>INACCESSIBLE_ENCRYPTION_CREDENTIALS </code> - The KMS key used to encrypt the table is inaccessible.</p><note>
   69     81   
    /// <p>If the KMS key remains inaccessible for more than 20 hours, DynamoDB will remove this replica from the replication group. The replica will not be deleted and replication will stop from and to this region.</p>
   70     82   
    /// </note></li>
   71     83   
    /// </ul>
   72     84   
    pub fn replica_status(&self) -> ::std::option::Option<&crate::types::ReplicaStatus> {
   73     85   
        self.replica_status.as_ref()
   74     86   
    }
          87  +
    /// <p>The Amazon Resource Name (ARN) of the global table replica.</p>
          88  +
    pub fn replica_arn(&self) -> ::std::option::Option<&str> {
          89  +
        self.replica_arn.as_deref()
          90  +
    }
   75     91   
    /// <p>Detailed information about the replica status.</p>
   76     92   
    pub fn replica_status_description(&self) -> ::std::option::Option<&str> {
   77     93   
        self.replica_status_description.as_deref()
   78     94   
    }
   79     95   
    /// <p>Specifies the progress of a Create, Update, or Delete action on the replica as a percentage.</p>
   80     96   
    pub fn replica_status_percent_progress(&self) -> ::std::option::Option<&str> {
   81     97   
        self.replica_status_percent_progress.as_deref()
   82     98   
    }
   83     99   
    /// <p>The KMS key of the replica that will be used for KMS encryption.</p>
   84    100   
    pub fn kms_master_key_id(&self) -> ::std::option::Option<&str> {
   85    101   
        self.kms_master_key_id.as_deref()
   86    102   
    }
   87    103   
    /// <p>Replica-specific provisioned throughput. If not described, uses the source table's provisioned throughput settings.</p>
   88    104   
    pub fn provisioned_throughput_override(&self) -> ::std::option::Option<&crate::types::ProvisionedThroughputOverride> {
   89    105   
        self.provisioned_throughput_override.as_ref()
   90    106   
    }
   91    107   
    /// <p>Overrides the maximum on-demand throughput settings for the specified replica table.</p>
   92    108   
    pub fn on_demand_throughput_override(&self) -> ::std::option::Option<&crate::types::OnDemandThroughputOverride> {
   93    109   
        self.on_demand_throughput_override.as_ref()
   94    110   
    }
   95    111   
    /// <p>Represents the warm throughput value for this replica.</p>
   96    112   
    pub fn warm_throughput(&self) -> ::std::option::Option<&crate::types::TableWarmThroughputDescription> {
   97    113   
        self.warm_throughput.as_ref()
   98    114   
    }
   99    115   
    /// <p>Replica-specific global secondary index settings.</p>
  100    116   
    ///
  101    117   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.global_secondary_indexes.is_none()`.
  102    118   
    pub fn global_secondary_indexes(&self) -> &[crate::types::ReplicaGlobalSecondaryIndexDescription] {
  103    119   
        self.global_secondary_indexes.as_deref().unwrap_or_default()
  104    120   
    }
  105    121   
    /// <p>The time at which the replica was first detected as inaccessible. To determine cause of inaccessibility check the <code>ReplicaStatus</code> property.</p>
  106    122   
    pub fn replica_inaccessible_date_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
  107    123   
        self.replica_inaccessible_date_time.as_ref()
  108    124   
    }
  109    125   
    /// <p>Contains details of the table class.</p>
  110    126   
    pub fn replica_table_class_summary(&self) -> ::std::option::Option<&crate::types::TableClassSummary> {
  111    127   
        self.replica_table_class_summary.as_ref()
  112    128   
    }
         129  +
    /// <p>Indicates one of the settings synchronization modes for the global table replica:</p>
         130  +
    /// <ul>
         131  +
    /// <li>
         132  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table replica is enabled.</p></li>
         133  +
    /// <li>
         134  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table replica is disabled.</p></li>
         135  +
    /// <li>
         136  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
         137  +
    /// </ul>
         138  +
    pub fn global_table_settings_replication_mode(&self) -> ::std::option::Option<&crate::types::GlobalTableSettingsReplicationMode> {
         139  +
        self.global_table_settings_replication_mode.as_ref()
         140  +
    }
  113    141   
}
  114    142   
impl ReplicaDescription {
  115    143   
    /// Creates a new builder-style object to manufacture [`ReplicaDescription`](crate::types::ReplicaDescription).
  116    144   
    pub fn builder() -> crate::types::builders::ReplicaDescriptionBuilder {
  117    145   
        crate::types::builders::ReplicaDescriptionBuilder::default()
  118    146   
    }
  119    147   
}
  120    148   
  121    149   
/// A builder for [`ReplicaDescription`](crate::types::ReplicaDescription).
  122    150   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
  123    151   
#[non_exhaustive]
  124    152   
pub struct ReplicaDescriptionBuilder {
  125    153   
    pub(crate) region_name: ::std::option::Option<::std::string::String>,
  126    154   
    pub(crate) replica_status: ::std::option::Option<crate::types::ReplicaStatus>,
         155  +
    pub(crate) replica_arn: ::std::option::Option<::std::string::String>,
  127    156   
    pub(crate) replica_status_description: ::std::option::Option<::std::string::String>,
  128    157   
    pub(crate) replica_status_percent_progress: ::std::option::Option<::std::string::String>,
  129    158   
    pub(crate) kms_master_key_id: ::std::option::Option<::std::string::String>,
  130    159   
    pub(crate) provisioned_throughput_override: ::std::option::Option<crate::types::ProvisionedThroughputOverride>,
  131    160   
    pub(crate) on_demand_throughput_override: ::std::option::Option<crate::types::OnDemandThroughputOverride>,
  132    161   
    pub(crate) warm_throughput: ::std::option::Option<crate::types::TableWarmThroughputDescription>,
  133    162   
    pub(crate) global_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaGlobalSecondaryIndexDescription>>,
  134    163   
    pub(crate) replica_inaccessible_date_time: ::std::option::Option<::aws_smithy_types::DateTime>,
  135    164   
    pub(crate) replica_table_class_summary: ::std::option::Option<crate::types::TableClassSummary>,
         165  +
    pub(crate) global_table_settings_replication_mode: ::std::option::Option<crate::types::GlobalTableSettingsReplicationMode>,
  136    166   
}
  137    167   
impl ReplicaDescriptionBuilder {
  138    168   
    /// <p>The name of the Region.</p>
  139    169   
    pub fn region_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  140    170   
        self.region_name = ::std::option::Option::Some(input.into());
  141    171   
        self
  142    172   
    }
  143    173   
    /// <p>The name of the Region.</p>
  144    174   
    pub fn set_region_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  145    175   
        self.region_name = input;
@@ -190,220 +249,293 @@
  210    240   
    /// <p>If the Amazon Web Services Region remains inaccessible for more than 20 hours, DynamoDB will remove this replica from the replication group. The replica will not be deleted and replication will stop from and to this region.</p>
  211    241   
    /// </note></li>
  212    242   
    /// <li>
  213    243   
    /// <p><code>INACCESSIBLE_ENCRYPTION_CREDENTIALS </code> - The KMS key used to encrypt the table is inaccessible.</p><note>
  214    244   
    /// <p>If the KMS key remains inaccessible for more than 20 hours, DynamoDB will remove this replica from the replication group. The replica will not be deleted and replication will stop from and to this region.</p>
  215    245   
    /// </note></li>
  216    246   
    /// </ul>
  217    247   
    pub fn get_replica_status(&self) -> &::std::option::Option<crate::types::ReplicaStatus> {
  218    248   
        &self.replica_status
  219    249   
    }
         250  +
    /// <p>The Amazon Resource Name (ARN) of the global table replica.</p>
         251  +
    pub fn replica_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         252  +
        self.replica_arn = ::std::option::Option::Some(input.into());
         253  +
        self
         254  +
    }
         255  +
    /// <p>The Amazon Resource Name (ARN) of the global table replica.</p>
         256  +
    pub fn set_replica_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         257  +
        self.replica_arn = input;
         258  +
        self
         259  +
    }
         260  +
    /// <p>The Amazon Resource Name (ARN) of the global table replica.</p>
         261  +
    pub fn get_replica_arn(&self) -> &::std::option::Option<::std::string::String> {
         262  +
        &self.replica_arn
         263  +
    }
  220    264   
    /// <p>Detailed information about the replica status.</p>
  221    265   
    pub fn replica_status_description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  222    266   
        self.replica_status_description = ::std::option::Option::Some(input.into());
  223    267   
        self
  224    268   
    }
  225    269   
    /// <p>Detailed information about the replica status.</p>
  226    270   
    pub fn set_replica_status_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  227    271   
        self.replica_status_description = input;
  228    272   
        self
  229    273   
    }
@@ -325,369 +371,458 @@
  345    389   
    }
  346    390   
    /// <p>Contains details of the table class.</p>
  347    391   
    pub fn set_replica_table_class_summary(mut self, input: ::std::option::Option<crate::types::TableClassSummary>) -> Self {
  348    392   
        self.replica_table_class_summary = input;
  349    393   
        self
  350    394   
    }
  351    395   
    /// <p>Contains details of the table class.</p>
  352    396   
    pub fn get_replica_table_class_summary(&self) -> &::std::option::Option<crate::types::TableClassSummary> {
  353    397   
        &self.replica_table_class_summary
  354    398   
    }
         399  +
    /// <p>Indicates one of the settings synchronization modes for the global table replica:</p>
         400  +
    /// <ul>
         401  +
    /// <li>
         402  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table replica is enabled.</p></li>
         403  +
    /// <li>
         404  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table replica is disabled.</p></li>
         405  +
    /// <li>
         406  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
         407  +
    /// </ul>
         408  +
    pub fn global_table_settings_replication_mode(mut self, input: crate::types::GlobalTableSettingsReplicationMode) -> Self {
         409  +
        self.global_table_settings_replication_mode = ::std::option::Option::Some(input);
         410  +
        self
         411  +
    }
         412  +
    /// <p>Indicates one of the settings synchronization modes for the global table replica:</p>
         413  +
    /// <ul>
         414  +
    /// <li>
         415  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table replica is enabled.</p></li>
         416  +
    /// <li>
         417  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table replica is disabled.</p></li>
         418  +
    /// <li>
         419  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
         420  +
    /// </ul>
         421  +
    pub fn set_global_table_settings_replication_mode(
         422  +
        mut self,
         423  +
        input: ::std::option::Option<crate::types::GlobalTableSettingsReplicationMode>,
         424  +
    ) -> Self {
         425  +
        self.global_table_settings_replication_mode = input;
         426  +
        self
         427  +
    }
         428  +
    /// <p>Indicates one of the settings synchronization modes for the global table replica:</p>
         429  +
    /// <ul>
         430  +
    /// <li>
         431  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table replica is enabled.</p></li>
         432  +
    /// <li>
         433  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table replica is disabled.</p></li>
         434  +
    /// <li>
         435  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
         436  +
    /// </ul>
         437  +
    pub fn get_global_table_settings_replication_mode(&self) -> &::std::option::Option<crate::types::GlobalTableSettingsReplicationMode> {
         438  +
        &self.global_table_settings_replication_mode
         439  +
    }
  355    440   
    /// Consumes the builder and constructs a [`ReplicaDescription`](crate::types::ReplicaDescription).
  356    441   
    pub fn build(self) -> crate::types::ReplicaDescription {
  357    442   
        crate::types::ReplicaDescription {
  358    443   
            region_name: self.region_name,
  359    444   
            replica_status: self.replica_status,
         445  +
            replica_arn: self.replica_arn,
  360    446   
            replica_status_description: self.replica_status_description,
  361    447   
            replica_status_percent_progress: self.replica_status_percent_progress,
  362    448   
            kms_master_key_id: self.kms_master_key_id,
  363    449   
            provisioned_throughput_override: self.provisioned_throughput_override,
  364    450   
            on_demand_throughput_override: self.on_demand_throughput_override,
  365    451   
            warm_throughput: self.warm_throughput,
  366    452   
            global_secondary_indexes: self.global_secondary_indexes,
  367    453   
            replica_inaccessible_date_time: self.replica_inaccessible_date_time,
  368    454   
            replica_table_class_summary: self.replica_table_class_summary,
         455  +
            global_table_settings_replication_mode: self.global_table_settings_replication_mode,
  369    456   
        }
  370    457   
    }
  371    458   
}

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/types/_table_description.rs

@@ -134,134 +193,203 @@
  154    154   
    /// </ul>
  155    155   
    pub latest_stream_label: ::std::option::Option<::std::string::String>,
  156    156   
    /// <p>The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this table.</p>
  157    157   
    pub latest_stream_arn: ::std::option::Option<::std::string::String>,
  158    158   
    /// <p>Represents the version of <a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html">global tables</a> in use, if the table is replicated across Amazon Web Services Regions.</p>
  159    159   
    pub global_table_version: ::std::option::Option<::std::string::String>,
  160    160   
    /// <p>Represents replicas of the table.</p>
  161    161   
    pub replicas: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaDescription>>,
  162    162   
    /// <p>The witness Region and its current status in the MRSC global table. Only one witness Region can be configured per MRSC global table.</p>
  163    163   
    pub global_table_witnesses: ::std::option::Option<::std::vec::Vec<crate::types::GlobalTableWitnessDescription>>,
         164  +
    /// <p>Indicates one of the settings synchronization modes for the global table:</p>
         165  +
    /// <ul>
         166  +
    /// <li>
         167  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table is enabled.</p></li>
         168  +
    /// <li>
         169  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table is disabled.</p></li>
         170  +
    /// <li>
         171  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
         172  +
    /// </ul>
         173  +
    pub global_table_settings_replication_mode: ::std::option::Option<crate::types::GlobalTableSettingsReplicationMode>,
  164    174   
    /// <p>Contains details for the restore.</p>
  165    175   
    pub restore_summary: ::std::option::Option<crate::types::RestoreSummary>,
  166    176   
    /// <p>The description of the server-side encryption status on the specified table.</p>
  167    177   
    pub sse_description: ::std::option::Option<crate::types::SseDescription>,
  168    178   
    /// <p>Contains information about the table archive.</p>
  169    179   
    pub archival_summary: ::std::option::Option<crate::types::ArchivalSummary>,
  170    180   
    /// <p>Contains details of the table class.</p>
  171    181   
    pub table_class_summary: ::std::option::Option<crate::types::TableClassSummary>,
  172    182   
    /// <p>Indicates whether deletion protection is enabled (true) or disabled (false) on the table.</p>
  173    183   
    pub deletion_protection_enabled: ::std::option::Option<bool>,
@@ -366,376 +425,447 @@
  386    396   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.replicas.is_none()`.
  387    397   
    pub fn replicas(&self) -> &[crate::types::ReplicaDescription] {
  388    398   
        self.replicas.as_deref().unwrap_or_default()
  389    399   
    }
  390    400   
    /// <p>The witness Region and its current status in the MRSC global table. Only one witness Region can be configured per MRSC global table.</p>
  391    401   
    ///
  392    402   
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.global_table_witnesses.is_none()`.
  393    403   
    pub fn global_table_witnesses(&self) -> &[crate::types::GlobalTableWitnessDescription] {
  394    404   
        self.global_table_witnesses.as_deref().unwrap_or_default()
  395    405   
    }
         406  +
    /// <p>Indicates one of the settings synchronization modes for the global table:</p>
         407  +
    /// <ul>
         408  +
    /// <li>
         409  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table is enabled.</p></li>
         410  +
    /// <li>
         411  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table is disabled.</p></li>
         412  +
    /// <li>
         413  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
         414  +
    /// </ul>
         415  +
    pub fn global_table_settings_replication_mode(&self) -> ::std::option::Option<&crate::types::GlobalTableSettingsReplicationMode> {
         416  +
        self.global_table_settings_replication_mode.as_ref()
         417  +
    }
  396    418   
    /// <p>Contains details for the restore.</p>
  397    419   
    pub fn restore_summary(&self) -> ::std::option::Option<&crate::types::RestoreSummary> {
  398    420   
        self.restore_summary.as_ref()
  399    421   
    }
  400    422   
    /// <p>The description of the server-side encryption status on the specified table.</p>
  401    423   
    pub fn sse_description(&self) -> ::std::option::Option<&crate::types::SseDescription> {
  402    424   
        self.sse_description.as_ref()
  403    425   
    }
  404    426   
    /// <p>Contains information about the table archive.</p>
  405    427   
    pub fn archival_summary(&self) -> ::std::option::Option<&crate::types::ArchivalSummary> {
@@ -436,458 +495,518 @@
  456    478   
    pub(crate) table_id: ::std::option::Option<::std::string::String>,
  457    479   
    pub(crate) billing_mode_summary: ::std::option::Option<crate::types::BillingModeSummary>,
  458    480   
    pub(crate) local_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::LocalSecondaryIndexDescription>>,
  459    481   
    pub(crate) global_secondary_indexes: ::std::option::Option<::std::vec::Vec<crate::types::GlobalSecondaryIndexDescription>>,
  460    482   
    pub(crate) stream_specification: ::std::option::Option<crate::types::StreamSpecification>,
  461    483   
    pub(crate) latest_stream_label: ::std::option::Option<::std::string::String>,
  462    484   
    pub(crate) latest_stream_arn: ::std::option::Option<::std::string::String>,
  463    485   
    pub(crate) global_table_version: ::std::option::Option<::std::string::String>,
  464    486   
    pub(crate) replicas: ::std::option::Option<::std::vec::Vec<crate::types::ReplicaDescription>>,
  465    487   
    pub(crate) global_table_witnesses: ::std::option::Option<::std::vec::Vec<crate::types::GlobalTableWitnessDescription>>,
         488  +
    pub(crate) global_table_settings_replication_mode: ::std::option::Option<crate::types::GlobalTableSettingsReplicationMode>,
  466    489   
    pub(crate) restore_summary: ::std::option::Option<crate::types::RestoreSummary>,
  467    490   
    pub(crate) sse_description: ::std::option::Option<crate::types::SseDescription>,
  468    491   
    pub(crate) archival_summary: ::std::option::Option<crate::types::ArchivalSummary>,
  469    492   
    pub(crate) table_class_summary: ::std::option::Option<crate::types::TableClassSummary>,
  470    493   
    pub(crate) deletion_protection_enabled: ::std::option::Option<bool>,
  471    494   
    pub(crate) on_demand_throughput: ::std::option::Option<crate::types::OnDemandThroughput>,
  472    495   
    pub(crate) warm_throughput: ::std::option::Option<crate::types::TableWarmThroughputDescription>,
  473    496   
    pub(crate) multi_region_consistency: ::std::option::Option<crate::types::MultiRegionConsistency>,
  474    497   
}
  475    498   
impl TableDescriptionBuilder {
@@ -1111,1134 +1170,1234 @@
 1131   1154   
    }
 1132   1155   
    /// <p>The witness Region and its current status in the MRSC global table. Only one witness Region can be configured per MRSC global table.</p>
 1133   1156   
    pub fn set_global_table_witnesses(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::GlobalTableWitnessDescription>>) -> Self {
 1134   1157   
        self.global_table_witnesses = input;
 1135   1158   
        self
 1136   1159   
    }
 1137   1160   
    /// <p>The witness Region and its current status in the MRSC global table. Only one witness Region can be configured per MRSC global table.</p>
 1138   1161   
    pub fn get_global_table_witnesses(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::GlobalTableWitnessDescription>> {
 1139   1162   
        &self.global_table_witnesses
 1140   1163   
    }
        1164  +
    /// <p>Indicates one of the settings synchronization modes for the global table:</p>
        1165  +
    /// <ul>
        1166  +
    /// <li>
        1167  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table is enabled.</p></li>
        1168  +
    /// <li>
        1169  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table is disabled.</p></li>
        1170  +
    /// <li>
        1171  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
        1172  +
    /// </ul>
        1173  +
    pub fn global_table_settings_replication_mode(mut self, input: crate::types::GlobalTableSettingsReplicationMode) -> Self {
        1174  +
        self.global_table_settings_replication_mode = ::std::option::Option::Some(input);
        1175  +
        self
        1176  +
    }
        1177  +
    /// <p>Indicates one of the settings synchronization modes for the global table:</p>
        1178  +
    /// <ul>
        1179  +
    /// <li>
        1180  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table is enabled.</p></li>
        1181  +
    /// <li>
        1182  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table is disabled.</p></li>
        1183  +
    /// <li>
        1184  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
        1185  +
    /// </ul>
        1186  +
    pub fn set_global_table_settings_replication_mode(
        1187  +
        mut self,
        1188  +
        input: ::std::option::Option<crate::types::GlobalTableSettingsReplicationMode>,
        1189  +
    ) -> Self {
        1190  +
        self.global_table_settings_replication_mode = input;
        1191  +
        self
        1192  +
    }
        1193  +
    /// <p>Indicates one of the settings synchronization modes for the global table:</p>
        1194  +
    /// <ul>
        1195  +
    /// <li>
        1196  +
    /// <p><code>ENABLED</code>: Indicates that the settings synchronization mode for the global table is enabled.</p></li>
        1197  +
    /// <li>
        1198  +
    /// <p><code>DISABLED</code>: Indicates that the settings synchronization mode for the global table is disabled.</p></li>
        1199  +
    /// <li>
        1200  +
    /// <p><code>ENABLED_WITH_OVERRIDES</code>: This mode is set by default for a same account global table. Indicates that certain global table settings can be overridden.</p></li>
        1201  +
    /// </ul>
        1202  +
    pub fn get_global_table_settings_replication_mode(&self) -> &::std::option::Option<crate::types::GlobalTableSettingsReplicationMode> {
        1203  +
        &self.global_table_settings_replication_mode
        1204  +
    }
 1141   1205   
    /// <p>Contains details for the restore.</p>
 1142   1206   
    pub fn restore_summary(mut self, input: crate::types::RestoreSummary) -> Self {
 1143   1207   
        self.restore_summary = ::std::option::Option::Some(input);
 1144   1208   
        self
 1145   1209   
    }
 1146   1210   
    /// <p>Contains details for the restore.</p>
 1147   1211   
    pub fn set_restore_summary(mut self, input: ::std::option::Option<crate::types::RestoreSummary>) -> Self {
 1148   1212   
        self.restore_summary = input;
 1149   1213   
        self
 1150   1214   
    }
@@ -1266,1330 +1306,1371 @@
 1286   1350   
            table_id: self.table_id,
 1287   1351   
            billing_mode_summary: self.billing_mode_summary,
 1288   1352   
            local_secondary_indexes: self.local_secondary_indexes,
 1289   1353   
            global_secondary_indexes: self.global_secondary_indexes,
 1290   1354   
            stream_specification: self.stream_specification,
 1291   1355   
            latest_stream_label: self.latest_stream_label,
 1292   1356   
            latest_stream_arn: self.latest_stream_arn,
 1293   1357   
            global_table_version: self.global_table_version,
 1294   1358   
            replicas: self.replicas,
 1295   1359   
            global_table_witnesses: self.global_table_witnesses,
        1360  +
            global_table_settings_replication_mode: self.global_table_settings_replication_mode,
 1296   1361   
            restore_summary: self.restore_summary,
 1297   1362   
            sse_description: self.sse_description,
 1298   1363   
            archival_summary: self.archival_summary,
 1299   1364   
            table_class_summary: self.table_class_summary,
 1300   1365   
            deletion_protection_enabled: self.deletion_protection_enabled,
 1301   1366   
            on_demand_throughput: self.on_demand_throughput,
 1302   1367   
            warm_throughput: self.warm_throughput,
 1303   1368   
            multi_region_consistency: self.multi_region_consistency,
 1304   1369   
        }
 1305   1370   
    }

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/types/error/_transaction_canceled_exception.rs

@@ -2,2 +62,62 @@
   22     22   
/// <ul>
   23     23   
/// <li>
   24     24   
/// <p>There is an ongoing <code>TransactGetItems</code> operation that conflicts with a concurrent <code>PutItem</code>, <code>UpdateItem</code>, <code>DeleteItem</code> or <code>TransactWriteItems</code> request. In this case the <code>TransactGetItems</code> operation fails with a <code>TransactionCanceledException</code>.</p></li>
   25     25   
/// <li>
   26     26   
/// <p>A table in the <code>TransactGetItems</code> request is in a different account or region.</p></li>
   27     27   
/// <li>
   28     28   
/// <p>There is insufficient provisioned capacity for the transaction to be completed.</p></li>
   29     29   
/// <li>
   30     30   
/// <p>There is a user error, such as an invalid data format.</p></li>
   31     31   
/// </ul><note>
   32         -
/// <p>If using Java, DynamoDB lists the cancellation reasons on the <code>CancellationReasons</code> property. This property is not set for other languages. Transaction cancellation reasons are ordered in the order of requested items, if an item has no error it will have <code>None</code> code and <code>Null</code> message.</p>
          32  +
/// <p>DynamoDB lists the cancellation reasons on the <code>CancellationReasons</code> property. Transaction cancellation reasons are ordered in the order of requested items, if an item has no error it will have <code>None</code> code and <code>Null</code> message.</p>
   33     33   
/// </note>
   34     34   
/// <p>Cancellation reason codes and possible error messages:</p>
   35     35   
/// <ul>
   36     36   
/// <li>
   37     37   
/// <p>No Errors:</p>
   38     38   
/// <ul>
   39     39   
/// <li>
   40     40   
/// <p>Code: <code>None</code></p></li>
   41     41   
/// <li>
   42     42   
/// <p>Message: <code>null</code></p></li>

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/waiters.rs

@@ -1,1 +11,23 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
           3  +
/// Supporting types for the `contributor_insights_enabled` waiter.
           4  +
pub mod contributor_insights_enabled;
           5  +
           6  +
/// Supporting types for the `export_completed` waiter.
           7  +
pub mod export_completed;
           8  +
           9  +
/// Supporting types for the `import_completed` waiter.
          10  +
pub mod import_completed;
          11  +
          12  +
/// Supporting types for the `kinesis_streaming_destination_active` waiter.
          13  +
pub mod kinesis_streaming_destination_active;
          14  +
    3     15   
/// Supporting types for the `table_exists` waiter.
    4     16   
pub mod table_exists;
    5     17   
    6     18   
/// Supporting types for the `table_not_exists` waiter.
    7     19   
pub mod table_not_exists;
    8     20   
    9     21   
#[allow(clippy::needless_lifetimes)]
   10     22   
#[allow(clippy::let_and_return)]
   11     23   
pub(crate) mod matchers;

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/waiters/contributor_insights_enabled.rs

@@ -0,1 +0,130 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
///
           4  +
/// Fluent builder for the `contributor_insights_enabled` waiter.
           5  +
///
           6  +
/// This builder is intended to be used similar to the other fluent builders for
           7  +
/// normal operations on the client. However, instead of a `send` method, it has
           8  +
/// a `wait` method that takes a maximum amount of time to wait.
           9  +
///
          10  +
/// Construct this fluent builder using the client by importing the
          11  +
/// [`Waiters`](crate::client::Waiters) trait and calling the methods
          12  +
/// prefixed with `wait_until`.
          13  +
///
          14  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          15  +
pub struct ContributorInsightsEnabledFluentBuilder {
          16  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          17  +
    inner: crate::operation::describe_contributor_insights::builders::DescribeContributorInsightsInputBuilder,
          18  +
}
          19  +
impl ContributorInsightsEnabledFluentBuilder {
          20  +
    /// Creates a new `ContributorInsightsEnabledFluentBuilder`.
          21  +
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
          22  +
        Self {
          23  +
            handle,
          24  +
            inner: ::std::default::Default::default(),
          25  +
        }
          26  +
    }
          27  +
    /// Access the DescribeContributorInsights as a reference.
          28  +
    pub fn as_input(&self) -> &crate::operation::describe_contributor_insights::builders::DescribeContributorInsightsInputBuilder {
          29  +
        &self.inner
          30  +
    }
          31  +
    /// Wait for `contributor_insights_enabled`
          32  +
    pub async fn wait(
          33  +
        self,
          34  +
        max_wait: ::std::time::Duration,
          35  +
    ) -> ::std::result::Result<
          36  +
        crate::waiters::contributor_insights_enabled::ContributorInsightsEnabledFinalPoll,
          37  +
        crate::waiters::contributor_insights_enabled::WaitUntilContributorInsightsEnabledError,
          38  +
    > {
          39  +
        let input = self
          40  +
            .inner
          41  +
            .build()
          42  +
            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
          43  +
        let runtime_plugins = crate::operation::describe_contributor_insights::DescribeContributorInsights::operation_runtime_plugins(
          44  +
            self.handle.runtime_plugins.clone(),
          45  +
            &self.handle.conf,
          46  +
            ::std::option::Option::None,
          47  +
        )
          48  +
        .with_operation_plugin(crate::sdk_feature_tracker::waiter::WaiterFeatureTrackerRuntimePlugin::new());
          49  +
        let mut cfg = ::aws_smithy_types::config_bag::ConfigBag::base();
          50  +
        let runtime_components_builder = runtime_plugins
          51  +
            .apply_client_configuration(&mut cfg)
          52  +
            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
          53  +
        let time_components = runtime_components_builder.into_time_components();
          54  +
        let sleep_impl = time_components.sleep_impl().expect("a sleep impl is required by waiters");
          55  +
        let time_source = time_components.time_source().expect("a time source is required by waiters");
          56  +
          57  +
        let acceptor = move |result: ::std::result::Result<
          58  +
            &crate::operation::describe_contributor_insights::DescribeContributorInsightsOutput,
          59  +
            &crate::operation::describe_contributor_insights::DescribeContributorInsightsError,
          60  +
        >| {
          61  +
            // Matches: {"output":{"path":"ContributorInsightsStatus","expected":"ENABLED","comparator":"stringEquals"}}
          62  +
            if crate::waiters::matchers::match_describe_contributor_insights_57787899eaa02d958(result) {
          63  +
                return ::aws_smithy_runtime::client::waiters::AcceptorState::Success;
          64  +
            }
          65  +
            // Matches: {"output":{"path":"ContributorInsightsStatus","expected":"FAILED","comparator":"stringEquals"}}
          66  +
            if crate::waiters::matchers::match_describe_contributor_insights_5ba948784ca4cb322(result) {
          67  +
                return ::aws_smithy_runtime::client::waiters::AcceptorState::Failure;
          68  +
            }
          69  +
            ::aws_smithy_runtime::client::waiters::AcceptorState::NoAcceptorsMatched
          70  +
        };
          71  +
        let operation = move || {
          72  +
            let input = input.clone();
          73  +
            let runtime_plugins = runtime_plugins.clone();
          74  +
            async move { crate::operation::describe_contributor_insights::DescribeContributorInsights::orchestrate(&runtime_plugins, input).await }
          75  +
        };
          76  +
        let orchestrator = ::aws_smithy_runtime::client::waiters::WaiterOrchestrator::builder()
          77  +
            .min_delay(::std::time::Duration::from_secs(20))
          78  +
            .max_delay(::std::time::Duration::from_secs(120))
          79  +
            .max_wait(max_wait)
          80  +
            .time_source(time_source)
          81  +
            .sleep_impl(sleep_impl)
          82  +
            .acceptor(acceptor)
          83  +
            .operation(operation)
          84  +
            .build();
          85  +
        ::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
          86  +
    }
          87  +
    /// <p>The name of the table to describe. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
          88  +
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          89  +
        self.inner = self.inner.table_name(input.into());
          90  +
        self
          91  +
    }
          92  +
    /// <p>The name of the table to describe. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
          93  +
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          94  +
        self.inner = self.inner.set_table_name(input);
          95  +
        self
          96  +
    }
          97  +
    /// <p>The name of the table to describe. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
          98  +
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
          99  +
        self.inner.get_table_name()
         100  +
    }
         101  +
    /// <p>The name of the global secondary index to describe, if applicable.</p>
         102  +
    pub fn index_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         103  +
        self.inner = self.inner.index_name(input.into());
         104  +
        self
         105  +
    }
         106  +
    /// <p>The name of the global secondary index to describe, if applicable.</p>
         107  +
    pub fn set_index_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         108  +
        self.inner = self.inner.set_index_name(input);
         109  +
        self
         110  +
    }
         111  +
    /// <p>The name of the global secondary index to describe, if applicable.</p>
         112  +
    pub fn get_index_name(&self) -> &::std::option::Option<::std::string::String> {
         113  +
        self.inner.get_index_name()
         114  +
    }
         115  +
}
         116  +
         117  +
/// Successful return type for the `contributor_insights_enabled` waiter.
         118  +
pub type ContributorInsightsEnabledFinalPoll = ::aws_smithy_runtime_api::client::waiters::FinalPoll<
         119  +
    crate::operation::describe_contributor_insights::DescribeContributorInsightsOutput,
         120  +
    ::aws_smithy_runtime_api::client::result::SdkError<
         121  +
        crate::operation::describe_contributor_insights::DescribeContributorInsightsError,
         122  +
        ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         123  +
    >,
         124  +
>;
         125  +
         126  +
/// Error type for the `contributor_insights_enabled` waiter.
         127  +
pub type WaitUntilContributorInsightsEnabledError = ::aws_smithy_runtime_api::client::waiters::error::WaiterError<
         128  +
    crate::operation::describe_contributor_insights::DescribeContributorInsightsOutput,
         129  +
    crate::operation::describe_contributor_insights::DescribeContributorInsightsError,
         130  +
>;

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/waiters/export_completed.rs

@@ -0,1 +0,116 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
///
           4  +
/// Fluent builder for the `export_completed` waiter.
           5  +
///
           6  +
/// This builder is intended to be used similar to the other fluent builders for
           7  +
/// normal operations on the client. However, instead of a `send` method, it has
           8  +
/// a `wait` method that takes a maximum amount of time to wait.
           9  +
///
          10  +
/// Construct this fluent builder using the client by importing the
          11  +
/// [`Waiters`](crate::client::Waiters) trait and calling the methods
          12  +
/// prefixed with `wait_until`.
          13  +
///
          14  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          15  +
pub struct ExportCompletedFluentBuilder {
          16  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          17  +
    inner: crate::operation::describe_export::builders::DescribeExportInputBuilder,
          18  +
}
          19  +
impl ExportCompletedFluentBuilder {
          20  +
    /// Creates a new `ExportCompletedFluentBuilder`.
          21  +
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
          22  +
        Self {
          23  +
            handle,
          24  +
            inner: ::std::default::Default::default(),
          25  +
        }
          26  +
    }
          27  +
    /// Access the DescribeExport as a reference.
          28  +
    pub fn as_input(&self) -> &crate::operation::describe_export::builders::DescribeExportInputBuilder {
          29  +
        &self.inner
          30  +
    }
          31  +
    /// Wait for `export_completed`
          32  +
    pub async fn wait(
          33  +
        self,
          34  +
        max_wait: ::std::time::Duration,
          35  +
    ) -> ::std::result::Result<
          36  +
        crate::waiters::export_completed::ExportCompletedFinalPoll,
          37  +
        crate::waiters::export_completed::WaitUntilExportCompletedError,
          38  +
    > {
          39  +
        let input = self
          40  +
            .inner
          41  +
            .build()
          42  +
            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
          43  +
        let runtime_plugins = crate::operation::describe_export::DescribeExport::operation_runtime_plugins(
          44  +
            self.handle.runtime_plugins.clone(),
          45  +
            &self.handle.conf,
          46  +
            ::std::option::Option::None,
          47  +
        )
          48  +
        .with_operation_plugin(crate::sdk_feature_tracker::waiter::WaiterFeatureTrackerRuntimePlugin::new());
          49  +
        let mut cfg = ::aws_smithy_types::config_bag::ConfigBag::base();
          50  +
        let runtime_components_builder = runtime_plugins
          51  +
            .apply_client_configuration(&mut cfg)
          52  +
            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
          53  +
        let time_components = runtime_components_builder.into_time_components();
          54  +
        let sleep_impl = time_components.sleep_impl().expect("a sleep impl is required by waiters");
          55  +
        let time_source = time_components.time_source().expect("a time source is required by waiters");
          56  +
          57  +
        let acceptor = move |result: ::std::result::Result<
          58  +
            &crate::operation::describe_export::DescribeExportOutput,
          59  +
            &crate::operation::describe_export::DescribeExportError,
          60  +
        >| {
          61  +
            // Matches: {"output":{"path":"ExportDescription.ExportStatus","expected":"COMPLETED","comparator":"stringEquals"}}
          62  +
            if crate::waiters::matchers::match_describe_export_a4219f96bc64309c4(result) {
          63  +
                return ::aws_smithy_runtime::client::waiters::AcceptorState::Success;
          64  +
            }
          65  +
            // Matches: {"output":{"path":"ExportDescription.ExportStatus","expected":"FAILED","comparator":"stringEquals"}}
          66  +
            if crate::waiters::matchers::match_describe_export_8d899fd0681b891e9(result) {
          67  +
                return ::aws_smithy_runtime::client::waiters::AcceptorState::Failure;
          68  +
            }
          69  +
            ::aws_smithy_runtime::client::waiters::AcceptorState::NoAcceptorsMatched
          70  +
        };
          71  +
        let operation = move || {
          72  +
            let input = input.clone();
          73  +
            let runtime_plugins = runtime_plugins.clone();
          74  +
            async move { crate::operation::describe_export::DescribeExport::orchestrate(&runtime_plugins, input).await }
          75  +
        };
          76  +
        let orchestrator = ::aws_smithy_runtime::client::waiters::WaiterOrchestrator::builder()
          77  +
            .min_delay(::std::time::Duration::from_secs(20))
          78  +
            .max_delay(::std::time::Duration::from_secs(120))
          79  +
            .max_wait(max_wait)
          80  +
            .time_source(time_source)
          81  +
            .sleep_impl(sleep_impl)
          82  +
            .acceptor(acceptor)
          83  +
            .operation(operation)
          84  +
            .build();
          85  +
        ::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
          86  +
    }
          87  +
    /// <p>The Amazon Resource Name (ARN) associated with the export.</p>
          88  +
    pub fn export_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          89  +
        self.inner = self.inner.export_arn(input.into());
          90  +
        self
          91  +
    }
          92  +
    /// <p>The Amazon Resource Name (ARN) associated with the export.</p>
          93  +
    pub fn set_export_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          94  +
        self.inner = self.inner.set_export_arn(input);
          95  +
        self
          96  +
    }
          97  +
    /// <p>The Amazon Resource Name (ARN) associated with the export.</p>
          98  +
    pub fn get_export_arn(&self) -> &::std::option::Option<::std::string::String> {
          99  +
        self.inner.get_export_arn()
         100  +
    }
         101  +
}
         102  +
         103  +
/// Successful return type for the `export_completed` waiter.
         104  +
pub type ExportCompletedFinalPoll = ::aws_smithy_runtime_api::client::waiters::FinalPoll<
         105  +
    crate::operation::describe_export::DescribeExportOutput,
         106  +
    ::aws_smithy_runtime_api::client::result::SdkError<
         107  +
        crate::operation::describe_export::DescribeExportError,
         108  +
        ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         109  +
    >,
         110  +
>;
         111  +
         112  +
/// Error type for the `export_completed` waiter.
         113  +
pub type WaitUntilExportCompletedError = ::aws_smithy_runtime_api::client::waiters::error::WaiterError<
         114  +
    crate::operation::describe_export::DescribeExportOutput,
         115  +
    crate::operation::describe_export::DescribeExportError,
         116  +
>;

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/waiters/import_completed.rs

@@ -0,1 +0,120 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
///
           4  +
/// Fluent builder for the `import_completed` waiter.
           5  +
///
           6  +
/// This builder is intended to be used similar to the other fluent builders for
           7  +
/// normal operations on the client. However, instead of a `send` method, it has
           8  +
/// a `wait` method that takes a maximum amount of time to wait.
           9  +
///
          10  +
/// Construct this fluent builder using the client by importing the
          11  +
/// [`Waiters`](crate::client::Waiters) trait and calling the methods
          12  +
/// prefixed with `wait_until`.
          13  +
///
          14  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          15  +
pub struct ImportCompletedFluentBuilder {
          16  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          17  +
    inner: crate::operation::describe_import::builders::DescribeImportInputBuilder,
          18  +
}
          19  +
impl ImportCompletedFluentBuilder {
          20  +
    /// Creates a new `ImportCompletedFluentBuilder`.
          21  +
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
          22  +
        Self {
          23  +
            handle,
          24  +
            inner: ::std::default::Default::default(),
          25  +
        }
          26  +
    }
          27  +
    /// Access the DescribeImport as a reference.
          28  +
    pub fn as_input(&self) -> &crate::operation::describe_import::builders::DescribeImportInputBuilder {
          29  +
        &self.inner
          30  +
    }
          31  +
    /// Wait for `import_completed`
          32  +
    pub async fn wait(
          33  +
        self,
          34  +
        max_wait: ::std::time::Duration,
          35  +
    ) -> ::std::result::Result<
          36  +
        crate::waiters::import_completed::ImportCompletedFinalPoll,
          37  +
        crate::waiters::import_completed::WaitUntilImportCompletedError,
          38  +
    > {
          39  +
        let input = self
          40  +
            .inner
          41  +
            .build()
          42  +
            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
          43  +
        let runtime_plugins = crate::operation::describe_import::DescribeImport::operation_runtime_plugins(
          44  +
            self.handle.runtime_plugins.clone(),
          45  +
            &self.handle.conf,
          46  +
            ::std::option::Option::None,
          47  +
        )
          48  +
        .with_operation_plugin(crate::sdk_feature_tracker::waiter::WaiterFeatureTrackerRuntimePlugin::new());
          49  +
        let mut cfg = ::aws_smithy_types::config_bag::ConfigBag::base();
          50  +
        let runtime_components_builder = runtime_plugins
          51  +
            .apply_client_configuration(&mut cfg)
          52  +
            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
          53  +
        let time_components = runtime_components_builder.into_time_components();
          54  +
        let sleep_impl = time_components.sleep_impl().expect("a sleep impl is required by waiters");
          55  +
        let time_source = time_components.time_source().expect("a time source is required by waiters");
          56  +
          57  +
        let acceptor = move |result: ::std::result::Result<
          58  +
            &crate::operation::describe_import::DescribeImportOutput,
          59  +
            &crate::operation::describe_import::DescribeImportError,
          60  +
        >| {
          61  +
            // Matches: {"output":{"path":"ImportTableDescription.ImportStatus","expected":"COMPLETED","comparator":"stringEquals"}}
          62  +
            if crate::waiters::matchers::match_describe_import_6175a829c57972dc3(result) {
          63  +
                return ::aws_smithy_runtime::client::waiters::AcceptorState::Success;
          64  +
            }
          65  +
            // Matches: {"output":{"path":"ImportTableDescription.ImportStatus","expected":"FAILED","comparator":"stringEquals"}}
          66  +
            if crate::waiters::matchers::match_describe_import_ba4301a7fe05a6956(result) {
          67  +
                return ::aws_smithy_runtime::client::waiters::AcceptorState::Failure;
          68  +
            }
          69  +
            // Matches: {"output":{"path":"ImportTableDescription.ImportStatus","expected":"CANCELLED","comparator":"stringEquals"}}
          70  +
            if crate::waiters::matchers::match_describe_import_b4c5c86bd60d42041(result) {
          71  +
                return ::aws_smithy_runtime::client::waiters::AcceptorState::Failure;
          72  +
            }
          73  +
            ::aws_smithy_runtime::client::waiters::AcceptorState::NoAcceptorsMatched
          74  +
        };
          75  +
        let operation = move || {
          76  +
            let input = input.clone();
          77  +
            let runtime_plugins = runtime_plugins.clone();
          78  +
            async move { crate::operation::describe_import::DescribeImport::orchestrate(&runtime_plugins, input).await }
          79  +
        };
          80  +
        let orchestrator = ::aws_smithy_runtime::client::waiters::WaiterOrchestrator::builder()
          81  +
            .min_delay(::std::time::Duration::from_secs(20))
          82  +
            .max_delay(::std::time::Duration::from_secs(120))
          83  +
            .max_wait(max_wait)
          84  +
            .time_source(time_source)
          85  +
            .sleep_impl(sleep_impl)
          86  +
            .acceptor(acceptor)
          87  +
            .operation(operation)
          88  +
            .build();
          89  +
        ::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
          90  +
    }
          91  +
    /// <p>The Amazon Resource Name (ARN) associated with the table you're importing to.</p>
          92  +
    pub fn import_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          93  +
        self.inner = self.inner.import_arn(input.into());
          94  +
        self
          95  +
    }
          96  +
    /// <p>The Amazon Resource Name (ARN) associated with the table you're importing to.</p>
          97  +
    pub fn set_import_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          98  +
        self.inner = self.inner.set_import_arn(input);
          99  +
        self
         100  +
    }
         101  +
    /// <p>The Amazon Resource Name (ARN) associated with the table you're importing to.</p>
         102  +
    pub fn get_import_arn(&self) -> &::std::option::Option<::std::string::String> {
         103  +
        self.inner.get_import_arn()
         104  +
    }
         105  +
}
         106  +
         107  +
/// Successful return type for the `import_completed` waiter.
         108  +
pub type ImportCompletedFinalPoll = ::aws_smithy_runtime_api::client::waiters::FinalPoll<
         109  +
    crate::operation::describe_import::DescribeImportOutput,
         110  +
    ::aws_smithy_runtime_api::client::result::SdkError<
         111  +
        crate::operation::describe_import::DescribeImportError,
         112  +
        ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         113  +
    >,
         114  +
>;
         115  +
         116  +
/// Error type for the `import_completed` waiter.
         117  +
pub type WaitUntilImportCompletedError = ::aws_smithy_runtime_api::client::waiters::error::WaiterError<
         118  +
    crate::operation::describe_import::DescribeImportOutput,
         119  +
    crate::operation::describe_import::DescribeImportError,
         120  +
>;

tmp-codegen-diff/aws-sdk/sdk/dynamodb/src/waiters/kinesis_streaming_destination_active.rs

@@ -0,1 +0,120 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
           3  +
///
           4  +
/// Fluent builder for the `kinesis_streaming_destination_active` waiter.
           5  +
///
           6  +
/// This builder is intended to be used similar to the other fluent builders for
           7  +
/// normal operations on the client. However, instead of a `send` method, it has
           8  +
/// a `wait` method that takes a maximum amount of time to wait.
           9  +
///
          10  +
/// Construct this fluent builder using the client by importing the
          11  +
/// [`Waiters`](crate::client::Waiters) trait and calling the methods
          12  +
/// prefixed with `wait_until`.
          13  +
///
          14  +
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
          15  +
pub struct KinesisStreamingDestinationActiveFluentBuilder {
          16  +
    handle: ::std::sync::Arc<crate::client::Handle>,
          17  +
    inner: crate::operation::describe_kinesis_streaming_destination::builders::DescribeKinesisStreamingDestinationInputBuilder,
          18  +
}
          19  +
impl KinesisStreamingDestinationActiveFluentBuilder {
          20  +
    /// Creates a new `KinesisStreamingDestinationActiveFluentBuilder`.
          21  +
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
          22  +
        Self {
          23  +
            handle,
          24  +
            inner: ::std::default::Default::default(),
          25  +
        }
          26  +
    }
          27  +
    /// Access the DescribeKinesisStreamingDestination as a reference.
          28  +
    pub fn as_input(&self) -> &crate::operation::describe_kinesis_streaming_destination::builders::DescribeKinesisStreamingDestinationInputBuilder {
          29  +
        &self.inner
          30  +
    }
          31  +
    /// Wait for `kinesis_streaming_destination_active`
          32  +
    pub async fn wait(
          33  +
        self,
          34  +
        max_wait: ::std::time::Duration,
          35  +
    ) -> ::std::result::Result<
          36  +
        crate::waiters::kinesis_streaming_destination_active::KinesisStreamingDestinationActiveFinalPoll,
          37  +
        crate::waiters::kinesis_streaming_destination_active::WaitUntilKinesisStreamingDestinationActiveError,
          38  +
    > {
          39  +
        let input = self
          40  +
            .inner
          41  +
            .build()
          42  +
            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
          43  +
        let runtime_plugins =
          44  +
            crate::operation::describe_kinesis_streaming_destination::DescribeKinesisStreamingDestination::operation_runtime_plugins(
          45  +
                self.handle.runtime_plugins.clone(),
          46  +
                &self.handle.conf,
          47  +
                ::std::option::Option::None,
          48  +
            )
          49  +
            .with_operation_plugin(crate::sdk_feature_tracker::waiter::WaiterFeatureTrackerRuntimePlugin::new());
          50  +
        let mut cfg = ::aws_smithy_types::config_bag::ConfigBag::base();
          51  +
        let runtime_components_builder = runtime_plugins
          52  +
            .apply_client_configuration(&mut cfg)
          53  +
            .map_err(::aws_smithy_runtime_api::client::waiters::error::WaiterError::construction_failure)?;
          54  +
        let time_components = runtime_components_builder.into_time_components();
          55  +
        let sleep_impl = time_components.sleep_impl().expect("a sleep impl is required by waiters");
          56  +
        let time_source = time_components.time_source().expect("a time source is required by waiters");
          57  +
          58  +
        let acceptor = move |result: ::std::result::Result<
          59  +
            &crate::operation::describe_kinesis_streaming_destination::DescribeKinesisStreamingDestinationOutput,
          60  +
            &crate::operation::describe_kinesis_streaming_destination::DescribeKinesisStreamingDestinationError,
          61  +
        >| {
          62  +
            // Matches: {"output":{"path":"KinesisDataStreamDestinations[].DestinationStatus","expected":"ACTIVE","comparator":"anyStringEquals"}}
          63  +
            if crate::waiters::matchers::match_describe_kinesis_streaming_destination_56e18114fb2c2cf5a(result) {
          64  +
                return ::aws_smithy_runtime::client::waiters::AcceptorState::Success;
          65  +
            }
          66  +
            // Matches: {"output":{"path":"length(KinesisDataStreamDestinations) > `0`  && length(KinesisDataStreamDestinations[?DestinationStatus == 'DISABLED' || DestinationStatus == 'ENABLE_FAILED']) ==  length(KinesisDataStreamDestinations)","expected":"true","comparator":"booleanEquals"}}
          67  +
            if crate::waiters::matchers::match_describe_kinesis_streaming_destination_ce975c8fb2b65f98f(result) {
          68  +
                return ::aws_smithy_runtime::client::waiters::AcceptorState::Failure;
          69  +
            }
          70  +
            ::aws_smithy_runtime::client::waiters::AcceptorState::NoAcceptorsMatched
          71  +
        };
          72  +
        let operation = move || {
          73  +
            let input = input.clone();
          74  +
            let runtime_plugins = runtime_plugins.clone();
          75  +
            async move {
          76  +
                crate::operation::describe_kinesis_streaming_destination::DescribeKinesisStreamingDestination::orchestrate(&runtime_plugins, input)
          77  +
                    .await
          78  +
            }
          79  +
        };
          80  +
        let orchestrator = ::aws_smithy_runtime::client::waiters::WaiterOrchestrator::builder()
          81  +
            .min_delay(::std::time::Duration::from_secs(20))
          82  +
            .max_delay(::std::time::Duration::from_secs(120))
          83  +
            .max_wait(max_wait)
          84  +
            .time_source(time_source)
          85  +
            .sleep_impl(sleep_impl)
          86  +
            .acceptor(acceptor)
          87  +
            .operation(operation)
          88  +
            .build();
          89  +
        ::aws_smithy_runtime::client::waiters::attach_waiter_tracing_span(orchestrator.orchestrate()).await
          90  +
    }
          91  +
    /// <p>The name of the table being described. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
          92  +
    pub fn table_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
          93  +
        self.inner = self.inner.table_name(input.into());
          94  +
        self
          95  +
    }
          96  +
    /// <p>The name of the table being described. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
          97  +
    pub fn set_table_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
          98  +
        self.inner = self.inner.set_table_name(input);
          99  +
        self
         100  +
    }
         101  +
    /// <p>The name of the table being described. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.</p>
         102  +
    pub fn get_table_name(&self) -> &::std::option::Option<::std::string::String> {
         103  +
        self.inner.get_table_name()
         104  +
    }
         105  +
}
         106  +
         107  +
/// Successful return type for the `kinesis_streaming_destination_active` waiter.
         108  +
pub type KinesisStreamingDestinationActiveFinalPoll = ::aws_smithy_runtime_api::client::waiters::FinalPoll<
         109  +
    crate::operation::describe_kinesis_streaming_destination::DescribeKinesisStreamingDestinationOutput,
         110  +
    ::aws_smithy_runtime_api::client::result::SdkError<
         111  +
        crate::operation::describe_kinesis_streaming_destination::DescribeKinesisStreamingDestinationError,
         112  +
        ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
         113  +
    >,
         114  +
>;
         115  +
         116  +
/// Error type for the `kinesis_streaming_destination_active` waiter.
         117  +
pub type WaitUntilKinesisStreamingDestinationActiveError = ::aws_smithy_runtime_api::client::waiters::error::WaiterError<
         118  +
    crate::operation::describe_kinesis_streaming_destination::DescribeKinesisStreamingDestinationOutput,
         119  +
    crate::operation::describe_kinesis_streaming_destination::DescribeKinesisStreamingDestinationError,
         120  +
>;