AWS SDK

AWS SDK

rev. efc995ed81ec48476631cc32e693d412bf4e062c

Files changed:

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

@@ -1296,1296 +1355,1356 @@
 1316   1316   
        runtime_components.push_interceptor(crate::sdk_feature_tracker::retry_mode::RetryModeFeatureTrackerInterceptor::new());
 1317   1317   
        runtime_components.push_interceptor(::aws_runtime::service_clock_skew::ServiceClockSkewInterceptor::new());
 1318   1318   
        runtime_components.push_interceptor(::aws_runtime::request_info::RequestInfoInterceptor::new());
 1319   1319   
        runtime_components.push_interceptor(::aws_runtime::user_agent::UserAgentInterceptor::new());
 1320   1320   
        runtime_components.push_interceptor(::aws_runtime::invocation_id::InvocationIdInterceptor::new());
 1321   1321   
        runtime_components.push_interceptor(::aws_runtime::recursion_detection::RecursionDetectionInterceptor::new());
 1322   1322   
        runtime_components.push_auth_scheme(::aws_smithy_runtime_api::client::auth::SharedAuthScheme::new(
 1323   1323   
            ::aws_runtime::auth::sigv4::SigV4AuthScheme::new(),
 1324   1324   
        ));
 1325   1325   
        runtime_components.push_interceptor(crate::config::endpoint::EndpointOverrideFeatureTrackerInterceptor);
        1326  +
        runtime_components.push_interceptor(crate::observability_feature::ObservabilityFeatureTrackerInterceptor);
 1326   1327   
        Self { config, runtime_components }
 1327   1328   
    }
 1328   1329   
}
 1329   1330   
 1330   1331   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ServiceRuntimePlugin {
 1331   1332   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
 1332   1333   
        self.config.clone()
 1333   1334   
    }
 1334   1335   
 1335   1336   
    fn order(&self) -> ::aws_smithy_runtime_api::client::runtime_plugin::Order {

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

@@ -178,178 +228,230 @@
  198    198   
/// Primitives such as `Blob` or `DateTime` used by other types.
  199    199   
pub mod primitives;
  200    200   
  201    201   
/// Data structures used by operation inputs/outputs.
  202    202   
pub mod types;
  203    203   
  204    204   
pub(crate) mod client_idempotency_token;
  205    205   
  206    206   
mod idempotency_token;
  207    207   
         208  +
mod observability_feature;
         209  +
  208    210   
pub(crate) mod protocol_serde;
  209    211   
  210    212   
mod sdk_feature_tracker;
  211    213   
  212    214   
mod serialization_settings;
  213    215   
  214    216   
mod endpoint_lib;
  215    217   
  216    218   
mod lens;
  217    219   

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

@@ -0,1 +0,38 @@
           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 provider_name() to detect OpenTelemetry without importing the otel crate.
          29  +
            // This avoids adding aws-smithy-observability-otel as a dependency.
          30  +
            // Note: as_any() is available for type-based checking if stronger guarantees are needed.
          31  +
            if meter_provider.provider_name() == "otel" {
          32  +
                cfg.interceptor_state().store_append(SmithySdkFeature::ObservabilityOtelMetrics);
          33  +
            }
          34  +
        }
          35  +
          36  +
        Ok(())
          37  +
    }
          38  +
}

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

@@ -1,1 +67,71 @@
   14     14   
protocol = "aws.protocols#awsJson1_1"
   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.3.0"
          41  +
   38     42   
[dependencies.aws-smithy-runtime]
   39     43   
path = "../aws-smithy-runtime"
   40     44   
features = ["client"]
   41     45   
version = "1.9.5"
   42     46   
   43     47   
[dependencies.aws-smithy-runtime-api]
   44     48   
path = "../aws-smithy-runtime-api"
   45     49   
features = ["client", "http-02x"]
   46     50   
version = "1.9.3"
   47     51   

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

