# awslabs/aws-sdk-swift architecture

> Architecture diagram of the GitHub repository awslabs/aws-sdk-swift, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/awslabs/aws-sdk-swift
- Repository: https://github.com/awslabs/aws-sdk-swift

## Overview

AWS SDK for Swift lets application code configure a service client, invoke a typed AWS operation, and receive a typed response or service error. Generated service clients construct operation orchestrators; the runtime supplies configuration, endpoint resolution, authentication, request middleware, retries, and AWS-specific error handling. Identity resolution and signing support the request path, while checksums and event-stream signing cover specialized protocols. The README documents these runtime modules and the tree shows many generated service clients. Excerpts are partial, so links among unsampled subsystems are not expanded.

Main entry points: [`Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime`](https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime) (AWS client runtime), [`Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/CodePipelineClient.swift`](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/CodePipelineClient.swift) (CodePipeline client), [`Sources/Services`](https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Services) (Generated service clients), [`Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/Models.swift`](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/Models.swift) (Service models)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_service_api["Service APIs"]
  node_service_clients["Generated service clients"]
  node_codepipeline_client["CodePipeline client"]
  node_service_models["Service models<br/>[Models.swift]"]
end

subgraph group_client_runtime["Client Runtime"]
  node_aws_runtime["AWS client runtime"]
  node_endpoint_resolution["Endpoint resolution"]
  node_region_resolution["Region resolution"]
  node_retry["Retry strategy"]
  node_error_handling["Service errors"]
end

subgraph group_identity_auth["Identity And Auth"]
  node_identity["Identity resolvers"]
  node_sigv4["HTTP request signing"]
  node_event_signing["Event stream signing"]
end

subgraph group_protocols["Protocol Support"]
  node_checksums["Request checksums"]
  node_common["Shared runtime types"]
  node_dynamic["Partitions and version"]
end

node_application(("SDK application"))
node_http_transport["HTTP transport"]
node_aws_service["AWS service"]

node_application -->|"calls operation"| node_service_clients
node_service_clients -->|"selects client"| node_codepipeline_client
node_codepipeline_client -->|"uses types"| node_service_models
node_codepipeline_client -->|"builds request pipeline"| node_aws_runtime
node_aws_runtime -->|"resolves endpoint"| node_endpoint_resolution
node_aws_runtime -->|"resolves region"| node_region_resolution
node_aws_runtime -->|"configures retries"| node_retry
node_aws_runtime -->|"handles errors"| node_error_handling
node_aws_runtime -->|"resolves identity"| node_identity
node_aws_runtime -->|"selects auth scheme"| node_sigv4
node_aws_runtime -->|"executes request"| node_http_transport
node_http_transport -->|"sends HTTP"| node_aws_service
node_aws_service -->|"returns response"| node_http_transport
node_aws_runtime -.->|"applies checksum middleware"| node_checksums
node_aws_runtime -.->|"uses stream signing"| node_event_signing
node_aws_runtime -->|"uses shared types"| node_common
node_aws_runtime -->|"reads partition data"| node_dynamic

