2025-10-21 19:49:00 +02:00

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;
}
}