Skip to content

winterbaume-sts

STS service mock implementation for winterbaume.

Coverage

MetricValue
ServiceSTS
AWS modelsts
ProtocolawsQuery
winterbaume coverage11/11 operations (100.0%)
stubs (routed, returns empty/default)0/11 operations (0.0%)
moto coverage7/11 operations (63.6%)
floci coverage0/11 operations (0.0%)
kumo coverage6/11 operations (54.5%)
Coverage report date2026-05-13

Server-mode usage

Start winterbaume-server and point the AWS CLI at it:

sh
cargo run -p winterbaume-server -- --host 127.0.0.1 --port 5555
sh
export AWS_ENDPOINT_URL=http://localhost:5555
aws sts get-caller-identity

Example

rust
use aws_sdk_sts::config::BehaviorVersion;
use winterbaume_core::MockAws;
use winterbaume_sts::StsService;

#[tokio::main]
async fn main() {
    let mock = MockAws::builder().with_service(StsService::new()).build();

    let config = aws_config::defaults(BehaviorVersion::latest())
        .http_client(mock.http_client())
        .credentials_provider(mock.credentials_provider())
        .region(aws_sdk_sts::config::Region::new("us-east-1"))
        .load()
        .await;

    let client = aws_sdk_sts::Client::new(&config);

    let resp = client
        .get_caller_identity()
        .send()
        .await
        .expect("get_caller_identity should succeed");
    println!("Account: {}", resp.account().unwrap_or_default());
    println!("User ID: {}", resp.user_id().unwrap_or_default());
    println!("ARN: {}", resp.arn().unwrap_or_default());
}

Implemented APIs (11)

  • AssumeRole
  • AssumeRoleWithSAML
  • AssumeRoleWithWebIdentity
  • AssumeRoot
  • DecodeAuthorizationMessage
  • GetAccessKeyInfo
  • GetCallerIdentity
  • GetDelegatedAccessToken
  • GetFederationToken
  • GetSessionToken
  • GetWebIdentityToken

Released under the Apache-2.0 License. This project is not affiliated with or endorsed by Amazon Web Services.