AWS SDK

AWS SDK

rev. 869532bbbc7002c64c7199738e8ff3c84ffba96a (ignoring whitespace)

Files changed:

tmp-codegen-diff/aws-sdk/sdk/lambda/src/config.rs

@@ -1277,1277 +1336,1337 @@
 1297   1297   
        runtime_components.push_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::HttpStatusCodeClassifier::default());
 1298   1298   
        runtime_components.push_interceptor(crate::sdk_feature_tracker::retry_mode::RetryModeFeatureTrackerInterceptor::new());
 1299   1299   
        runtime_components.push_interceptor(::aws_runtime::service_clock_skew::ServiceClockSkewInterceptor::new());
 1300   1300   
        runtime_components.push_interceptor(::aws_runtime::request_info::RequestInfoInterceptor::new());
 1301   1301   
        runtime_components.push_interceptor(::aws_runtime::user_agent::UserAgentInterceptor::new());
 1302   1302   
        runtime_components.push_interceptor(::aws_runtime::invocation_id::InvocationIdInterceptor::new());
 1303   1303   
        runtime_components.push_interceptor(::aws_runtime::recursion_detection::RecursionDetectionInterceptor::new());
 1304   1304   
        runtime_components.push_auth_scheme(::aws_smithy_runtime_api::client::auth::SharedAuthScheme::new(
 1305   1305   
            ::aws_runtime::auth::sigv4::SigV4AuthScheme::new(),
 1306   1306   
        ));
        1307  +
        runtime_components.push_interceptor(crate::observability_feature::ObservabilityFeatureTrackerInterceptor);
 1307   1308   
        Self { config, runtime_components }
 1308   1309   
    }
 1309   1310   
}
 1310   1311   
 1311   1312   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ServiceRuntimePlugin {
 1312   1313   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
 1313   1314   
        self.config.clone()
 1314   1315   
    }
 1315   1316   
 1316   1317   
    fn order(&self) -> ::aws_smithy_runtime_api::client::runtime_plugin::Order {

tmp-codegen-diff/aws-sdk/sdk/lambda/src/lib.rs

@@ -201,201 +253,255 @@
  221    221   
pub mod operation;
  222    222   
  223    223   
/// Primitives such as `Blob` or `DateTime` used by other types.
  224    224   
pub mod primitives;
  225    225   
  226    226   
/// Data structures used by operation inputs/outputs.
  227    227   
pub mod types;
  228    228   
  229    229   
mod event_receiver;
  230    230   
         231  +
mod observability_feature;
         232  +
  231    233   
pub(crate) mod protocol_serde;
  232    234   
  233    235   
mod sdk_feature_tracker;
  234    236   
  235    237   
mod serialization_settings;
  236    238   
  237    239   
mod endpoint_lib;
  238    240   
  239    241   
mod lens;
  240    242   

tmp-codegen-diff/aws-sdk/sdk/lambda/src/observability_feature.rs

@@ -0,1 +0,40 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/*
           3  +
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
           4  +
 * SPDX-License-Identifier: Apache-2.0
           5  +
 */
           6  +
           7  +
use aws_smithy_runtime::client::sdk_feature::SmithySdkFeature;
           8  +
use aws_smithy_runtime_api::{
           9  +
    box_error::BoxError,
          10  +
    client::interceptors::{context::BeforeSerializationInterceptorContextRef, Intercept},
          11  +
};
          12  +
use aws_smithy_types::config_bag::ConfigBag;
          13  +
          14  +
// Interceptor that tracks Smithy SDK features for observability (tracing/metrics).
          15  +
#[derive(Debug, Default)]
          16  +
pub(crate) struct ObservabilityFeatureTrackerInterceptor;
          17  +
          18  +
impl Intercept for ObservabilityFeatureTrackerInterceptor {
          19  +
    fn name(&self) -> &'static str {
          20  +
        "ObservabilityFeatureTrackerInterceptor"
          21  +
    }
          22  +
          23  +
    fn read_before_execution(&self, _context: &BeforeSerializationInterceptorContextRef<'_>, cfg: &mut ConfigBag) -> Result<(), BoxError> {
          24  +
        // Check if an OpenTelemetry meter provider is configured via the global provider
          25  +
        if let Ok(telemetry_provider) = aws_smithy_observability::global::get_telemetry_provider() {
          26  +
            let meter_provider = telemetry_provider.meter_provider();
          27  +
          28  +
            // Use downcast to check if it's specifically the OTel implementation
          29  +
            // This is more reliable than string matching on type names
          30  +
            if let Some(_otel_provider) = meter_provider
          31  +
                .as_any()
          32  +
                .downcast_ref::<aws_smithy_observability_otel::meter::OtelMeterProvider>()
          33  +
            {
          34  +
                cfg.interceptor_state().store_append(SmithySdkFeature::ObservabilityOtelMetrics);
          35  +
            }
          36  +
        }
          37  +
          38  +
        Ok(())
          39  +
    }
          40  +
}