@@ -1296,1296 +1355,1356 @@
 1316   1316   
        runtime_components.push_interceptor(crate::sdk_feature_tracker::retry_mode::RetryModeFeatureTrackerInterceptor::new());
 1317   1317   
        runtime_components.push_interceptor(::aws_runtime::service_clock_skew::ServiceClockSkewInterceptor::new());
 1318   1318   
        runtime_components.push_interceptor(::aws_runtime::request_info::RequestInfoInterceptor::new());
 1319   1319   
        runtime_components.push_interceptor(::aws_runtime::user_agent::UserAgentInterceptor::new());
 1320   1320   
        runtime_components.push_interceptor(::aws_runtime::invocation_id::InvocationIdInterceptor::new());
 1321   1321   
        runtime_components.push_interceptor(::aws_runtime::recursion_detection::RecursionDetectionInterceptor::new());
 1322   1322   
        runtime_components.push_auth_scheme(::aws_smithy_runtime_api::client::auth::SharedAuthScheme::new(
 1323   1323   
            ::aws_runtime::auth::sigv4::SigV4AuthScheme::new(),
 1324   1324   
        ));
 1325   1325   
        runtime_components.push_interceptor(crate::config::endpoint::EndpointOverrideFeatureTrackerInterceptor);
        1326  +
        runtime_components.push_interceptor(crate::observability_feature::ObservabilityFeatureTrackerInterceptor);
 1326   1327   
        Self { config, runtime_components }
 1327   1328   
    }
 1328   1329   
}
 1329   1330   
 1330   1331   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ServiceRuntimePlugin {
 1331   1332   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
 1332   1333   
        self.config.clone()
 1333   1334   
    }
 1334   1335   
 1335   1336   
    fn order(&self) -> ::aws_smithy_runtime_api::client::runtime_plugin::Order {

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

@@ -182,182 +232,234 @@
  202    202   
/// Primitives such as `Blob` or `DateTime` used by other types.
  203    203   
pub mod primitives;
  204    204   
  205    205   
/// Data structures used by operation inputs/outputs.
  206    206   
pub mod types;
  207    207   
  208    208   
pub(crate) mod client_idempotency_token;
  209    209   
  210    210   
mod idempotency_token;
  211    211   
         212  +
mod observability_feature;
         213  +
  212    214   
pub(crate) mod protocol_serde;
  213    215   
  214    216   
mod sdk_feature_tracker;
  215    217   
  216    218   
mod serialization_settings;
  217    219   
  218    220   
mod endpoint_lib;
  219    221   
  220    222   
mod lens;
  221    223   

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

@@ -0,1 +0,38 @@
           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 provider_name() to detect OpenTelemetry without importing the otel crate.
          29  +
            // This avoids adding aws-smithy-observability-otel as a dependency.
          30  +
            // Note: as_any() is available for type-based checking if stronger guarantees are needed.
          31  +
            if meter_provider.provider_name() == "otel" {
          32  +
                cfg.interceptor_state().store_append(SmithySdkFeature::ObservabilityOtelMetrics);
          33  +
            }
          34  +
        }
          35  +
          36  +
        Ok(())
          37  +
    }
          38  +
}

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

@@ -1,1 +126,130 @@
   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.3.0"
          45  +
   42     46   
[dependencies.aws-smithy-runtime]
   43     47   
path = "../aws-smithy-runtime"
   44     48   
features = ["client"]
   45     49   
version = "1.9.5"
   46     50   
   47     51   
[dependencies.aws-smithy-runtime-api]
   48     52   
path = "../aws-smithy-runtime-api"
   49     53   
features = ["client", "http-02x"]
   50     54   
version = "1.9.3"
   51     55   
   52     56   
[dependencies.aws-smithy-types]
   53     57   
path = "../aws-smithy-types"
   54     58   
version = "1.3.5"
   55     59   
   56     60   
[dependencies.aws-types]
   57     61   
