package com.amazon.fraudchecksystemstateservice.provider;
import com.amazon.cloudauth.client.CloudAuthCredentials;
import com.amazon.fraudchecksystemstateservice.guice.ConfigUtil;
import com.amazon.orca.api.OrcaClient;
import com.amazon.orca.client.OrcaClientBuilder;
import com.amazon.orca.herd.client.impl.OrcaHerdClient;
import com.amazonaws.SDKGlobalConfiguration;
import com.google.inject.Provider;
import lombok.extern.log4j.Log4j2;
import javax.inject.Inject;
@Log4j2
public class OrcaHerdClientProvider implements Provider<OrcaHerdClient> {
private final CloudAuthCredentials cloudAuthCredentials;
@Inject
public OrcaHerdClientProvider(CloudAuthCredentials cloudAuthCredentials) {
this.cloudAuthCredentials = cloudAuthCredentials;
}
@Override
public OrcaHerdClient get() {
OrcaClient orcaClient = new OrcaClientBuilder()
.stage(ConfigUtil.getStage())
.region(this.getRegion())
.cloudAuthCredentials(this.cloudAuthCredentials)
.build();
OrcaHerdClient herdClient = new OrcaHerdClient(orcaClient);
log.info("OrcaHerdClient initialized");
return herdClient;
}
private String getRegion() {
return System.getenv(SDKGlobalConfiguration.AWS_REGION_ENV_VAR);
}
}