package io.fathom.auto.openstack.metadata; import com.google.gson.JsonElement; import com.google.gson.JsonObject; public class Metadata { private final JsonObject data; public Metadata(JsonObject data) { this.data = data; } public String findTopLevel(String key) { JsonElement element = data.get(key); if (element == null) { return null; } return element.getAsString(); } public String getTopLevel(String key) { String value = findTopLevel(key); if (value == null) { throw new IllegalArgumentException("Top-level key not found: " + key); } return value; } public String findMeta(String key) { JsonElement meta = data.get("meta"); if (meta == null || !(meta instanceof JsonObject)) { return null; } JsonElement element = ((JsonObject) meta).get(key); if (element == null) { return null; } return element.getAsString(); } public String getMeta(String key) { String value = findMeta(key); if (value == null) { throw new IllegalArgumentException("Metadata key not found: " + key); } return value; } }