169 lines
4.8 KiB
Java
169 lines
4.8 KiB
Java
package cz.trask.migration.model.v32;
|
|
|
|
import java.io.IOException;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
import com.fasterxml.jackson.core.JsonParser;
|
|
import com.fasterxml.jackson.databind.DeserializationContext;
|
|
import com.fasterxml.jackson.databind.JsonDeserializer;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
|
|
|
public class ApiDefinition {
|
|
|
|
public static class CorsConfiguration {
|
|
@JsonProperty("corsConfigurationEnabled")
|
|
public boolean corsConfigurationEnabled;
|
|
|
|
@JsonProperty("accessControlAllowOrigins")
|
|
public List<String> accessControlAllowOrigins;
|
|
|
|
@JsonProperty("accessControlAllowCredentials")
|
|
public boolean accessControlAllowCredentials;
|
|
|
|
@JsonProperty("accessControlAllowHeaders")
|
|
public List<String> accessControlAllowHeaders;
|
|
|
|
@JsonProperty("accessControlAllowMethods")
|
|
public List<String> accessControlAllowMethods;
|
|
}
|
|
|
|
public static class Tier {
|
|
public String name;
|
|
public String displayName;
|
|
public String description;
|
|
public long requestsPerMin;
|
|
public long requestCount;
|
|
public int unitTime;
|
|
public String timeUnit;
|
|
public String tierPlan;
|
|
public boolean stopOnQuotaReached;
|
|
}
|
|
|
|
public static class EndpointSecurity {
|
|
public static class SecurityConfig {
|
|
public String password;
|
|
public String tokenUrl;
|
|
public String clientId;
|
|
public String clientSecret;
|
|
public String customParameters;
|
|
public String type;
|
|
public String grantType;
|
|
public boolean enabled;
|
|
public String username;
|
|
}
|
|
|
|
public SecurityConfig production;
|
|
public SecurityConfig sandbox;
|
|
}
|
|
|
|
public static class Id {
|
|
public String providerName;
|
|
public String apiName;
|
|
public String version;
|
|
public long id;
|
|
}
|
|
|
|
public static class ApiTierPolicy {
|
|
public String name;
|
|
public String displayName;
|
|
public String description;
|
|
public long requestsPerMin;
|
|
public long requestCount;
|
|
public int unitTime;
|
|
public String timeUnit;
|
|
public String tierPlan;
|
|
public boolean stopOnQuotaReached;
|
|
}
|
|
|
|
public static class EndpointConfig {
|
|
public String endpoint_type;
|
|
public Endpoint sandbox_endpoints;
|
|
public Endpoint production_endpoints;
|
|
public EndpointSecurity endpoint_security;
|
|
|
|
public static class Endpoint {
|
|
public String url;
|
|
}
|
|
|
|
public static class EndpointSecurity {
|
|
public SecurityConfig production;
|
|
public SecurityConfig sandbox;
|
|
|
|
public static class SecurityConfig {
|
|
public String password;
|
|
public String tokenUrl;
|
|
public String clientId;
|
|
public String clientSecret;
|
|
public String customParameters;
|
|
public String type;
|
|
public String grantType;
|
|
public boolean enabled;
|
|
public String username;
|
|
}
|
|
}
|
|
}
|
|
|
|
// --- Hlavní pole ---
|
|
public Id id;
|
|
public String uuid;
|
|
public String type;
|
|
public String context;
|
|
public String contextTemplate;
|
|
public List<String> tags;
|
|
public List<String> documents;
|
|
public String lastUpdated;
|
|
public List<Tier> availableTiers;
|
|
public List<Object> availableSubscriptionLevelPolicies;
|
|
public List<Object> uriTemplates;
|
|
public boolean apiHeaderChanged;
|
|
public boolean apiResourcePatternsChanged;
|
|
public String status;
|
|
public String visibility;
|
|
public List<String> gatewayLabels;
|
|
public boolean endpointSecured;
|
|
public boolean endpointAuthDigest;
|
|
public String transports;
|
|
public String inSequence;
|
|
public boolean advertiseOnly;
|
|
public String subscriptionAvailability;
|
|
public CorsConfiguration corsConfiguration;
|
|
@JsonDeserialize(using = EndpointConfigDeserializer.class)
|
|
public EndpointConfig endpointConfig;
|
|
public String responseCache;
|
|
public int cacheTimeout;
|
|
public String implementation;
|
|
public String authorizationHeader;
|
|
public List<Object> scopes;
|
|
public boolean isDefaultVersion;
|
|
public boolean isPublishedDefaultVersion;
|
|
public List<String> keyManagers;
|
|
public List<String> environments;
|
|
public String createdTime;
|
|
public Map<String, Object> additionalProperties;
|
|
public Map<String, Object> monetizationProperties;
|
|
public boolean isMonetizationEnabled;
|
|
public List<String> environmentList;
|
|
public String apiSecurity;
|
|
public List<Object> endpoints;
|
|
public boolean enableSchemaValidation;
|
|
public List<Object> apiCategories;
|
|
public boolean enableStore;
|
|
public String accessControl;
|
|
public double rating;
|
|
public boolean isLatest;
|
|
|
|
public static class EndpointConfigDeserializer extends JsonDeserializer<EndpointConfig> {
|
|
|
|
@Override
|
|
public EndpointConfig deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
|
|
String json = p.getValueAsString(); // YAML string
|
|
ObjectMapper mapper = new ObjectMapper(); // běžný JSON mapper
|
|
return mapper.readValue(json, EndpointConfig.class);
|
|
}
|
|
}
|
|
|
|
}
|