in modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/MaxmindIpDataLookups.java [611:784]
protected Map<String, Object> transform(final Result<CacheableEnterpriseResponse> result) {
CacheableEnterpriseResponse response = result.result();
Map<String, Object> data = new HashMap<>();
for (Database.Property property : this.properties) {
switch (property) {
case IP -> data.put("ip", result.ip());
case COUNTRY_CONFIDENCE -> {
if (response.countryConfidence != null) {
data.put("country_confidence", response.countryConfidence);
}
}
case COUNTRY_IN_EUROPEAN_UNION -> {
if (response.isInEuropeanUnion != null) {
data.put("country_in_european_union", response.isInEuropeanUnion);
}
}
case COUNTRY_ISO_CODE -> {
if (response.countryIsoCode != null) {
data.put("country_iso_code", response.countryIsoCode);
}
}
case COUNTRY_NAME -> {
if (response.countryName != null) {
data.put("country_name", response.countryName);
}
}
case CONTINENT_CODE -> {
if (response.continentCode != null) {
data.put("continent_code", response.continentCode);
}
}
case CONTINENT_NAME -> {
if (response.continentName != null) {
data.put("continent_name", response.continentName);
}
}
case REGION_ISO_CODE -> {
if (response.regionIsoCode != null) {
data.put("region_iso_code", response.regionIsoCode);
}
}
case REGION_NAME -> {
if (response.regionName != null) {
data.put("region_name", response.regionName);
}
}
case CITY_CONFIDENCE -> {
if (response.cityConfidence != null) {
data.put("city_confidence", response.cityConfidence);
}
}
case CITY_NAME -> {
if (response.cityName != null) {
data.put("city_name", response.cityName);
}
}
case TIMEZONE -> {
if (response.timezone != null) {
data.put("timezone", response.timezone);
}
}
case LOCATION -> {
Double latitude = response.latitude;
Double longitude = response.longitude;
if (latitude != null && longitude != null) {
Map<String, Object> locationObject = HashMap.newHashMap(2);
locationObject.put("lat", latitude);
locationObject.put("lon", longitude);
data.put("location", locationObject);
}
}
case ACCURACY_RADIUS -> {
if (response.accuracyRadius != null) {
data.put("accuracy_radius", response.accuracyRadius);
}
}
case POSTAL_CODE -> {
if (response.postalCode != null) {
data.put("postal_code", response.postalCode);
}
}
case POSTAL_CONFIDENCE -> {
if (response.postalConfidence != null) {
data.put("postal_confidence", response.postalConfidence);
}
}
case ASN -> {
if (response.asn != null) {
data.put("asn", response.asn);
}
}
case ORGANIZATION_NAME -> {
if (response.organizationName != null) {
data.put("organization_name", response.organizationName);
}
}
case NETWORK -> {
if (result.network() != null) {
data.put("network", result.network());
}
}
case HOSTING_PROVIDER -> {
data.put("hosting_provider", response.isHostingProvider);
}
case TOR_EXIT_NODE -> {
data.put("tor_exit_node", response.isTorExitNode);
}
case ANONYMOUS_VPN -> {
data.put("anonymous_vpn", response.isAnonymousVpn);
}
case ANONYMOUS -> {
data.put("anonymous", response.isAnonymous);
}
case PUBLIC_PROXY -> {
data.put("public_proxy", response.isPublicProxy);
}
case RESIDENTIAL_PROXY -> {
data.put("residential_proxy", response.isResidentialProxy);
}
case DOMAIN -> {
if (response.domain != null) {
data.put("domain", response.domain);
}
}
case ISP -> {
if (response.isp != null) {
data.put("isp", response.isp);
}
}
case ISP_ORGANIZATION_NAME -> {
if (response.ispOrganization != null) {
data.put("isp_organization_name", response.ispOrganization);
}
}
case MOBILE_COUNTRY_CODE -> {
if (response.mobileCountryCode != null) {
data.put("mobile_country_code", response.mobileCountryCode);
}
}
case MOBILE_NETWORK_CODE -> {
if (response.mobileNetworkCode != null) {
data.put("mobile_network_code", response.mobileNetworkCode);
}
}
case USER_TYPE -> {
if (response.userType != null) {
data.put("user_type", response.userType);
}
}
case CONNECTION_TYPE -> {
if (response.connectionType != null) {
data.put("connection_type", response.connectionType);
}
}
case REGISTERED_COUNTRY_IN_EUROPEAN_UNION -> {
if (response.registeredCountryIsInEuropeanUnion != null) {
data.put("registered_country_in_european_union", response.registeredCountryIsInEuropeanUnion);
}
}
case REGISTERED_COUNTRY_ISO_CODE -> {
if (response.registeredCountryIsoCode != null) {
data.put("registered_country_iso_code", response.registeredCountryIsoCode);
}
}
case REGISTERED_COUNTRY_NAME -> {
if (response.registeredCountryName != null) {
data.put("registered_country_name", response.registeredCountryName);
}
}
}
}
return data;
}