tmp-codegen-diff/aws-sdk/sdk/polly/Cargo.toml

@@ -1,1 +125,133 @@
   14     14   
protocol = "aws.protocols#restJson1"
   15     15   
[package.metadata.docs.rs]
   16     16   
all-features = true
   17     17   
targets = ["x86_64-unknown-linux-gnu"]
   18     18   
[dependencies.aws-credential-types]
   19     19   
path = "../aws-credential-types"
   20     20   
version = "1.2.11"
   21     21   
   22     22   
[dependencies.aws-runtime]
   23     23   
path = "../aws-runtime"
   24         -
version = "1.5.17"
          24  +
version = "1.5.18"
   25     25   
   26     26   
[dependencies.aws-sigv4]
   27     27   
path = "../aws-sigv4"
   28     28   
version = "1.3.7"
   29     29   
   30     30   
[dependencies.aws-smithy-async]
   31     31   
path = "../aws-smithy-async"
   32     32   
version = "1.2.7"
   33     33   
   34     34   
[dependencies.aws-smithy-http]
   35     35   
path = "../aws-smithy-http"
   36     36   
version = "0.62.6"
   37     37   
   38     38   
[dependencies.aws-smithy-json]
   39     39   
path = "../aws-smithy-json"
   40     40   
version = "0.61.8"
   41     41   
          42  +
[dependencies.aws-smithy-observability]
          43  +
path = "../aws-smithy-observability"
          44  +
version = "0.1.5"
          45  +
          46  +
[dependencies.aws-smithy-observability-otel]
          47  +
path = "../aws-smithy-observability-otel"
          48  +
version = "0.1.3"
          49  +
   42     50   
[dependencies.aws-smithy-runtime]
   43     51   
path = "../aws-smithy-runtime"
   44     52   
features = ["client"]
   45     53   
version = "1.9.5"
   46     54   
   47     55   
[dependencies.aws-smithy-runtime-api]
   48     56   
path = "../aws-smithy-runtime-api"
   49     57   
features = ["client", "http-02x"]
   50     58   
version = "1.9.3"
   51     59   
   52     60   
[dependencies.aws-smithy-types]
   53     61   
path = "../aws-smithy-types"
   54     62   
version = "1.3.5"
   55     63   
   56     64   
[dependencies.aws-types]
   57     65   
path = "../aws-types"
   58     66   
version = "1.3.11"
   59     67   
   60     68   
[dependencies.bytes]
   61     69   
version = "1.4.0"
   62     70   
   63     71   
[dependencies.fastrand]
   64     72   
version = "2.0.0"
   65     73   
   66     74   
[dependencies.http]
   67     75   
version = "0.2.9"
   68     76   
   69     77   
[dependencies.http-1x]
   70     78   
version = "1"
   71     79   
package = "http"
   72     80   
   73     81   
[dependencies.http-body-1x]
   74     82   
version = "1"
   75     83   
optional = true
   76     84   
package = "http-body"
   77     85   
   78     86   
[dependencies.regex-lite]
   79     87   
version = "0.1.5"
   80     88   
   81     89   
[dependencies.tracing]
   82     90   
version = "0.1"
   83     91   
[dev-dependencies.aws-config]
   84     92   
