UNCLASSIFIED

package mil.tron.commonapi.dto;
import java.util.List;
import mil.tron.commonapi.dto.response.WrappedResponse;
public class ScratchStorageEntryDtoResponseWrapper extends WrappedResponse<List<ScratchStorageEntryDto>> {
}
package mil.tron.commonapi.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.UUID;
/**
* Represents a user/consumer of the scratch space -- they will have a privilege associated with them
*
*/
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@JsonIgnoreProperties(ignoreUnknown = true)
public class ScratchStorageUserDto {
@Getter
@Setter
@NotNull
@NotBlank
@Email(message = "Malformed email address")
private String email;
@Getter
@Setter
@Builder.Default
@Schema(accessMode = Schema.AccessMode.READ_ONLY)
private UUID id = UUID.randomUUID();
}
package mil.tron.commonapi.dto;
import java.util.List;
import mil.tron.commonapi.dto.response.WrappedResponse;
public class ScratchStorageUserDtoResponseWrapper extends WrappedResponse<List<ScratchStorageUserDto>> {
}
package mil.tron.commonapi.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;
import javax.validation.constraints.NotBlank;
/**
* A DTO to carry a value and a json path string to update/set a field
* in a scratch space value that is being treated as JSON
*/
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@JsonIgnoreProperties(ignoreUnknown = true)
public class ScratchValuePatchJsonDto {
@Getter
@Setter
@NotBlank
private String jsonPath;
@Getter
@Setter
private String value;
}
package mil.tron.commonapi.dto.appclient;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;
import java.util.UUID;
/**
* DTO used by the App Source Controller to get a list of available app clients, but
* this DTO just shares the UUID and name of the app client - nothing else.
*/
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode
@JsonIgnoreProperties(ignoreUnknown = true)
public class AppClientSummaryDto {
@Getter
@Setter
@Builder.Default
private UUID id = UUID.randomUUID();
@Getter
@Setter
private String name;
}
package mil.tron.commonapi.dto.appclient;
import java.util.List;
import mil.tron.commonapi.dto.response.WrappedResponse;
public class AppClientSummaryDtoResponseWrapper extends WrappedResponse<List<AppClientSummaryDto>> {
}
package mil.tron.commonapi.dto.appclient;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;
import mil.tron.commonapi.dto.PrivilegeDto;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
* A detailed POJO to show more information about a given App client
*/
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode
@JsonIgnoreProperties(ignoreUnknown = true)
public class AppClientUserDetailsDto {
@Getter
@Setter
@Builder.Default
private UUID id = UUID.randomUUID();
@Getter
@Setter
@Builder.Default
private List<String> appClientDeveloperEmails = new ArrayList<>();
@Getter
@Setter
@Builder.Default
private List<PrivilegeDto> privileges = new ArrayList<>();
@Getter
@Setter
@Builder.Default
private List<AppEndpointClientInfoDto> appEndpointPrivs = new ArrayList<>();
@Getter
@Setter
private String name;
@Getter
@Setter
private String clusterUrl;
}
package mil.tron.commonapi.dto.appclient;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import mil.tron.commonapi.dto.PrivilegeDto;
import mil.tron.commonapi.validations.ValidSubscriberAddress;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode
@JsonIgnoreProperties(ignoreUnknown = true)
public class AppClientUserDto {
@Getter
@Setter
@Builder.Default
@Schema(accessMode = Schema.AccessMode.READ_ONLY)
private UUID id = UUID.randomUUID();
@Getter
@Setter
@Builder.Default
private List<PrivilegeDto> privileges = new ArrayList<>();
@Getter
@Setter
@Builder.Default
private List<String> appClientDeveloperEmails = new ArrayList<>();
@Getter
@Setter
@NotNull
@NotBlank
private String name;
@Getter
@Setter
@ValidSubscriberAddress
private String clusterUrl;
}
package mil.tron.commonapi.dto.appclient;
import java.util.List;
import mil.tron.commonapi.dto.response.WrappedResponse;
public class AppClientUserDtoResponseWrapped extends WrappedResponse<List<AppClientUserDto>> {
}
package mil.tron.commonapi.dto.appclient;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.UUID;
/**
* A DTO to show just the info we need for a given App Client's Endpoints
* Prevents recursive serialization that would otherwise occur if we used a
* fill AppEndpointPriv
*/
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode
@JsonIgnoreProperties(ignoreUnknown = true)
public class AppEndpointClientInfoDto {
@Getter
@Setter
private UUID id;
@Getter
@Setter
private String appSourceName;
@Getter
@Setter
String path;
@Getter
@Setter
String basePath;
@Getter
@Setter
RequestMethod method;
@Getter
@Setter
boolean deleted;
@Getter
@Setter
UUID appSourceId;
}
package mil.tron.commonapi.dto.appsource;
import lombok.*;
import mil.tron.commonapi.validations.AppsMatch;
import java.util.UUID;
/**
* DTO to setup a new app source to app client to endpoint relationship / privilege
*/
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode
@AppsMatch(invert = true, field = "appClientUserId", fieldMatch = "appSourceId", message="App cannot fetch from itself")
public class AppEndPointPrivDto {
@Getter
@Setter
private UUID appSourceId;
@Getter
@Setter
private UUID appEndpointId;
@Getter
@Setter
private UUID appClientUserId;
}
package mil.tron.commonapi.dto.appsource;
import java.util.UUID;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AppEndpointDto extends EndpointDto {
@Getter
@Setter
private boolean deleted;
@Builder
public AppEndpointDto(UUID id, String path, String requestType, boolean deleted) {
super(id, path, requestType);
this.deleted = deleted;
}
}
package mil.tron.commonapi.dto.appsource;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import mil.tron.commonapi.dto.AppClientUserPrivDto;
import mil.tron.commonapi.validations.AppAndIdMatch;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode
@AppAndIdMatch
public class AppSourceDetailsDto {
@Getter
@Setter
@Builder.Default
@Schema(accessMode = Schema.AccessMode.READ_ONLY)
private UUID id = UUID.randomUUID();
@Getter
@Setter
@NotBlank
@NotNull
private String name;
@Getter
@Setter
private String appSourcePath;
@Getter
@Setter
@Builder.Default
private Integer endpointCount = 0;
@Getter
@Setter
@Builder.Default
private boolean reportStatus = false;
@Getter
@Setter
@Builder.Default
private Integer clientCount = 0;
@Getter
@Setter
private String healthUrl;
@Getter
@Setter
@Builder.Default
@Valid
private List<String> appSourceAdminUserEmails = new ArrayList<>();
@Getter
@Setter
@Builder.Default
@Valid
private List<AppClientUserPrivDto> appClients = new ArrayList<>();
@Getter
@Setter
@Builder.Default
@Valid
private List<AppEndpointDto> endpoints = new ArrayList<>();
@Getter
@Setter
@Builder.Default
private boolean throttleEnabled = false;
@Getter
@Setter
@Min(0L)
@Builder.Default
private Long throttleRequestCount = 0L;
}
package mil.tron.commonapi.dto.appsource;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.UUID;
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode
public class AppSourceDto {
@Getter
@Setter
@NotBlank
@NotNull
private String name;
@Getter
@Setter
@Builder.Default
@Schema(accessMode = Schema.AccessMode.READ_ONLY)
private UUID id = UUID.randomUUID();
@Getter
@Setter
@Builder.Default
private Integer endpointCount = 0;
@Getter
@Setter
@Builder.Default
private Integer clientCount = 0;
}
package mil.tron.commonapi.dto.appsource;
import java.util.List;
import mil.tron.commonapi.dto.response.WrappedResponse;
public class AppSourceDtoResponseWrapper extends WrappedResponse<List<AppSourceDto>> {
}
package mil.tron.commonapi.dto.appsource;
import java.util.UUID;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@SuperBuilder
public abstract class EndpointDto {
@Getter
@Setter
@Builder.Default
private UUID id = UUID.randomUUID();
@Getter
@Setter
@NotBlank
@NotNull
private String path;
@Getter
@Setter
@NotBlank
@NotNull
private String requestType;
}
package mil.tron.commonapi.dto.kpi;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import mil.tron.commonapi.entity.kpi.AppSourceMetricSummary;
@Data
@Builder
public class AppSourceMetricSummaryDto implements AppSourceMetricSummary {
@Getter
@Setter
private String appSourceName;
@Getter
@Setter
private String appClientName;
@Getter
@Setter
private long requestCount;
}
package mil.tron.commonapi.dto.kpi;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class KpiSummaryDto {
@Getter
@Setter
@Builder.Default
@JsonIgnore
private UUID id = UUID.randomUUID();
@Getter
@Setter
@NotNull
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "UTC")
@Schema(type="string", format = "date")
private Date startDate;
@Getter
@Setter
@NotNull
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "UTC")
@Schema(type="string", format = "date")
private Date endDate;
@Getter
@Setter
private Double averageLatencyForSuccessfulRequests;
@Getter
@Setter
@NotNull
private Long appSourceCount;
@Getter
@Setter
@NotNull
private Long appClientToAppSourceRequestCount;
@Getter
@Setter
private List<UniqueVisitorCountDto> uniqueVisitorCounts;
}
package mil.tron.commonapi.dto.kpi;
import java.util.List;
import mil.tron.commonapi.dto.response.WrappedResponse;
public class KpiSummaryDtoResponseWrapper extends WrappedResponse<List<KpiSummaryDto>> {
}
package mil.tron.commonapi.dto.kpi;
import java.util.UUID;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import mil.tron.commonapi.entity.kpi.VisitorType;
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
public class UniqueVisitorCountDto {
@Getter
@Setter
@Builder.Default
@JsonIgnore
private UUID id = UUID.randomUUID();
@Getter
@Setter
@Enumerated(EnumType.STRING)
@NotNull
private VisitorType visitorType;
@Getter
@Setter
@NotNull
private Long uniqueCount;
@Getter
@Setter
@NotNull
private Long requestCount;
}