click node_service_clients "https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Services"
click node_codepipeline_client "https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/CodePipelineClient.swift"
click node_service_models "https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/Models.swift"
click node_aws_runtime "https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime"
click node_endpoint_resolution "https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Endpoints/EndpointResolverMiddleware.swift"
click node_region_resolution "https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Regions/RegionResolver.swift"
click node_retry "https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryConfig.swift"
click node_error_handling "https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Errors/AWSServiceError.swift"
click node_identity "https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSSDKIdentity/Sources/AWSSDKIdentity"
click node_sigv4 "https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSSDKHTTPAuth/Sources/AWSSDKHTTPAuth/AWSSigV4Signer.swift"
click node_event_signing "https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSSDKEventStreamsAuth/Sources/AWSSDKEventStreamsAuth/AWSMessageSigner.swift"
click node_checksums "https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSSDKChecksums/Sources/AWSSDKChecksums"
click node_common "https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSSDKCommon/Sources/AWSSDKCommon"
click node_dynamic "https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSSDKDynamic/Sources/AWSSDKDynamic"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_service_clients,node_codepipeline_client,node_service_models toneBlue
class node_aws_runtime,node_endpoint_resolution,node_region_resolution,node_retry,node_error_handling toneAmber
class node_identity,node_sigv4,node_event_signing toneMint
class node_checksums,node_common,node_dynamic toneRose
class node_application,node_http_transport,node_aws_service toneIndigo
```

## Components

### Service APIs

- [Generated service clients](https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Services): `Sources/Services`
- [CodePipeline client](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/CodePipelineClient.swift): `Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/CodePipelineClient.swift`
- [Service models](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/Models.swift): `Sources/Services/AWSCodePipeline/Sources/AWSCodePipeline/Models.swift`

### Client Runtime

- [AWS client runtime](https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime): `Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime`
- [Endpoint resolution](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Endpoints/EndpointResolverMiddleware.swift): `Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Endpoints/EndpointResolverMiddleware.swift`
- [Region resolution](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Regions/RegionResolver.swift): `Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Regions/RegionResolver.swift`
- [Retry strategy](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryConfig.swift): `Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryConfig.swift`
- [Service errors](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Errors/AWSServiceError.swift): `Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Errors/AWSServiceError.swift`

### Identity And Auth

- [Identity resolvers](https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSSDKIdentity/Sources/AWSSDKIdentity): `Sources/Core/AWSSDKIdentity/Sources/AWSSDKIdentity`
- [HTTP request signing](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSSDKHTTPAuth/Sources/AWSSDKHTTPAuth/AWSSigV4Signer.swift): `Sources/Core/AWSSDKHTTPAuth/Sources/AWSSDKHTTPAuth/AWSSigV4Signer.swift`
- [Event stream signing](https://github.com/awslabs/aws-sdk-swift/blob/main/Sources/Core/AWSSDKEventStreamsAuth/Sources/AWSSDKEventStreamsAuth/AWSMessageSigner.swift): `Sources/Core/AWSSDKEventStreamsAuth/Sources/AWSSDKEventStreamsAuth/AWSMessageSigner.swift`

### Protocol Support

- [Request checksums](https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSSDKChecksums/Sources/AWSSDKChecksums): `Sources/Core/AWSSDKChecksums/Sources/AWSSDKChecksums`
- [Shared runtime types](https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSSDKCommon/Sources/AWSSDKCommon): `Sources/Core/AWSSDKCommon/Sources/AWSSDKCommon`
- [Partitions and version](https://github.com/awslabs/aws-sdk-swift/tree/main/Sources/Core/AWSSDKDynamic/Sources/AWSSDKDynamic): `Sources/Core/AWSSDKDynamic/Sources/AWSSDKDynamic`

### Other components

- **SDK application**
- **HTTP transport**
- **AWS service**

## Connections

- SDK application → Generated service clients: calls operation
- Generated service clients → CodePipeline client: selects client
- CodePipeline client → Service models: uses types
- CodePipeline client → AWS client runtime: builds request pipeline
- AWS client runtime → Endpoint resolution: resolves endpoint
- AWS client runtime → Region resolution: resolves region
- AWS client runtime → Retry strategy: configures retries
- AWS client runtime → Service errors: handles errors
- AWS client runtime → Identity resolvers: resolves identity
- AWS client runtime → HTTP request signing: selects auth scheme
- AWS client runtime → HTTP transport: executes request
- HTTP transport → AWS service: sends HTTP
- AWS service → HTTP transport: returns response
- AWS client runtime → Request checksums: applies checksum middleware
- AWS client runtime → Event stream signing: uses stream signing
- AWS client runtime → Shared runtime types: uses shared types
- AWS client runtime → Partitions and version: reads partition data