path = "../aws-config"
   85     93   
version = "1.8.12"
   86     94   
   87     95   
[dev-dependencies.aws-credential-types]
   88     96   
path = "../aws-credential-types"
   89     97   
features = ["test-util"]
   90     98   
version = "1.2.11"
   91     99   
   92    100   
[dev-dependencies.aws-runtime]
   93    101   
path = "../aws-runtime"
   94    102   
features = ["test-util"]
   95         -
version = "1.5.17"
         103  +
version = "1.5.18"
   96    104   
   97    105   
[dev-dependencies.aws-smithy-async]
   98    106   
path = "../aws-smithy-async"
   99    107   
features = ["test-util"]
  100    108   
version = "1.2.7"
  101    109   
  102    110   
[dev-dependencies.aws-smithy-http-client]
  103    111   
path = "../aws-smithy-http-client"
  104    112   
features = ["test-util", "wire-mock"]
  105    113   
version = "1.1.5"

tmp-codegen-diff/aws-sdk/sdk/polly/src/config.rs

@@ -1277,1277 +1336,1337 @@
 1297   1297   
        runtime_components.push_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::HttpStatusCodeClassifier::default());
 1298   1298   
        runtime_components.push_interceptor(crate::sdk_feature_tracker::retry_mode::RetryModeFeatureTrackerInterceptor::new());
 1299   1299   
        runtime_components.push_interceptor(::aws_runtime::service_clock_skew::ServiceClockSkewInterceptor::new());
 1300   1300   
        runtime_components.push_interceptor(::aws_runtime::request_info::RequestInfoInterceptor::new());
 1301   1301   
        runtime_components.push_interceptor(::aws_runtime::user_agent::UserAgentInterceptor::new());
 1302   1302   
        runtime_components.push_interceptor(::aws_runtime::invocation_id::InvocationIdInterceptor::new());
 1303   1303   
        runtime_components.push_interceptor(::aws_runtime::recursion_detection::RecursionDetectionInterceptor::new());
 1304   1304   
        runtime_components.push_auth_scheme(::aws_smithy_runtime_api::client::auth::SharedAuthScheme::new(
 1305   1305   
            ::aws_runtime::auth::sigv4::SigV4AuthScheme::new(),
 1306   1306   
        ));
        1307  +
        runtime_components.push_interceptor(crate::observability_feature::ObservabilityFeatureTrackerInterceptor);
 1307   1308   
        Self { config, runtime_components }
 1308   1309   
    }
 1309   1310   
}
 1310   1311   
 1311   1312   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ServiceRuntimePlugin {
 1312   1313   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
 1313   1314   
        self.config.clone()
 1314   1315   
    }
 1315   1316   
 1316   1317   
    fn order(&self) -> ::aws_smithy_runtime_api::client::runtime_plugin::Order {

tmp-codegen-diff/aws-sdk/sdk/polly/src/lib.rs

@@ -162,162 +209,211 @@
  182    182   
  183    183   
/// All operations that this crate can perform.
  184    184   
pub mod operation;
  185    185   
  186    186   
/// Primitives such as `Blob` or `DateTime` used by other types.
  187    187   
pub mod primitives;
  188    188   
  189    189   
/// Data structures used by operation inputs/outputs.
  190    190   
pub mod types;
  191    191   
         192  +
mod observability_feature;
         193  +
  192    194   
pub mod presigning;
  193    195   
  194    196   
pub(crate) mod presigning_interceptors;
  195    197   
  196    198   
pub(crate) mod protocol_serde;
  197    199   
  198    200   
mod sdk_feature_tracker;
  199    201   
  200    202   
mod serialization_settings;
  201    203   

tmp-codegen-diff/aws-sdk/sdk/polly/src/observability_feature.rs

@@ -0,1 +0,40 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/*
           3  +
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
           4  +
 * SPDX-License-Identifier: Apache-2.0
           5  +
 */
           6  +
           7  +
use aws_smithy_runtime::client::sdk_feature::SmithySdkFeature;
           8  +
use aws_smithy_runtime_api::{
           9  +
    box_error::BoxError,
          10  +
    client::interceptors::{context::BeforeSerializationInterceptorContextRef, Intercept},
          11  +
};
          12  +
use aws_smithy_types::config_bag::ConfigBag;
          13  +
          14  +
// Interceptor that tracks Smithy SDK features for observability (tracing/metrics).
          15  +
#[derive(Debug, Default)]
          16  +
pub(crate) struct ObservabilityFeatureTrackerInterceptor;
          17  +
          18  +
impl Intercept for ObservabilityFeatureTrackerInterceptor {
          19  +
    fn name(&self) -> &'static str {
          20  +
        "ObservabilityFeatureTrackerInterceptor"
          21  +
    }
          22  +
          23  +
    fn read_before_execution(&self, _context: &BeforeSerializationInterceptorContextRef<'_>, cfg: &mut ConfigBag) -> Result<(), BoxError> {
          24  +
        // Check if an OpenTelemetry meter provider is configured via the global provider
          25  +
        if let Ok(telemetry_provider) = aws_smithy_observability::global::get_telemetry_provider() {
          26  +
            let meter_provider = telemetry_provider.meter_provider();
          27  +
          28  +
            // Use downcast to check if it's specifically the OTel implementation
          29  +
            // This is more reliable than string matching on type names
          30  +
            if let Some(_otel_provider) = meter_provider
          31  +
                .as_any()
          32  +
                .downcast_ref::<aws_smithy_observability_otel::meter::OtelMeterProvider>()
          33  +
            {
          34  +
                cfg.interceptor_state().store_append(SmithySdkFeature::ObservabilityOtelMetrics);
          35  +
            }
          36  +
        }
          37  +
          38  +
        Ok(())
          39  +
    }
          40  +
}

