205 lines
6.5 KiB
Java
205 lines
6.5 KiB
Java
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<String> audiences;
|
|
private List<String> transport;
|
|
private List<String> tags;
|
|
private List<String> policies;
|
|
private List<Object> organizationPolicies;
|
|
private String authorizationHeader;
|
|
private String apiKeyHeader;
|
|
private List<String> securityScheme;
|
|
private String visibility;
|
|
private List<String> visibleRoles;
|
|
private List<String> visibleTenants;
|
|
private List<String> visibleOrganizations;
|
|
private List<Object> mediationPolicies;
|
|
private ApiPolicies apiPolicies;
|
|
private String subscriptionAvailability;
|
|
private List<String> subscriptionAvailableTenants;
|
|
private List<Object> additionalProperties;
|
|
private Map<String, Object> additionalPropertiesMap;
|
|
private String accessControl;
|
|
private List<String> accessControlRoles;
|
|
private Map<String, Object> 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<Object> scopes;
|
|
private List<Operation> operations;
|
|
private List<Object> categories;
|
|
private List<String> keyManagers;
|
|
private AdvertiseInfo advertiseInfo;
|
|
private String gatewayVendor;
|
|
private String gatewayType;
|
|
private List<Object> asyncTransportProtocols;
|
|
private boolean egress;
|
|
private String organizationId;
|
|
}
|
|
|
|
@Data
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
public static class ApiPolicies {
|
|
private List<Policy> request;
|
|
private List<Policy> response;
|
|
private List<Policy> fault;
|
|
}
|
|
|
|
@Data
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
public static class Policy {
|
|
private String policyName;
|
|
private String policyVersion;
|
|
private String policyType;
|
|
private String policyId;
|
|
private Map<String, Object> parameters;
|
|
}
|
|
|
|
@Data
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
public static class CorsConfiguration {
|
|
private boolean corsConfigurationEnabled;
|
|
private List<String> accessControlAllowOrigins;
|
|
private boolean accessControlAllowCredentials;
|
|
private List<String> accessControlAllowHeaders;
|
|
private List<String> 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<String, Object> customParameters;
|
|
private Map<String, Object> 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<String> scopes;
|
|
private List<String> usedProductIds;
|
|
private OperationPolicies operationPolicies;
|
|
}
|
|
|
|
@Data
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
public static class OperationPolicies {
|
|
private List<Policy> request;
|
|
private List<Policy> response;
|
|
private List<Policy> fault;
|
|
}
|
|
|
|
@Data
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
public static class AdvertiseInfo {
|
|
private boolean advertised;
|
|
private String apiOwner;
|
|
private String vendor;
|
|
}
|
|
}
|