path = "../aws-types"
   58     62   
version = "1.3.11"
   59     63   
   60     64   
[dependencies.bytes]
   61     65   
version = "1.4.0"
   62     66   
   63     67   
[dependencies.fastrand]
   64     68   
version = "2.0.0"
   65     69   
   66     70   
[dependencies.hex]
   67     71   
version = "0.4.3"
   68     72   
   69     73   
[dependencies.http]
   70     74   
version = "0.2.9"
   71     75   
   72     76   
[dependencies.http-1x]
   73     77   
version = "1"
   74     78   
package = "http"
   75     79   
   76     80   
[dependencies.regex-lite]
   77     81   
version = "0.1.5"
   78     82   
   79     83   
[dependencies.ring]
   80     84   
version = "0.17.5"
   81     85   
   82     86   
[dependencies.tracing]
   83     87   
version = "0.1"
   84     88   
[dev-dependencies.aws-config]
   85     89   
path = "../aws-config"
   86     90   
version = "1.8.12"
   87     91   
   88     92   
[dev-dependencies.aws-credential-types]
   89     93   
path = "../aws-credential-types"
   90     94   
features = ["test-util"]
   91     95   
version = "1.2.11"
   92     96   
   93     97   
[dev-dependencies.aws-runtime]
   94     98   
path = "../aws-runtime"
   95     99   
features = ["test-util"]
   96         -
version = "1.5.17"
         100  +
version = "1.5.18"
   97    101   
   98    102   
[dev-dependencies.aws-smithy-async]
   99    103   
path = "../aws-smithy-async"
  100    104   
features = ["test-util"]
  101    105   
version = "1.2.7"
  102    106   
  103    107   
[dev-dependencies.aws-smithy-http-client]
  104    108   
path = "../aws-smithy-http-client"
  105    109   
features = ["test-util", "wire-mock"]
  106    110   
version = "1.1.5"

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

@@ -1279,1279 +1338,1339 @@
 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(crate::glacier_interceptors::GlacierApiVersionInterceptor::new("2012-06-01"));
 1303   1303   
        runtime_components.push_interceptor(::aws_runtime::invocation_id::InvocationIdInterceptor::new());
 1304   1304   
        runtime_components.push_interceptor(::aws_runtime::recursion_detection::RecursionDetectionInterceptor::new());
 1305   1305   
        runtime_components.push_auth_scheme(::aws_smithy_runtime_api::client::auth::SharedAuthScheme::new(
 1306   1306   
            ::aws_runtime::auth::sigv4::SigV4AuthScheme::new(),
 1307   1307   
        ));
 1308   1308   
        runtime_components.push_interceptor(crate::config::endpoint::EndpointOverrideFeatureTrackerInterceptor);
        1309  +
        runtime_components.push_interceptor(crate::observability_feature::ObservabilityFeatureTrackerInterceptor);
 1309   1310   
        Self { config, runtime_components }
 1310   1311   
    }
 1311   1312   
}
 1312   1313   
 1313   1314   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ServiceRuntimePlugin {
 1314   1315   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
 1315   1316   
        self.config.clone()
 1316   1317   
    }
 1317   1318   
 1318   1319   
    fn order(&self) -> ::aws_smithy_runtime_api::client::runtime_plugin::Order {

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

@@ -186,186 +236,238 @@
  206    206   
pub mod operation;
  207    207   
  208    208   
/// Primitives such as `Blob` or `DateTime` used by other types.
  209    209   
pub mod primitives;
  210    210   
  211    211   
/// Data structures used by operation inputs/outputs.
  212    212   
pub mod types;
  213    213   
  214    214   
mod glacier_interceptors;
  215    215   
         216  +
mod observability_feature;
         217  +
  216    218   
pub(crate) mod protocol_serde;
  217    219   
  218    220   
mod sdk_feature_tracker;
  219    221   
  220    222   
mod serialization_settings;
  221    223   
  222    224   
mod endpoint_lib;
  223    225   
  224    226   
mod lens;
  225    227   

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

@@ -0,1 +0,38 @@
           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 provider_name() to detect OpenTelemetry without importing the otel crate.
          29  +
            // This avoids adding aws-smithy-observability-otel as a dependency.
          30  +
            // Note: as_any() is available for type-based checking if stronger guarantees are needed.
          31  +
            if meter_provider.provider_name() == "otel" {
          32  +
                cfg.interceptor_state().store_append(SmithySdkFeature::ObservabilityOtelMetrics);
          33  +
            }
          34  +
        }
          35  +
          36  +
        Ok(())
          37  +
    }
          38  +
}

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