tmp-codegen-diff/aws-sdk/sdk/route53/Cargo.toml

@@ -1,1 +67,75 @@
   14     14   
protocol = "aws.protocols#restXml"
   15     15   
[package.metadata.docs.rs]
   16     16   
all-features = true
   17     17   
targets = ["x86_64-unknown-linux-gnu"]
   18     18   
[dependencies.aws-credential-types]
   19     19   
path = "../aws-credential-types"
   20     20   
version = "1.2.11"
   21     21   
   22     22   
[dependencies.aws-runtime]
   23     23   
path = "../aws-runtime"
   24         -
version = "1.5.17"
          24  +
version = "1.5.18"
   25     25   
   26     26   
[dependencies.aws-smithy-async]
   27     27   
path = "../aws-smithy-async"
   28     28   
version = "1.2.7"
   29     29   
   30     30   
[dependencies.aws-smithy-http]
   31     31   
path = "../aws-smithy-http"
   32     32   
version = "0.62.6"
   33     33   
   34     34   
[dependencies.aws-smithy-json]
   35     35   
path = "../aws-smithy-json"
   36     36   
version = "0.61.8"
   37     37   
          38  +
[dependencies.aws-smithy-observability]
          39  +
path = "../aws-smithy-observability"
          40  +
version = "0.1.5"
          41  +
          42  +
[dependencies.aws-smithy-observability-otel]
          43  +
path = "../aws-smithy-observability-otel"
          44  +
version = "0.1.3"
          45  +
   38     46   
[dependencies.aws-smithy-runtime]
   39     47   
path = "../aws-smithy-runtime"
   40     48   
features = ["client"]
   41     49   
version = "1.9.5"
   42     50   
   43     51   
[dependencies.aws-smithy-runtime-api]
   44     52   
path = "../aws-smithy-runtime-api"
   45     53   
features = ["client", "http-02x"]
   46     54   
version = "1.9.3"
   47     55   

tmp-codegen-diff/aws-sdk/sdk/route53/src/config.rs

