/*
 * Copyright 2023 Aiven Oy
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

archivesBaseName = "storage-s3"

ext {
    wireMockVersion = "3.13.1"
}

dependencies {
    implementation project(":storage:core")

    def excludeFromAWSDeps = { ModuleDependency dep ->
        dep.exclude group: "org.slf4j"
    }
    implementation ("software.amazon.awssdk:s3:$awsSdkVersion") {excludeFromAWSDeps(it)}
    runtimeOnly ("software.amazon.awssdk:sts:$awsSdkVersion") {excludeFromAWSDeps(it)}
    // TODO: Needed for Iceberg. We need to figure out how to manage Iceberg-specific dependencies.
    runtimeOnly ("software.amazon.awssdk:kms:$awsSdkVersion") {excludeFromAWSDeps(it)}

    implementation project(':commons')

    testImplementation(testFixtures(project(":storage:core")))

    testImplementation "org.testcontainers:junit-jupiter:$testcontainersVersion"
    testImplementation "org.testcontainers:localstack:$testcontainersVersion"

    integrationTestImplementation("org.wiremock:wiremock:$wireMockVersion") {
        exclude group: "org.slf4j"
    }
}
