
apoc.ml.aws.AWSConfig Maven / Gradle / Ivy
package apoc.ml.aws;
import java.util.HashMap;
import java.util.Map;
import static apoc.ApocConfig.apocConfig;
import static apoc.ExtendedApocConfig.APOC_AWS_KEY_ID;
import static apoc.ExtendedApocConfig.APOC_AWS_SECRET_KEY;
import static apoc.ml.MLUtil.*;
public abstract class AWSConfig {
abstract String getDefaultEndpoint(Map config);
abstract String getDefaultMethod();
public static final String HEADERS_KEY = "headers";
public static final String BODY_KEY = "body";
public static final String JSON_PATH = "jsonPath";
public static final String SECRET_KEY = "secretKey";
public static final String KEY_ID = "keyId";
public static final String METHOD_KEY = "method";
private final String keyId;
private final String secretKey;
private final String region;
private final String endpoint;
private final String method;
private final String jsonPath;
private final Map headers;
private final Map body;
protected AWSConfig(Map config) {
config = config == null ? Map.of() : config;
this.keyId = apocConfig().getString(APOC_AWS_KEY_ID, (String) config.get(KEY_ID));
this.secretKey = apocConfig().getString(APOC_AWS_SECRET_KEY, (String) config.get(SECRET_KEY));
this.region = (String) config.getOrDefault(REGION_CONF_KEY, "us-east-1");
this.endpoint = getEndpoint(config, getDefaultEndpoint(config));
this.method = (String) config.getOrDefault(METHOD_KEY, getDefaultMethod());
this.jsonPath = (String) config.get(JSON_PATH);
this.headers = (Map) config.getOrDefault(HEADERS_KEY, new HashMap<>());
this.body = (Map) config.getOrDefault(BODY_KEY, new HashMap<>());
}
private String getEndpoint(Map config, String defaultEndpoint) {
String endpointConfig = (String) config.get(ENDPOINT_CONF_KEY);
if (endpointConfig != null) {
return endpointConfig;
}
if (defaultEndpoint != null) {
return defaultEndpoint;
}
String errMessage = String.format("An endpoint could not be retrieved.\n" +
"Explicit the %s config",
ENDPOINT_CONF_KEY);
throw new RuntimeException(errMessage);
}
public String getKeyId() {
return keyId;
}
public String getSecretKey() {
return secretKey;
}
public String getEndpoint() {
return endpoint;
}
public String getRegion() {
return region;
}
public Map getHeaders() {
return headers;
}
public String getMethod() {
return method;
}
public Map getBody() {
return body;
}
public String getJsonPath() {
return jsonPath;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy