package cz.trask.migration.model; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; import java.util.Map; @Data @JsonIgnoreProperties(ignoreUnknown = true) public class ApiDefinition45 { private String type; private String version; private DataSection data; @lombok.Data @JsonIgnoreProperties(ignoreUnknown = true) public static class DataSection { private String id; private String name; private String description; private String context; private String version; private String provider; private String lifeCycleStatus; private boolean responseCachingEnabled; private int cacheTimeout; private boolean hasThumbnail; @JsonProperty("isDefaultVersion") private boolean defaultVersion; @JsonProperty("isRevision") private boolean revision; private int revisionId; private boolean enableSchemaValidation; private boolean enableSubscriberVerification; private String type; private List audiences; private List transport; private List tags; private List policies; private List organizationPolicies; private String authorizationHeader; private String apiKeyHeader; private List securityScheme; private String visibility; private List visibleRoles; private List visibleTenants; private List visibleOrganizations; private List mediationPolicies; private ApiPolicies apiPolicies; private String subscriptionAvailability; private List subscriptionAvailableTenants; private List additionalProperties; private Map additionalPropertiesMap; private String accessControl; private List accessControlRoles; private Map businessInformation; private CorsConfiguration corsConfiguration; private WebsubSubscriptionConfiguration websubSubscriptionConfiguration; private String createdTime; private String lastUpdatedTimestamp; private String lastUpdatedTime; private EndpointConfig endpointConfig; private String endpointImplementationType; private SubtypeConfiguration subtypeConfiguration; private List scopes; private List operations; private List categories; private List keyManagers; private AdvertiseInfo advertiseInfo; private String gatewayVendor; private String gatewayType; private List asyncTransportProtocols; private boolean egress; private String organizationId; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class ApiPolicies { private List request; private List response; private List fault; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class Policy { private String policyName; private String policyVersion; private String policyType; private String policyId; private Map parameters; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class CorsConfiguration { private boolean corsConfigurationEnabled; private List accessControlAllowOrigins; private boolean accessControlAllowCredentials; private List accessControlAllowHeaders; private List accessControlAllowMethods; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class WebsubSubscriptionConfiguration { private boolean enable; private String secret; private String signingAlgorithm; private String signatureHeader; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class EndpointConfig { private String endpoint_type; private EndpointGroup sandbox_endpoints; private EndpointGroup production_endpoints; private EndpointSecurity endpoint_security; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class EndpointGroup { private String url; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class EndpointSecurity { private SecurityEnv sandbox; private SecurityEnv production; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class SecurityEnv { private String tokenUrl; private String clientId; private int connectionTimeoutDuration; private String type; private int socketTimeoutDuration; private boolean enabled; private ProxyConfigs proxyConfigs; private String password; private String clientSecret; private Map customParameters; private Map additionalProperties; private String grantType; private int connectionRequestTimeoutDuration; private String username; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class ProxyConfigs { private boolean proxyEnabled; private String proxyPort; private String proxyProtocol; private String proxyUsername; private String proxyPassword; private String proxyHost; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class SubtypeConfiguration { private String subtype; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class Operation { private String id; private String target; private String verb; private String authType; private String throttlingPolicy; private List scopes; private List usedProductIds; private OperationPolicies operationPolicies; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class OperationPolicies { private List request; private List response; private List fault; } @Data @JsonIgnoreProperties(ignoreUnknown = true) public static class AdvertiseInfo { private boolean advertised; private String apiOwner; private String vendor; } }