Skip to content

Commit 4bd7e06

Browse files
authored
feat: add glacier header (#327)
1 parent e92804d commit 4bd7e06

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package software.amazon.smithy.aws.swift.codegen.customization.glacier
2+
3+
import software.amazon.smithy.aws.swift.codegen.middleware.MutateHeadersMiddleware
4+
import software.amazon.smithy.aws.swift.codegen.sdkId
5+
import software.amazon.smithy.model.Model
6+
import software.amazon.smithy.model.shapes.ServiceShape
7+
import software.amazon.smithy.swift.codegen.SwiftSettings
8+
import software.amazon.smithy.swift.codegen.integration.OperationMiddlewareRenderable
9+
import software.amazon.smithy.swift.codegen.integration.ProtocolGenerator
10+
import software.amazon.smithy.swift.codegen.integration.SwiftIntegration
11+
import software.amazon.smithy.swift.codegen.model.expectShape
12+
13+
/**
14+
* Adds a middleware that sets the "X-Amz-Glacier-Version" header to the service model version for all requests
15+
* See https://docs.aws.amazon.com/amazonglacier/latest/dev/api-common-request-headers.html
16+
*/
17+
class GlacierAddVersionHeader : SwiftIntegration {
18+
19+
override fun enabledForService(model: Model, settings: SwiftSettings) =
20+
model.expectShape<ServiceShape>(settings.service).sdkId.equals("Glacier", ignoreCase = true)
21+
22+
override fun customizeMiddleware(
23+
ctx: ProtocolGenerator.GenerationContext,
24+
resolved: List<OperationMiddlewareRenderable>
25+
) = resolved + MutateHeadersMiddleware(
26+
extraHeaders = mapOf(
27+
"X-Amz-Glacier-Version" to ctx.model.expectShape<ServiceShape>(ctx.settings.service).version
28+
)
29+
)
30+
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
software.amazon.smithy.aws.swift.codegen.AddProtocols
22
software.amazon.smithy.aws.swift.codegen.customization.s3.S3SigningConfig
3-
software.amazon.smithy.aws.swift.codegen.customization.apigateway.ApiGatewayAddAcceptHeader
3+
software.amazon.smithy.aws.swift.codegen.customization.apigateway.ApiGatewayAddAcceptHeader
4+
software.amazon.smithy.aws.swift.codegen.customization.glacier.GlacierAddVersionHeader

0 commit comments

Comments
 (0)