Skip to content

Commit 16efaf5

Browse files
Merge from aws/aws-sam-cli/develop
2 parents 6b8c62a + 9ffa5ed commit 16efaf5

32 files changed

Lines changed: 1465 additions & 144 deletions

.github/workflows/validate_pyinstaller.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on:
88
env:
99
CI_OVERRIDE: "1"
1010

11+
permissions:
12+
contents: read
13+
1114
jobs:
1215
build-for-linux:
1316
name: build-pyinstaller-linux

docs/cfn-language-extensions.md

Lines changed: 125 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,37 @@ Running `sam build` expands this into `UsersFunction`, `OrdersFunction`, and `Pr
4141

4242
### Dynamic artifact properties
4343

44-
When a packageable property (like `CodeUri`, `ContentUri`, `ImageUri`) uses a loop variable (e.g., `./services/${Name}`), SAM CLI generates a CloudFormation `Mappings` section that maps each collection value to its S3 URI. The `Fn::ForEach` body is rewritten to use `Fn::FindInMap` so CloudFormation can resolve the correct artifact at deploy time.
44+
When a packageable property uses a loop variable (e.g., `./services/${Name}`), SAM CLI generates a CloudFormation `Mappings` section that maps each collection value to its S3 URI. The `Fn::ForEach` body is rewritten to use `Fn::FindInMap` so CloudFormation can resolve the correct artifact at deploy time.
45+
46+
The set of recognized artifact properties is derived from the same canonical list `sam package` already uses (`RESOURCES_WITH_LOCAL_PATHS` and `RESOURCES_WITH_IMAGE_COMPONENT` in `samcli/lib/utils/resources.py`), so every resource type whose artifact property `sam package` would normally rewrite is supported here too. That includes:
47+
48+
| Resource type | Property |
49+
|---------------|----------|
50+
| `AWS::Serverless::Function` | `CodeUri`, `ImageUri` |
51+
| `AWS::Serverless::LayerVersion` | `ContentUri` |
52+
| `AWS::Serverless::Api` | `DefinitionUri` |
53+
| `AWS::Serverless::HttpApi` | `DefinitionUri` |
54+
| `AWS::Serverless::StateMachine` | `DefinitionUri` |
55+
| `AWS::Serverless::GraphQLApi` | `SchemaUri`, `CodeUri` |
56+
| `AWS::Serverless::Application` | `Location` |
57+
| `AWS::Lambda::Function` | `Code`, `Code.ImageUri` |
58+
| `AWS::Lambda::LayerVersion` | `Content` |
59+
| `AWS::ApiGateway::RestApi` | `BodyS3Location` |
60+
| `AWS::ApiGatewayV2::Api` | `BodyS3Location` |
61+
| `AWS::AppSync::GraphQLSchema` | `DefinitionS3Location` |
62+
| `AWS::AppSync::Resolver` | `RequestMappingTemplateS3Location`, `ResponseMappingTemplateS3Location`, `CodeS3Location` |
63+
| `AWS::AppSync::FunctionConfiguration` | `RequestMappingTemplateS3Location`, `ResponseMappingTemplateS3Location`, `CodeS3Location` |
64+
| `AWS::StepFunctions::StateMachine` | `DefinitionS3Location` |
65+
| `AWS::ElasticBeanstalk::ApplicationVersion` | `SourceBundle` |
66+
| `AWS::Glue::Job` | `Command.ScriptLocation` |
67+
| `AWS::CloudFormation::Stack` | `TemplateURL` |
68+
| `AWS::CloudFormation::StackSet` | `TemplateURL` |
69+
| `AWS::CloudFormation::ModuleVersion` | `ModulePackage` |
70+
| `AWS::CloudFormation::ResourceVersion` | `SchemaHandlerPackage` |
71+
72+
When a property is dotted (e.g. `Command.ScriptLocation` on `AWS::Glue::Job` or `Code.ImageUri` on `AWS::Lambda::Function`), SAM CLI reads and writes the value at the dotted location on the resource — so it lands at `Properties.Command.ScriptLocation` rather than at a literal `Properties["Command.ScriptLocation"]` key — and uses only the leaf segment when it needs to construct an alphanumeric identifier (Mapping name suffix or `Fn::FindInMap` third argument).
73+
74+
When the property is loop-templated, the Mapping name is `SAM<LeafProperty><LoopName>` (e.g., `SAMCodeUriServices`, `SAMScriptLocationJobs`). Customer-authored mappings should not start with these `SAM*` prefixes — they are reserved for SAM CLI (see [Limitations](#limitations) below).
4575

4676
For example, after `sam package`:
4777

@@ -67,6 +97,45 @@ Resources:
6797
CodeUri: !FindInMap [SAMCodeUriServices, !Ref Name, CodeUri]
6898
```
6999