@@ -1277,1277 +1336,1337 @@
 1297   1297   
        runtime_components.push_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::HttpStatusCodeClassifier::default());
 1298   1298   
        runtime_components.push_interceptor(crate::sdk_feature_tracker::retry_mode::RetryModeFeatureTrackerInterceptor::new());
 1299   1299   
        runtime_components.push_interceptor(::aws_runtime::service_clock_skew::ServiceClockSkewInterceptor::new());
 1300   1300   
        runtime_components.push_interceptor(::aws_runtime::request_info::RequestInfoInterceptor::new());
 1301   1301   
        runtime_components.push_interceptor(::aws_runtime::user_agent::UserAgentInterceptor::new());
 1302   1302   
        runtime_components.push_interceptor(::aws_runtime::invocation_id::InvocationIdInterceptor::new());
 1303   1303   
        runtime_components.push_interceptor(::aws_runtime::recursion_detection::RecursionDetectionInterceptor::new());
 1304   1304   
        runtime_components.push_auth_scheme(::aws_smithy_runtime_api::client::auth::SharedAuthScheme::new(
 1305   1305   
            ::aws_runtime::auth::sigv4::SigV4AuthScheme::new(),
 1306   1306   
        ));
        1307  +
        runtime_components.push_interceptor(crate::observability_feature::ObservabilityFeatureTrackerInterceptor);
 1307   1308   
        Self { config, runtime_components }
 1308   1309   
    }
 1309   1310   
}
 1310   1311   
 1311   1312   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ServiceRuntimePlugin {
 1312   1313   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
 1313   1314   
        self.config.clone()
 1314   1315   
    }
 1315   1316   
 1316   1317   
    fn order(&self) -> ::aws_smithy_runtime_api::client::runtime_plugin::Order {

tmp-codegen-diff/aws-sdk/sdk/route53/src/lib.rs

@@ -179,179 +231,233 @@
  199    199   
  200    200   
/// All operations that this crate can perform.
  201    201   
pub mod operation;
  202    202   
  203    203   
/// Primitives such as `Blob` or `DateTime` used by other types.
  204    204   
pub mod primitives;
  205    205   
  206    206   
/// Data structures used by operation inputs/outputs.
  207    207   
pub mod types;
  208    208   
         209  +
mod observability_feature;
         210  +
  209    211   
pub(crate) mod protocol_serde;
  210    212   
  211    213   
mod route53_resource_id_preprocessor;
  212    214   
  213    215   
mod sdk_feature_tracker;
  214    216   
  215    217   
mod serialization_settings;
  216    218   
  217    219   
mod endpoint_lib;
  218    220   

tmp-codegen-diff/aws-sdk/sdk/route53/src/observability_feature.rs

@@ -0,1 +0,40 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/*
           3  +
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
           4  +
 * SPDX-License-Identifier: Apache-2.0
           5  +
 */
           6  +
           7  +
use aws_smithy_runtime::client::sdk_feature::SmithySdkFeature;
           8  +
use aws_smithy_runtime_api::{
           9  +
    box_error::BoxError,
          10  +
    client::interceptors::{context::BeforeSerializationInterceptorContextRef, Intercept},
          11  +
};
          12  +
use aws_smithy_types::config_bag::ConfigBag;
          13  +
          14  +
// Interceptor that tracks Smithy SDK features for observability (tracing/metrics).
          15  +
#[derive(Debug, Default)]
          16  +
pub(crate) struct ObservabilityFeatureTrackerInterceptor;
          17  +
          18  +
impl Intercept for ObservabilityFeatureTrackerInterceptor {
          19  +
    fn name(&self) -> &'static str {
          20  +
        "ObservabilityFeatureTrackerInterceptor"
          21  +
    }
          22  +
          23  +
    fn read_before_execution(&self, _context: &BeforeSerializationInterceptorContextRef<'_>, cfg: &mut ConfigBag) -> Result<(), BoxError> {
          24  +
        // Check if an OpenTelemetry meter provider is configured via the global provider
          25  +
        if let Ok(telemetry_provider) = aws_smithy_observability::global::get_telemetry_provider() {
          26  +
            let meter_provider = telemetry_provider.meter_provider();
          27  +
          28  +
            // Use downcast to check if it's specifically the OTel implementation
          29  +
            // This is more reliable than string matching on type names
          30  +
            if let Some(_otel_provider) = meter_provider
          31  +
                .as_any()
          32  +
                .downcast_ref::<aws_smithy_observability_otel::meter::OtelMeterProvider>()
          33  +
            {
          34  +
                cfg.interceptor_state().store_append(SmithySdkFeature::ObservabilityOtelMetrics);
          35  +
            }
          36  +
        }
          37  +
          38  +
        Ok(())
          39  +
    }
          40  +
}

