Skip to content

Commit fb5701b

Browse files
authored
chore: enable explicit API mode for runtime/service components (#660)
1 parent 12ffcd0 commit fb5701b

File tree

5 files changed

+22
-10
lines changed

5 files changed

+22
-10
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"id": "5c7e4dc6-7bf9-421b-a6d9-01007eacf6be",
3+
"type": "misc",
4+
"description": "Enable [Explicit API mode](https://github.com/Kotlin/KEEP/blob/master/proposals/explicit-api-mode.md)",
5+
"issues": [
6+
"awslabs/smithy-kotlin#216"
7+
]
8+
}

aws-runtime/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,7 @@ subprojects {
6262
}
6363

6464
kotlin {
65-
// TODO - refactor this to error `explicitApi()`
66-
explicitApiWarning()
65+
explicitApi()
6766

6867
sourceSets {
6968
all {

codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/PresignerGenerator.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,10 @@ class PresignerGenerator : KotlinIntegration {
317317
writer
318318
.addImport(KotlinTypes.Time.Duration)
319319
.withBlock(
320-
"suspend fun $requestTypeName.presign(config: $serviceClientTypeName.Config, duration: #T): HttpRequest {",
320+
"public suspend fun #L.presign(config: #L.Config, duration: #T): HttpRequest {",
321321
"}\n",
322+
requestTypeName,
323+
serviceClientTypeName,
322324
KotlinTypes.Time.Duration
323325
) {
324326
withBlock("val presignConfig = $presignConfigTypeName {", "}") {
@@ -341,8 +343,9 @@ class PresignerGenerator : KotlinIntegration {
341343
writer
342344
.addImport(KotlinTypes.Time.Duration)
343345
.withBlock(
344-
"suspend fun $requestTypeName.presign(presignConfig: ServicePresignConfig, duration: #T): HttpRequest {",
346+
"public suspend fun #L.presign(presignConfig: ServicePresignConfig, duration: #T): HttpRequest {",
345347
"}\n",
348+
requestTypeName,
346349
KotlinTypes.Time.Duration
347350
) {
348351
write("return createPresignedRequest(presignConfig, $requestConfigFnName(this, duration))")

codegen/smithy-aws-kotlin-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/PresignerGeneratorTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ class PresignerGeneratorTest {
116116
* @param duration the amount of time from signing for which the request is valid, with seconds granularity.
117117
* @return The [HttpRequest] that can be invoked within the specified time window.
118118
*/
119-
suspend fun GetFooRequest.presign(presignConfig: ServicePresignConfig, duration: Duration): HttpRequest {
119+
public suspend fun GetFooRequest.presign(presignConfig: ServicePresignConfig, duration: Duration): HttpRequest {
120120
return createPresignedRequest(presignConfig, getFooPresignConfig(this, duration))
121121
}
122122
@@ -126,7 +126,7 @@ class PresignerGeneratorTest {
126126
* @param duration the amount of time from signing for which the request is valid, with seconds granularity.
127127
* @return The [HttpRequest] that can be invoked within the specified time window.
128128
*/
129-
suspend fun GetFooRequest.presign(config: TestClient.Config, duration: Duration): HttpRequest {
129+
public suspend fun GetFooRequest.presign(config: TestClient.Config, duration: Duration): HttpRequest {
130130
val presignConfig = TestPresignConfig {
131131
credentialsProvider = config.credentialsProvider
132132
endpointProvider = config.endpointResolver.asSigningEndpointProvider()
@@ -155,7 +155,7 @@ class PresignerGeneratorTest {
155155
* @param duration the amount of time from signing for which the request is valid, with seconds granularity.
156156
* @return The [HttpRequest] that can be invoked within the specified time window.
157157
*/
158-
suspend fun PostFooRequest.presign(presignConfig: ServicePresignConfig, duration: Duration): HttpRequest {
158+
public suspend fun PostFooRequest.presign(presignConfig: ServicePresignConfig, duration: Duration): HttpRequest {
159159
return createPresignedRequest(presignConfig, postFooPresignConfig(this, duration))
160160
}
161161
@@ -165,7 +165,7 @@ class PresignerGeneratorTest {
165165
* @param duration the amount of time from signing for which the request is valid, with seconds granularity.
166166
* @return The [HttpRequest] that can be invoked within the specified time window.
167167
*/
168-
suspend fun PostFooRequest.presign(config: TestClient.Config, duration: Duration): HttpRequest {
168+
public suspend fun PostFooRequest.presign(config: TestClient.Config, duration: Duration): HttpRequest {
169169
val presignConfig = TestPresignConfig {
170170
credentialsProvider = config.credentialsProvider
171171
endpointProvider = config.endpointResolver.asSigningEndpointProvider()
@@ -194,7 +194,7 @@ class PresignerGeneratorTest {
194194
* @param duration the amount of time from signing for which the request is valid, with seconds granularity.
195195
* @return The [HttpRequest] that can be invoked within the specified time window.
196196
*/
197-
suspend fun PutFooRequest.presign(presignConfig: ServicePresignConfig, duration: Duration): HttpRequest {
197+
public suspend fun PutFooRequest.presign(presignConfig: ServicePresignConfig, duration: Duration): HttpRequest {
198198
return createPresignedRequest(presignConfig, putFooPresignConfig(this, duration))
199199
}
200200
@@ -204,7 +204,7 @@ class PresignerGeneratorTest {
204204
* @param duration the amount of time from signing for which the request is valid, with seconds granularity.
205205
* @return The [HttpRequest] that can be invoked within the specified time window.
206206
*/
207-
suspend fun PutFooRequest.presign(config: TestClient.Config, duration: Duration): HttpRequest {
207+
public suspend fun PutFooRequest.presign(config: TestClient.Config, duration: Duration): HttpRequest {
208208
val presignConfig = TestPresignConfig {
209209
credentialsProvider = config.credentialsProvider
210210
endpointProvider = config.endpointResolver.asSigningEndpointProvider()

services/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ subprojects {
4444
}
4545

4646
kotlin {
47+
explicitApi()
48+
4749
sourceSets {
4850
all {
4951
val srcDir = if (name.endsWith("Main")) "src" else "test"

0 commit comments

Comments
 (0)