100+
### Multiple resources per ForEach body
101+
102+
A single `Fn::ForEach` body can emit more than one resource per iteration. Each resource is generated for every collection value:
103+
104+
```yaml
105+
Resources:
106+
Fn::ForEach::Tables:
107+
- TableName
108+
- [Users, Orders, Products]
109+
- ${TableName}Table:
110+
Type: AWS::DynamoDB::Table
111+
Properties:
112+
TableName: !Sub "${AWS::StackName}-${TableName}"
113+
# ...
114+
115+
${TableName}StreamProcessor:
116+
Type: AWS::Serverless::Function
117+
Properties:
118+
CodeUri: stream-processors/${TableName}/
119+
Events:
120+
DDBStream:
121+
Type: DynamoDB
122+
Properties:
123+
Stream: !GetAtt
124+
- !Sub "${TableName}Table"
125+
- StreamArn
126+
```
127+
128+
### Mapping name collision resolution
129+
130+
When two resources in the same `Fn::ForEach` body declare the same dynamic artifact property (for example, both an `Api` and a `StateMachine` use `DefinitionUri`), SAM CLI appends a sanitized suffix derived from the resource logical-ID template to keep Mapping names unique:
131+
132+
| Resource template | Property | Mapping name |
133+
|-------------------|----------|--------------|
134+
| `${Svc}Api` | `DefinitionUri` | `SAMDefinitionUriServicesApi` |
135+
| `${Svc}StateMachine` | `DefinitionUri` | `SAMDefinitionUriServicesStateMachine` |
136+
137+
When there is no collision the base name (e.g., `SAMDefinitionUriServices`) is used.
138+
70139
### Parameter-based collections
71140