tmp-codegen-diff/aws-sdk/sdk/s3/Cargo.toml

@@ -1,1 +81,89 @@
   15     15   
[package.metadata.docs.rs]
   16     16   
all-features = true
   17     17   
targets = ["x86_64-unknown-linux-gnu"]
   18     18   
[dependencies.aws-credential-types]
   19     19   
path = "../aws-credential-types"
   20     20   
version = "1.2.11"
   21     21   
   22     22   
[dependencies.aws-runtime]
   23     23   
path = "../aws-runtime"
   24     24   
features = ["event-stream", "http-02x"]
   25         -
version = "1.5.17"
          25  +
version = "1.5.18"
   26     26   
   27     27   
[dependencies.aws-sigv4]
   28     28   
path = "../aws-sigv4"
   29     29   
version = "1.3.7"
   30     30   
   31     31   
[dependencies.aws-smithy-async]
   32     32   
path = "../aws-smithy-async"
   33     33   
version = "1.2.7"
   34     34   
   35     35   
[dependencies.aws-smithy-checksums]
   36     36   
path = "../aws-smithy-checksums"
   37     37   
version = "0.63.12"
   38     38   
   39     39   
[dependencies.aws-smithy-eventstream]
   40     40   
path = "../aws-smithy-eventstream"
   41     41   
version = "0.60.14"
   42     42   
   43     43   
[dependencies.aws-smithy-http]
   44     44   
path = "../aws-smithy-http"
   45     45   
features = ["event-stream"]
   46     46   
version = "0.62.6"
   47     47   
   48     48   
[dependencies.aws-smithy-json]
   49     49   
path = "../aws-smithy-json"
   50     50   
version = "0.61.8"
   51     51   
          52  +
[dependencies.aws-smithy-observability]
          53  +
path = "../aws-smithy-observability"
          54  +
version = "0.1.5"
          55  +
          56  +
[dependencies.aws-smithy-observability-otel]
          57  +
path = "../aws-smithy-observability-otel"
          58  +
version = "0.1.3"
          59  +
   52     60   
[dependencies.aws-smithy-runtime]
   53     61   
path = "../aws-smithy-runtime"
   54     62   
features = ["client"]
   55     63   
version = "1.9.5"
   56     64   
   57     65   
[dependencies.aws-smithy-runtime-api]
   58     66   
path = "../aws-smithy-runtime-api"
   59     67   
features = ["client", "http-02x"]
   60     68   
version = "1.9.3"
   61     69   
@@ -104,112 +164,172 @@
  124    132   
version = "1.8.12"
  125    133   
  126    134   
[dev-dependencies.aws-credential-types]
  127    135   
path = "../aws-credential-types"
  128    136   
features = ["test-util"]
  129    137   
version = "1.2.11"
  130    138   
  131    139   
[dev-dependencies.aws-runtime]
  132    140   
path = "../aws-runtime"
  133    141   
features = ["test-util"]
  134         -
version = "1.5.17"
         142  +
version = "1.5.18"
  135    143   
  136    144   
[dev-dependencies.aws-smithy-async]
  137    145   
path = "../aws-smithy-async"
  138    146   
features = ["test-util"]
  139    147   
version = "1.2.7"
  140    148   
  141    149   
[dev-dependencies.aws-smithy-eventstream]
  142    150   
path = "../aws-smithy-eventstream"
  143    151   
features = ["test-util"]
  144    152   
version = "0.60.14"

tmp-codegen-diff/aws-sdk/sdk/s3/src/config.rs