@@ -1,1 +117,121 @@
   14     14   
protocol = "aws.protocols#awsQuery"
   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.3.0"
          41  +
   38     42   
[dependencies.aws-smithy-query]
   39     43   
path = "../aws-smithy-query"
   40     44   
version = "0.60.9"
   41     45   
   42     46   
[dependencies.aws-smithy-runtime]
   43     47   
path = "../aws-smithy-runtime"
   44     48   
features = ["client"]
   45     49   
version = "1.9.5"
   46     50   
   47     51   
[dependencies.aws-smithy-runtime-api]
   48     52   
path = "../aws-smithy-runtime-api"
   49     53   
features = ["client", "http-02x"]
   50     54   
version = "1.9.3"
   51     55   
   52     56   
[dependencies.aws-smithy-types]
   53     57   
path = "../aws-smithy-types"
   54     58   
version = "1.3.5"
   55     59   
   56     60   
[dependencies.aws-smithy-xml]
   57     61   
path = "../aws-smithy-xml"
   58     62   
version = "0.60.13"
   59     63   
   60     64   
[dependencies.aws-types]
   61     65   
path = "../aws-types"
   62     66   
version = "1.3.11"
   63     67   
   64     68   
[dependencies.fastrand]
   65     69   
version = "2.0.0"
   66     70   
   67     71   
[dependencies.http]
   68     72   
version = "0.2.9"
   69     73   
   70     74   
[dependencies.regex-lite]
   71     75   
version = "0.1.5"
   72     76   
   73     77   
[dependencies.tracing]
   74     78   
version = "0.1"
   75     79   
[dev-dependencies.aws-config]
   76     80   
path = "../aws-config"
   77     81   
version = "1.8.12"
   78     82   
   79     83   
[dev-dependencies.aws-credential-types]
   80     84   
path = "../aws-credential-types"
   81     85   
features = ["test-util"]
   82     86   
version = "1.2.11"
   83     87   
   84     88   
[dev-dependencies.aws-runtime]
   85     89   
path = "../aws-runtime"
   86     90   
features = ["test-util"]
   87         -
version = "1.5.17"
          91  +
version = "1.5.18"
   88     92   
   89     93   
[dev-dependencies.aws-smithy-async]
   90     94   
path = "../aws-smithy-async"
   91     95   
features = ["test-util"]
   92     96   
version = "1.2.7"
   93     97   
   94     98   
[dev-dependencies.aws-smithy-http-client]
   95     99   
path = "../aws-smithy-http-client"
   96    100   
features = ["test-util", "wire-mock"]
   97    101   
version = "1.1.5"

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