72141
When the `Fn::ForEach` collection is a parameter reference (`!Ref ServiceNames`), the collection values are resolved at package time from:
@@ -120,6 +189,46 @@ Resources:
120189
STAGE: !Ref Env
121190
```
122191

192+
### ForEach in Outputs
193+
194+
`Fn::ForEach` blocks are also expanded inside the `Outputs` section, so you can emit one output per collection value:
195+
196+
```yaml
197+
Outputs:
198+
Fn::ForEach::FunctionArns:
199+
- Name
200+
- [alpha, beta]
201+
- ${Name}FunctionArn:
202+
Value: !GetAtt
203+
- !Sub "${Name}Function"
204+
- Arn
205+
```
206+
207+
### Conditions and DependsOn
208+
209+
Resources emitted by `Fn::ForEach` can carry `Condition` and `DependsOn` like any other resource. The condition or dependency is replicated onto each generated resource:
210+
211+
```yaml
212+
Conditions:
213+
IsProd: !Equals [!Ref Environment, prod]
214+
215+
Resources:
216+
SharedTable:
217+
Type: AWS::DynamoDB::Table
218+
# ...
219+
220+
Fn::ForEach::Functions:
221+
- Name
222+
- [api, worker]
223+
- ${Name}Function:
224+
Type: AWS::Serverless::Function
225+
Condition: IsProd
226+
DependsOn: SharedTable
227+
Properties:
228+
Handler: main.handler
229+
CodeUri: functions/${Name}/
230+
```
231+
123232
### &{identifier} syntax
124233

125234
The `&{identifier}` syntax strips non-alphanumeric characters from the substituted value, useful for generating valid logical IDs from values like IP addresses:
@@ -154,11 +263,26 @@ The following intrinsic functions are resolved locally during expansion:
154263

155264
Functions that require deployed resources (`Fn::GetAtt`, `Fn::ImportValue`, `Fn::GetAZs`) are preserved for CloudFormation to resolve at deploy time.
156265

266+
## Validation errors
267+
268+
The following template issues are caught locally before the SAM transform runs:
269+
270+
| Cause | Error message |
271+
|-------|---------------|
272+
| The `Fn::ForEach` value is malformed — not a list, doesn't have exactly 3 elements, or has a non-string loop identifier. | `Fn::ForEach::<key> layout is incorrect` (raised as `InvalidTemplateException`; see `samcli/lib/cfn_language_extensions/processors/foreach.py`). |
273+
| More than 5 levels of `Fn::ForEach` are nested. | `Fn::ForEach nesting depth of <N> exceeds the maximum allowed depth of 5. CloudFormation supports up to 5 nested Fn::ForEach loops.` |
274+
| The collection resolves to an empty list (e.g., a `CommaDelimitedList` parameter with `Default: ""`). | No error — the loop is silently skipped and no resources are emitted. |
275+
| The `!Ref` in the collection points at a parameter that is not declared in the template. | No error in the typical `sam build` / `sam package` flow. SAM CLI runs intrinsic resolution in PARTIAL mode and preserves the unresolved `{"Ref": "<name>"}`. CloudFormation will reject the unresolved ref at deploy time. |
276+
157277
## Limitations
158278

159279
- **Collections must be resolvable at build/package time.** `Fn::ForEach` collections that use `Fn::GetAtt`, `Fn::ImportValue`, or SSM/Secrets Manager dynamic references cannot be expanded locally. Use a parameter with `--parameter-overrides` instead.
160280
- **Parameter values are fixed at package time.** If you change `--parameter-overrides` at deploy time without re-packaging, the Mappings won't include entries for new values and deployment will fail.
161281
- **`DeletionPolicy` and `UpdateReplacePolicy`** are validated and resolved during expansion. They support `Ref` to parameters but not other intrinsic functions.
282+
- **Nesting limit.** Up to 5 levels of `Fn::ForEach` may be nested, matching CloudFormation's server-side limit.
283+
- **Reserved Mapping names.** Mapping names starting with any of the following are reserved for SAM CLI — do not author your own mappings with these prefixes:
284+
- `SAMCodeUri`, `SAMImageUri`, `SAMContentUri`, `SAMDefinitionUri`, `SAMSchemaUri`, `SAMBodyS3Location`, `SAMDefinitionS3Location`, `SAMTemplateURL`, `SAMCode`, `SAMContent` — emitted by `sam package` for dynamic artifact properties (see the table above).
285+
- `SAMLayers` — emitted by `sam build` when a `Fn::ForEach`-generated function picks up auto-generated dependency-layer references (Lambda layers SAM CLI builds into a nested stack). This prefix has no corresponding user-authored property; it is added automatically.
162286

163287
## Telemetry
164288

pyproject.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ dependencies = [
3535
"chevron~=0.12",
3636
"click==8.1.8",
3737
"Flask<3.2",
38-
"boto3[crt]==1.43.6",
38+
"boto3[crt]==1.43.7",
3939
"jmespath~=1.1.0",
4040
"ruamel_yaml~=0.19.1",
4141
"PyYAML~=6.0",
@@ -69,17 +69,17 @@ dev = [
6969
"aws-sam-cli[pre-dev]",
7070
"coverage==7.14.0",
7171
"pytest-cov==7.1.0",
72-
"mypy==1.19.1",
72+
"mypy==2.1.0",
7373
"types-pywin32==311.0.0.20260508",
74-
"types-PyYAML==6.0.12.20250915",
75-
"types-chevron==0.14.2.20250103",
74+
"types-PyYAML==6.0.12.20260510",
75+
"types-chevron==0.14.2.20260408",
7676
"types-psutil==7.2.2.20260508",
77-
"types-setuptools==82.0.0.20260408",
77+
"types-setuptools==82.0.0.20260508",
7878
"types-Pygments==2.20.0.20260508",
7979
"types-colorama==0.4.15.20260508",
8080
"types-dateparser==1.4.0.20260508",
8181
"types-docutils==0.22.3.20260508",
82-
"types-jsonschema==4.26.0.20260202",
82+
"types-jsonschema==4.26.0.20260508",
8383
"types-pyOpenSSL==24.1.0.20240722",
8484
"types-requests==2.33.0.20260513",
8585
"types-urllib3==1.26.25.14",

requirements/pyinstaller-build.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Executable binary builder requirements
22
setuptools==82.0.1
3-
pyinstaller==6.19.0
3+
pyinstaller==6.20.0

requirements/reproducible-linux.txt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -86,19 +86,19 @@ blinker==1.9.0 \
8686
--hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \
8787
--hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc
8888
# via flask
89-
boto3[crt]==1.43.6 \
90-
--hash=sha256:179601ec2992726a718053bf41e43c223ceba397d31ceab11f64d9c910d9fc3a \
91-
--hash=sha256:e6315effaf12b890b99956e6f8e2c3000a3f64e4ee91943cec3895ce9a836afb
89+
boto3[crt]==1.43.7 \
90+
--hash=sha256:7060f603ca0f645153ee2244506db4db5968a858cd513399d8df70637c362159 \
91+
--hash=sha256:b1e4b40f4a828c67291b12ebefd17d87a57321101e4a0c969b2f593a0310f343
9292
# via
9393
# aws-sam-cli (pyproject.toml)
9494
# aws-sam-translator
95-
boto3-stubs[apigateway, cloudformation, ecr, iam, kinesis, lambda, s3, schemas, secretsmanager, signer, sqs, stepfunctions, sts, xray]==1.43.6 \
96-
--hash=sha256:6c8b2e2977b5f85cdac82f1e3590cd7e7e452c92341654cc64c93a63da0f7bec \
97-
--hash=sha256:ff37a72104c556d7d57a8b0ec2123a6407b7737edd04e8533de5fc736a1d9d63
95+
boto3-stubs[apigateway, cloudformation, ecr, iam, kinesis, lambda, s3, schemas, secretsmanager, signer, sqs, stepfunctions, sts, xray]==1.43.7 \
96+
--hash=sha256:657ff9142d4d579836c077a12839a3fcc3abf67e328a31c8deb2284641dbbec0 \
97+
--hash=sha256:7e33cc842cd1e9f6bccc88ed53b1dcc93f55216f69ba9bbac90d062c870b752f
9898
# via aws-sam-cli (pyproject.toml)
99-
botocore[crt]==1.43.6 \
100-
--hash=sha256:b1e395b347356860398da42e61c808cf1e34b6fa7180cf2b9d87d986e1a06ba0 \
101-
--hash=sha256:b6d1fdbc6f65a5fe0b7e947823aa37535d3f39f3ba4d21110fab1f55bbbcc04b
99+
botocore[crt]==1.43.7 \
100+
--hash=sha256:abbbc623c52dce86ea9d4534d35e2d6ce447d98edfdaced1695ee0278d6063e3 \
101+
--hash=sha256:e93f25dc186a9de033c87128c0f2016aedd74aea9057d918bfc0703a946b1ad1
102102
# via
103103
# boto3
104104
# s3transfer
@@ -598,9 +598,9 @@ mypy-boto3-sqs==1.43.0 \
598598
--hash=sha256:3ec8e1e651e830affcf7fe151b2e3090b8ea98d73cb069053b09ca4c7f4c8636 \
599599
--hash=sha256:f90225486756a4041db9f056967cb3cee202264bbe57682031c1e94d83e8ca39
600600
# via boto3-stubs
601-
mypy-boto3-stepfunctions==1.43.0 \
602-
--hash=sha256:bab7b51564350d73a0f1b98ec02cd3a8a9b931c8b42fe8e6fd770fb027bf8d81 \
603-
--hash=sha256:e778e91af52a51589644521377d0acf3298f64bb7c4a3cd1832bd04536e9e0f0
601+
mypy-boto3-stepfunctions==1.43.7 \
602+
--hash=sha256:3a0423193f6872d1f9d75eb04611c6a517a30cce5eac4ab18f119a37100971dd \
603+
--hash=sha256:beee206867dae74e2f1f45055e2ca7c8003f502cd0c5b31dd784129758e61e4e
604604
# via boto3-stubs
605605
mypy-boto3-sts==1.43.0 \
606606
--hash=sha256:7c38cffd0f07ff226d0b8016610bf5fa19bd6fa2a75a04cfdeecba2cabea8a4c \
@@ -979,9 +979,9 @@ regex==2026.5.9 \
979979
# aws-sam-cli (pyproject.toml)
980980
# cfn-lint
981981
# dateparser
982-
requests==2.34.0 \
983-
--hash=sha256:7d62fe92f50eb82c529b0916bb445afa1531a566fc8f35ffdc64446e771b856a \
984-
--hash=sha256:917520a21b767485ce7c588f4ebb917c436b24a31231b44228715eaeb5a52c60
982+
requests==2.34.1 \
983+
--hash=sha256:0fc5669f2b69704449fe1552360bd2a73a54512dfd03e65529157f1513322beb \
984+
--hash=sha256:bf38a3ff993960d3dd819c08862c40b3c703306eb7c744fcd9f4ddbb95b548f0
985985
# via
986986
# aws-sam-cli (pyproject.toml)
987987
# cookiecutter

requirements/reproducible-mac.txt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -86,19 +86,19 @@ blinker==1.9.0 \
8686
--hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \
8787
--hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc
8888
# via flask
89-
boto3[crt]==1.43.6 \
90-
--hash=sha256:179601ec2992726a718053bf41e43c223ceba397d31ceab11f64d9c910d9fc3a \
91-
--hash=sha256:e6315effaf12b890b99956e6f8e2c3000a3f64e4ee91943cec3895ce9a836afb
89+
boto3[crt]==1.43.7 \
90+
--hash=sha256:7060f603ca0f645153ee2244506db4db5968a858cd513399d8df70637c362159 \
91+
--hash=sha256:b1e4b40f4a828c67291b12ebefd17d87a57321101e4a0c969b2f593a0310f343
9292
# via
9393
# aws-sam-cli (pyproject.toml)
9494
# aws-sam-translator
95-
boto3-stubs[apigateway, cloudformation, ecr, iam, kinesis, lambda, s3, schemas, secretsmanager, signer, sqs, stepfunctions, sts, xray]==1.43.6 \
96-
--hash=sha256:6c8b2e2977b5f85cdac82f1e3590cd7e7e452c92341654cc64c93a63da0f7bec \
97-
--hash=sha256:ff37a72104c556d7d57a8b0ec2123a6407b7737edd04e8533de5fc736a1d9d63
95+
boto3-stubs[apigateway, cloudformation, ecr, iam, kinesis, lambda, s3, schemas, secretsmanager, signer, sqs, stepfunctions, sts, xray]==1.43.7 \
96+
--hash=sha256:657ff9142d4d579836c077a12839a3fcc3abf67e328a31c8deb2284641dbbec0 \
97+
--hash=sha256:7e33cc842cd1e9f6bccc88ed53b1dcc93f55216f69ba9bbac90d062c870b752f
9898
# via aws-sam-cli (pyproject.toml)
99-
botocore[crt]==1.43.6 \
100-
--hash=sha256:b1e395b347356860398da42e61c808cf1e34b6fa7180cf2b9d87d986e1a06ba0 \
101-
--hash=sha256:b6d1fdbc6f65a5fe0b7e947823aa37535d3f39f3ba4d21110fab1f55bbbcc04b
99+
botocore[crt]==1.43.7 \
100+
--hash=sha256:abbbc623c52dce86ea9d4534d35e2d6ce447d98edfdaced1695ee0278d6063e3 \
101+
--hash=sha256:e93f25dc186a9de033c87128c0f2016aedd74aea9057d918bfc0703a946b1ad1
102102
# via
103103
# boto3
104104
# s3transfer
@@ -598,9 +598,9 @@ mypy-boto3-sqs==1.43.0 \
598598
--hash=sha256:3ec8e1e651e830affcf7fe151b2e3090b8ea98d73cb069053b09ca4c7f4c8636 \
599599
--hash=sha256:f90225486756a4041db9f056967cb3cee202264bbe57682031c1e94d83e8ca39
600600
# via boto3-stubs
601-
mypy-boto3-stepfunctions==1.43.0 \
602-
--hash=sha256:bab7b51564350d73a0f1b98ec02cd3a8a9b931c8b42fe8e6fd770fb027bf8d81 \
603-
--hash=sha256:e778e91af52a51589644521377d0acf3298f64bb7c4a3cd1832bd04536e9e0f0
601+
mypy-boto3-stepfunctions==1.43.7 \
602+
--hash=sha256:3a0423193f6872d1f9d75eb04611c6a517a30cce5eac4ab18f119a37100971dd \
603+
--hash=sha256:beee206867dae74e2f1f45055e2ca7c8003f502cd0c5b31dd784129758e61e4e
604604
# via boto3-stubs
605605
mypy-boto3-sts==1.43.0 \
606606
--hash=sha256:7c38cffd0f07ff226d0b8016610bf5fa19bd6fa2a75a04cfdeecba2cabea8a4c \
@@ -979,9 +979,9 @@ regex==2026.5.9 \
979979
# aws-sam-cli (pyproject.toml)
980980
# cfn-lint
981981
# dateparser
982-
requests==2.34.0 \
983-
--hash=sha256:7d62fe92f50eb82c529b0916bb445afa1531a566fc8f35ffdc64446e771b856a \
984-
--hash=sha256:917520a21b767485ce7c588f4ebb917c436b24a31231b44228715eaeb5a52c60
982+
requests==2.34.1 \
983+
--hash=sha256:0fc5669f2b69704449fe1552360bd2a73a54512dfd03e65529157f1513322beb \
984+
--hash=sha256:bf38a3ff993960d3dd819c08862c40b3c703306eb7c744fcd9f4ddbb95b548f0
985985
# via
986986
# aws-sam-cli (pyproject.toml)
987987
# cookiecutter

requirements/reproducible-win.txt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -86,19 +86,19 @@ blinker==1.9.0 \
8686
--hash=sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf \
8787
--hash=sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc
8888
# via flask
89-
boto3[crt]==1.43.6 \
90-
--hash=sha256:179601ec2992726a718053bf41e43c223ceba397d31ceab11f64d9c910d9fc3a \
91-
--hash=sha256:e6315effaf12b890b99956e6f8e2c3000a3f64e4ee91943cec3895ce9a836afb
89+
boto3[crt]==1.43.7 \
90+
--hash=sha256:7060f603ca0f645153ee2244506db4db5968a858cd513399d8df70637c362159 \
91+
--hash=sha256:b1e4b40f4a828c67291b12ebefd17d87a57321101e4a0c969b2f593a0310f343
9292
# via
9393
# aws-sam-cli (pyproject.toml)
9494
# aws-sam-translator
95-
boto3-stubs[apigateway, cloudformation, ecr, iam, kinesis, lambda, s3, schemas, secretsmanager, signer, sqs, stepfunctions, sts, xray]==1.43.6 \
96-
--hash=sha256:6c8b2e2977b5f85cdac82f1e3590cd7e7e452c92341654cc64c93a63da0f7bec \
97-
--hash=sha256:ff37a72104c556d7d57a8b0ec2123a6407b7737edd04e8533de5fc736a1d9d63
95+
boto3-stubs[apigateway, cloudformation, ecr, iam, kinesis, lambda, s3, schemas, secretsmanager, signer, sqs, stepfunctions, sts, xray]==1.43.7 \
96+
--hash=sha256:657ff9142d4d579836c077a12839a3fcc3abf67e328a31c8deb2284641dbbec0 \
97+
--hash=sha256:7e33cc842cd1e9f6bccc88ed53b1dcc93f55216f69ba9bbac90d062c870b752f
9898
# via aws-sam-cli (pyproject.toml)
99-
botocore[crt]==1.43.6 \
100-
--hash=sha256:b1e395b347356860398da42e61c808cf1e34b6fa7180cf2b9d87d986e1a06ba0 \
101-
--hash=sha256:b6d1fdbc6f65a5fe0b7e947823aa37535d3f39f3ba4d21110fab1f55bbbcc04b
99+
botocore[crt]==1.43.7 \
100+
--hash=sha256:abbbc623c52dce86ea9d4534d35e2d6ce447d98edfdaced1695ee0278d6063e3 \
101+
--hash=sha256:e93f25dc186a9de033c87128c0f2016aedd74aea9057d918bfc0703a946b1ad1
102102
# via
103103
# boto3
104104
# s3transfer
@@ -602,9 +602,9 @@ mypy-boto3-sqs==1.43.0 \
602602
--hash=sha256:3ec8e1e651e830affcf7fe151b2e3090b8ea98d73cb069053b09ca4c7f4c8636 \
603603
--hash=sha256:f90225486756a4041db9f056967cb3cee202264bbe57682031c1e94d83e8ca39
604604
# via boto3-stubs
605-
mypy-boto3-stepfunctions==1.43.0 \
606-
--hash=sha256:bab7b51564350d73a0f1b98ec02cd3a8a9b931c8b42fe8e6fd770fb027bf8d81 \
607-
--hash=sha256:e778e91af52a51589644521377d0acf3298f64bb7c4a3cd1832bd04536e9e0f0
605+
mypy-boto3-stepfunctions==1.43.7 \
606+
--hash=sha256:3a0423193f6872d1f9d75eb04611c6a517a30cce5eac4ab18f119a37100971dd \
607+
--hash=sha256:beee206867dae74e2f1f45055e2ca7c8003f502cd0c5b31dd784129758e61e4e
608608
# via boto3-stubs
609609
mypy-boto3-sts==1.43.0 \
610610
--hash=sha256:7c38cffd0f07ff226d0b8016610bf5fa19bd6fa2a75a04cfdeecba2cabea8a4c \
@@ -1005,9 +1005,9 @@ regex==2026.5.9 \
10051005
# aws-sam-cli (pyproject.toml)
10061006
# cfn-lint
10071007
# dateparser
1008-
requests==2.34.0 \
1009-
--hash=sha256:7d62fe92f50eb82c529b0916bb445afa1531a566fc8f35ffdc64446e771b856a \
1010-
--hash=sha256:917520a21b767485ce7c588f4ebb917c436b24a31231b44228715eaeb5a52c60
1008+
requests==2.34.1 \
1009+
--hash=sha256:0fc5669f2b69704449fe1552360bd2a73a54512dfd03e65529157f1513322beb \
1010+
--hash=sha256:bf38a3ff993960d3dd819c08862c40b3c703306eb7c744fcd9f4ddbb95b548f0
10111011
# via
10121012
# aws-sam-cli (pyproject.toml)
10131013
# cookiecutter

samcli/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
SAM CLI version
33
"""
44

5-
__version__ = "1.160.0"
5+
__version__ = "1.160.1"

0 commit comments

Comments
 (0)