@@ -1435,1435 +1494,1495 @@
 1455   1455   
        runtime_components.push_interceptor(::aws_runtime::recursion_detection::RecursionDetectionInterceptor::new());
 1456   1456   
        runtime_components.push_auth_scheme(::aws_smithy_runtime_api::client::auth::SharedAuthScheme::new(
 1457   1457   
            ::aws_runtime::auth::sigv4::SigV4AuthScheme::new(),
 1458   1458   
        ));
 1459   1459   
        #[cfg(feature = "sigv4a")]
 1460   1460   
        {
 1461   1461   
            runtime_components.push_auth_scheme(::aws_smithy_runtime_api::client::auth::SharedAuthScheme::new(
 1462   1462   
                ::aws_runtime::auth::sigv4a::SigV4aAuthScheme::new(),
 1463   1463   
            ));
 1464   1464   
        }
        1465  +
        runtime_components.push_interceptor(crate::observability_feature::ObservabilityFeatureTrackerInterceptor);
 1465   1466   
        Self { config, runtime_components }
 1466   1467   
    }
 1467   1468   
}
 1468   1469   
 1469   1470   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ServiceRuntimePlugin {
 1470   1471   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
 1471   1472   
        self.config.clone()
 1472   1473   
    }
 1473   1474   
 1474   1475   
    fn order(&self) -> ::aws_smithy_runtime_api::client::runtime_plugin::Order {

tmp-codegen-diff/aws-sdk/sdk/s3/src/lib.rs

@@ -184,184 +243,245 @@
  204    204   
pub(crate) mod client_idempotency_token;
  205    205   
  206    206   
mod event_receiver;
  207    207   
  208    208   
pub(crate) mod http_request_checksum;
  209    209   
  210    210   
pub(crate) mod http_response_checksum;
  211    211   
  212    212   
mod idempotency_token;
  213    213   
         214  +
mod observability_feature;
         215  +
  214    216   
pub mod presigning;
  215    217   
  216    218   
pub(crate) mod presigning_interceptors;
  217    219   
  218    220   
pub(crate) mod protocol_serde;
  219    221   
  220    222   
mod rest_xml_unwrapped_errors;
  221    223   
  222    224   
mod s3_expires_interceptor;
  223    225   

tmp-codegen-diff/aws-sdk/sdk/s3/src/observability_feature.rs

@@ -0,1 +0,40 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/*
           3  +
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
           4  +
 * SPDX-License-Identifier: Apache-2.0
           5  +
 */
           6  +
           7  +
use aws_smithy_runtime::client::sdk_feature::SmithySdkFeature;
           8  +
use aws_smithy_runtime_api::{
           9  +
    box_error::BoxError,
          10  +
    client::interceptors::{context::BeforeSerializationInterceptorContextRef, Intercept},
          11  +
};
          12  +
use aws_smithy_types::config_bag::ConfigBag;
          13  +
          14  +
// Interceptor that tracks Smithy SDK features for observability (tracing/metrics).
          15  +
#[derive(Debug, Default)]
          16  +
pub(crate) struct ObservabilityFeatureTrackerInterceptor;
          17  +
          18  +
impl Intercept for ObservabilityFeatureTrackerInterceptor {
          19  +
    fn name(&self) -> &'static str {
          20  +
        "ObservabilityFeatureTrackerInterceptor"
          21  +
    }
          22  +
          23  +
    fn read_before_execution(&self, _context: &BeforeSerializationInterceptorContextRef<'_>, cfg: &mut ConfigBag) -> Result<(), BoxError> {
          24  +
        // Check if an OpenTelemetry meter provider is configured via the global provider
          25  +
        if let Ok(telemetry_provider) = aws_smithy_observability::global::get_telemetry_provider() {
          26  +
            let meter_provider = telemetry_provider.meter_provider();
          27  +
          28  +
            // Use downcast to check if it's specifically the OTel implementation
          29  +
            // This is more reliable than string matching on type names
          30  +
            if let Some(_otel_provider) = meter_provider
          31  +
                .as_any()
          32  +
                .downcast_ref::<aws_smithy_observability_otel::meter::OtelMeterProvider>()
          33  +
            {
          34  +
                cfg.interceptor_state().store_append(SmithySdkFeature::ObservabilityOtelMetrics);
          35  +
            }
          36  +
        }
          37  +
          38  +
        Ok(())
          39  +
    }
          40  +
}

