Sha256: db38acab11bc49b687f34b11b78784633eb9014d4e8963a6e2a45b6fce599d21

Contents?: true

Size: 1.63 KB

Versions: 2

Compression:

Stored size: 1.63 KB

Contents

package org.embulk.output.s3_parquet.aws


import java.util.Optional

import com.amazonaws.client.builder.AwsClientBuilder
import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration
import com.amazonaws.regions.{DefaultAwsRegionProviderChain, Regions}
import org.embulk.config.{Config, ConfigDefault}
import org.embulk.output.s3_parquet.aws.AwsEndpointConfiguration.Task

import scala.util.Try


object AwsEndpointConfiguration
{

    trait Task
    {

        @Config("endpoint")
        @ConfigDefault("null")
        def getEndpoint: Optional[String]

        @Config("region")
        @ConfigDefault("null")
        def getRegion: Optional[String]

    }

    def apply(task: Task): AwsEndpointConfiguration =
    {
        new AwsEndpointConfiguration(task)
    }
}

class AwsEndpointConfiguration(task: Task)
{

    def configureAwsClientBuilder[S <: AwsClientBuilder[S, T], T](builder: AwsClientBuilder[S, T]): Unit =
    {
        if (task.getRegion.isPresent && task.getEndpoint.isPresent) {
            val ec = new EndpointConfiguration(task.getEndpoint.get, task.getRegion.get)
            builder.setEndpointConfiguration(ec)
        }
        else if (task.getRegion.isPresent && !task.getEndpoint.isPresent) {
            builder.setRegion(task.getRegion.get)
        }
        else if (!task.getRegion.isPresent && task.getEndpoint.isPresent) {
            val r: String = Try(new DefaultAwsRegionProviderChain().getRegion).getOrElse(Regions.DEFAULT_REGION.getName)
            val e: String = task.getEndpoint.get
            val ec = new EndpointConfiguration(e, r)
            builder.setEndpointConfiguration(ec)
        }
    }

}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
embulk-output-s3_parquet-0.1.0 src/main/scala/org/embulk/output/s3_parquet/aws/AwsEndpointConfiguration.scala
embulk-output-s3_parquet-0.0.3 src/main/scala/org/embulk/output/s3_parquet/aws/AwsEndpointConfiguration.scala