@@ -1278,1278 +1337,1338 @@
 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   1307   
        runtime_components.push_interceptor(crate::config::endpoint::EndpointOverrideFeatureTrackerInterceptor);
        1308  +
        runtime_components.push_interceptor(crate::observability_feature::ObservabilityFeatureTrackerInterceptor);
 1308   1309   
        Self { config, runtime_components }
 1309   1310   
    }
 1310   1311   
}
 1311   1312   
 1312   1313   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for ServiceRuntimePlugin {
 1313   1314   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
 1314   1315   
        self.config.clone()
 1315   1316   
    }
 1316   1317   
 1317   1318   
    fn order(&self) -> ::aws_smithy_runtime_api::client::runtime_plugin::Order {

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

@@ -174,174 +224,226 @@
  194    194   
  195    195   
/// All operations that this crate can perform.
  196    196   
pub mod operation;
  197    197   
  198    198   
/// Primitives such as `Blob` or `DateTime` used by other types.
  199    199   
pub mod primitives;
  200    200   
  201    201   
/// Data structures used by operation inputs/outputs.
  202    202   
pub mod types;
  203    203   
         204  +
mod observability_feature;
         205  +
  204    206   
pub(crate) mod protocol_serde;
  205    207   
  206    208   
mod sdk_feature_tracker;
  207    209   
  208    210   
mod serialization_settings;
  209    211   
  210    212   
mod endpoint_lib;
  211    213   
  212    214   
mod lens;
  213    215   

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

@@ -0,1 +0,38 @@
           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 provider_name() to detect OpenTelemetry without importing the otel crate.
          29  +
            // This avoids adding aws-smithy-observability-otel as a dependency.
          30  +
            // Note: as_any() is available for type-based checking if stronger guarantees are needed.
          31  +
            if meter_provider.provider_name() == "otel" {
          32  +
                cfg.interceptor_state().store_append(SmithySdkFeature::ObservabilityOtelMetrics);
          33  +
            }
          34  +
        }
          35  +
          36  +
        Ok(())
          37  +
    }
          38  +
}

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

@@ -1,1 +112,116 @@
   14     14   
protocol = "aws.protocols#awsJson1_1"
   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.3.0"
          41  +
   38     42   
[dependencies.aws-smithy-runtime]
   39     43   
path = "../aws-smithy-runtime"
   40     44   
features = ["client"]
   41     45   
version = "1.9.5"
   42     46   
   43     47   
[dependencies.aws-smithy-runtime-api]
   44     48   
path = "../aws-smithy-runtime-api"
   45     49   
features = ["client", "http-02x"]
   46     50   
version = "1.9.3"
   47     51   
   48     52   
[dependencies.aws-smithy-types]
   49     53   
path = "../aws-smithy-types"
   50     54   
version = "1.3.5"
   51     55   
   52     56   
[dependencies.aws-types]
   53     57   
path = "../aws-types"
   54     58   
version = "1.3.11"
   55     59   
   56     60   
[dependencies.bytes]
   57     61   
version = "1.4.0"
   58     62   
   59     63   
[dependencies.fastrand]
   60     64   
version = "2.0.0"
   61     65   
   62     66   
[dependencies.http]
   63     67   
version = "0.2.9"
   64     68   
   65     69   
[dependencies.regex-lite]
   66     70   
version = "0.1.5"
   67     71   
   68     72   
[dependencies.tracing]
   69     73   
version = "0.1"
   70     74   
[dev-dependencies.aws-config]
   71     75   
path = "../aws-config"
   72     76   
version = "1.8.12"
   73     77   
   74     78   
[dev-dependencies.aws-credential-types]
   75     79   
path = "../aws-credential-types"
   76     80   
features = ["test-util"]
   77     81   
version = "1.2.11"
   78     82   
   79     83   
[dev-dependencies.aws-runtime]
   80     84   
path = "../aws-runtime"
   81     85   
features = ["test-util"]
   82         -
version = "1.5.17"
          86  +
version = "1.5.18"
   83     87   
   84     88   
[dev-dependencies.aws-smithy-async]
   85     89   
path = "../aws-smithy-async"
   86     90   
features = ["test-util"]
   87     91   
version = "1.2.7"
   88     92   
   89     93   
[dev-dependencies.aws-smithy-http-client]
   90     94   
path = "../aws-smithy-http-client"
   91     95   
features = ["test-util", "wire-mock"]
   92     96   
version = "1.1.5"