tmp-codegen-diff/aws-sdk/sdk/s3control/Cargo.toml

@@ -1,1 +119,127 @@
   14     14   
protocol = "aws.protocols#restXml"
   15     15   
[package.metadata.docs.rs]
   16     16   
all-features = true
   17     17   
targets = ["x86_64-unknown-linux-gnu"]
   18     18   
[dependencies.aws-credential-types]
   19     19   
path = "../aws-credential-types"
   20     20   
version = "1.2.11"
   21     21   
   22     22   
[dependencies.aws-runtime]
   23     23   
path = "../aws-runtime"
   24         -
version = "1.5.17"
          24  +
version = "1.5.18"
   25     25   
   26     26   
[dependencies.aws-smithy-async]
   27     27   
path = "../aws-smithy-async"
   28     28   
version = "1.2.7"
   29     29   
   30     30   
[dependencies.aws-smithy-http]
   31     31   
path = "../aws-smithy-http"
   32     32   
version = "0.62.6"
   33     33   
   34     34   
[dependencies.aws-smithy-json]
   35     35   
path = "../aws-smithy-json"
   36     36   
version = "0.61.8"
   37     37   
          38  +
[dependencies.aws-smithy-observability]
          39  +
path = "../aws-smithy-observability"
          40  +
version = "0.1.5"
          41  +
          42  +
[dependencies.aws-smithy-observability-otel]
          43  +
path = "../aws-smithy-observability-otel"
          44  +
version = "0.1.3"
          45  +
   38     46   
[dependencies.aws-smithy-runtime]
   39     47   
path = "../aws-smithy-runtime"
   40     48   
features = ["client"]
   41     49   
version = "1.9.5"
   42     50   
   43     51   
[dependencies.aws-smithy-runtime-api]
   44     52   
path = "../aws-smithy-runtime-api"
   45     53   
features = ["client", "http-02x"]
   46     54   
version = "1.9.3"
   47     55   
   48     56   
[dependencies.aws-smithy-types]
   49     57   
path = "../aws-smithy-types"
   50     58   
version = "1.3.5"
   51     59   
   52     60   
[dependencies.aws-smithy-xml]
   53     61   
path = "../aws-smithy-xml"
   54     62   
version = "0.60.13"
   55     63   
   56     64   
[dependencies.aws-types]
   57     65   
path = "../aws-types"
   58     66   
version = "1.3.11"
   59     67   
   60     68   
[dependencies.fastrand]
   61     69   
version = "2.0.0"
   62     70   
   63     71   
[dependencies.http]
   64     72   
version = "0.2.9"
   65     73   
   66     74   
[dependencies.md-5]
   67     75   
version = "0.10.0"
   68     76   
   69     77   
[dependencies.regex-lite]
   70     78   
version = "0.1.5"
   71     79   
   72     80   
[dependencies.tracing]
   73     81   
version = "0.1"
   74     82   
   75     83   
[dependencies.url]
   76     84   
version = "2.3.1"
   77     85   
[dev-dependencies.aws-config]
   78     86   
path = "../aws-config"
   79     87   
version = "1.8.12"
   80     88   
   81     89   
[dev-dependencies.aws-credential-types]
   82     90   
path = "../aws-credential-types"
   83     91   
features = ["test-util"]
   84     92   
version = "1.2.11"
   85     93   
   86     94   
[dev-dependencies.aws-runtime]
   87     95   
path = "../aws-runtime"
   88     96   
features = ["test-util"]
   89         -
version = "1.5.17"
          97  +
version = "1.5.18"
   90     98   
   91     99   
[dev-dependencies.aws-smithy-async]
   92    100   
path = "../aws-smithy-async"
   93    101   
features = ["test-util"]
   94    102   
version = "1.2.7"
   95    103   
   96    104   
[dev-dependencies.aws-smithy-http-client]
   97    105   
path = "../aws-smithy-http-client"
   98    106   
features = ["test-util", "wire-mock"]
   99    107   
version = "1.1.5"