package com.hubspot.singularity.api;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.hubspot.singularity.SingularityS3LogMetadata;
import com.wordnik.swagger.annotations.ApiModelProperty;
public class SingularityS3SearchResult {
private final Map<String, ContinuationToken> continuationTokens;
private final boolean lastPage;
private final List<SingularityS3LogMetadata> results;
public static SingularityS3SearchResult empty() {
return new SingularityS3SearchResult(Collections.<String, ContinuationToken>emptyMap(), false, Collections.<SingularityS3LogMetadata>emptyList());
}
@JsonCreator
public SingularityS3SearchResult(@JsonProperty("continuationTokens") Map<String, ContinuationToken> continuationTokens,
@JsonProperty("lastPage") boolean lastPage,
@JsonProperty("results") List<SingularityS3LogMetadata> results) {
this.continuationTokens = continuationTokens;
this.lastPage = lastPage;
this.results = results;
}
@ApiModelProperty(required=false, value="S3 continuation tokens, return these to Singularity to continue searching subsequent pages of results")
public Map<String, ContinuationToken> getContinuationTokens() {
return continuationTokens;
}
@ApiModelProperty(required=true, value="If true, there are no further results for any bucket + prefix being searched")
public boolean isLastPage() {
return lastPage;
}
@ApiModelProperty("List of S3 log metadata")
public List<SingularityS3LogMetadata> getResults() {
return results;
}
@Override
public String toString() {
return "SingularityS3SearchResult{" +
"continuationTokens=" + continuationTokens +
", lastPage=" + lastPage +
", results=" + results +
'}';
}
}