Skip to content

Commit 88db4b3

Browse files
authored
Add support for EventHeaderTrait (#94)
* Add support for EventHeaderTrait * format * Update CI
1 parent 5f1771f commit 88db4b3

4 files changed

Lines changed: 18 additions & 11 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: macOS-latest
1616
steps:
1717
- name: Checkout
18-
uses: actions/checkout@v4
18+
uses: actions/checkout@v6
1919
- name: SPM tests
2020
run: |
2121
swift --version
@@ -26,13 +26,14 @@ jobs:
2626
strategy:
2727
matrix:
2828
tag:
29-
- swift:5.10
3029
- swift:6.0
30+
- swift:6.1
31+
- swift:6.2
3132
container:
3233
image: ${{ matrix.tag }}
3334
steps:
3435
- name: Checkout
35-
uses: actions/checkout@v4
36+
uses: actions/checkout@v6
3637
- name: Test
3738
run: |
3839
swift --version

Sources/SotoCodeGeneratorLib/AwsService+shapes.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,8 @@ extension AwsService {
369369
var memberCodableContext: MemberCodableContext
370370
if let headerTrait = member.trait(type: HttpHeaderTrait.self) {
371371
memberCodableContext = .init(inHeader: headerTrait.value, codableType: type)
372+
} else if let _ = member.trait(type: EventHeaderTrait.self) {
373+
memberCodableContext = .init(inHeader: name, codableType: type)
372374
} else if let headerTrait = member.trait(type: HttpPrefixHeadersTrait.self) {
373375
memberCodableContext = .init(inHeader: headerTrait.value, codableType: type)
374376
} else if member.hasTrait(type: HttpResponseCodeTrait.self), isOutputShape {

Sources/SotoCodeGeneratorLib/AwsService.swift

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -765,9 +765,13 @@ struct AwsService {
765765
}
766766

767767
func isMemberInBody(_ member: MemberShape, isOutputShape: Bool) -> Bool {
768-
!(member.hasTrait(type: HttpHeaderTrait.self) || member.hasTrait(type: HttpPrefixHeadersTrait.self)
769-
|| (member.hasTrait(type: HttpQueryTrait.self) && !isOutputShape) || member.hasTrait(type: HttpQueryParamsTrait.self)
770-
|| member.hasTrait(type: HttpLabelTrait.self) || member.hasTrait(type: HttpResponseCodeTrait.self))
768+
!(member.hasTrait(type: HttpHeaderTrait.self)
769+
|| member.hasTrait(type: EventHeaderTrait.self)
770+
|| member.hasTrait(type: HttpPrefixHeadersTrait.self)
771+
|| (member.hasTrait(type: HttpQueryTrait.self) && !isOutputShape)
772+
|| member.hasTrait(type: HttpQueryParamsTrait.self)
773+
|| member.hasTrait(type: HttpLabelTrait.self)
774+
|| member.hasTrait(type: HttpResponseCodeTrait.self))
771775
}
772776
}
773777

Sources/SotoCodeGeneratorLib/Model+Patch.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ extension Model {
4545
patch: AddTraitPatch(trait: EnumTrait(value: .init([.init(value: "HTTP1_1"), .init(value: "HTTP2")])))
4646
),
4747
"com.amazonaws.cloudfront#DistributionSummary$HttpVersion": EditShapePatch { (shape: MemberShape) in
48-
return MemberShape(target: "com.amazonaws.cloudfront#UppercaseHttpVersion", traits: shape.traits)
48+
MemberShape(target: "com.amazonaws.cloudfront#UppercaseHttpVersion", traits: shape.traits)
4949
},
5050
],
5151
"CloudWatch": [
@@ -67,7 +67,7 @@ extension Model {
6767
"DynamoDB": [
6868
// Make TransactWriteItem an enum with associated values
6969
"com.amazonaws.dynamodb#TransactWriteItem": EditShapePatch { (shape: StructureShape) in
70-
return UnionShape(traits: shape.traits, members: shape.members)
70+
UnionShape(traits: shape.traits, members: shape.members)
7171
}
7272
],
7373
"EC2": [
@@ -116,7 +116,7 @@ extension Model {
116116
)
117117
),
118118
"com.amazonaws.lambda#ListFunctionsRequest$MasterRegion": EditShapePatch { (shape: MemberShape) in
119-
return MemberShape(target: "com.amazonaws.lambda#SotoCore.Region", traits: shape.traits)
119+
MemberShape(target: "com.amazonaws.lambda#SotoCore.Region", traits: shape.traits)
120120
},
121121
// https://github.com/soto-project/soto/issues/720
122122
"com.amazonaws.lambda#LastUpdateStatusReasonCode": AddShapeMemberPatch<EnumShape>(
@@ -134,7 +134,7 @@ extension Model {
134134
],
135135
"RDSData": [
136136
// See https://github.com/soto-project/soto/issues/471
137-
"com.amazonaws.rdsdata#Arn": EditTraitPatch { trait in return LengthTrait(min: trait.min, max: 2048) }
137+
"com.amazonaws.rdsdata#Arn": EditTraitPatch { trait in LengthTrait(min: trait.min, max: 2048) }
138138
],
139139
"Route53": [
140140
// pagination tokens in response shouldnt be required
@@ -144,7 +144,7 @@ extension Model {
144144
],
145145
"S3": [
146146
// https://github.com/soto-project/soto/issues/311
147-
"com.amazonaws.s3#CopySource": EditTraitPatch { _ in return PatternTrait(value: ".+\\/.+") },
147+
"com.amazonaws.s3#CopySource": EditTraitPatch { _ in PatternTrait(value: ".+\\/.+") },
148148
"com.amazonaws.s3#LifecycleRule$Filter": AddTraitPatch(trait: RequiredTrait()),
149149
// https://github.com/soto-project/soto/issues/502
150150
"com.amazonaws.s3#BucketLocationConstraint": MultiplePatch(

0 commit comments

Comments
 (0)