package com.hubspot.singularity; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; import com.wordnik.swagger.annotations.ApiModelProperty; public class SingularityS3LogMetadata { public static final String LOG_START_S3_ATTR = "starttime"; public static final String LOG_END_S3_ATTR = "endtime"; private final String key; private final long lastModified; private final long size; private final Optional<Long> startTime; private final Optional<Long> endTime; @JsonCreator public SingularityS3LogMetadata(@JsonProperty("key") String key, @JsonProperty("lastModified") long lastModified, @JsonProperty("size") long size, @JsonProperty("startTime") Optional<Long> startTime, @JsonProperty("endTime") Optional<Long> endTime) { this.key = key; this.lastModified = lastModified; this.size = size; this.startTime = startTime; this.endTime = endTime; } @ApiModelProperty("S3 key") public String getKey() { return key; } @ApiModelProperty("Last modified time") public long getLastModified() { return lastModified; } @ApiModelProperty("File size (in bytes)") public long getSize() { return size; } @ApiModelProperty("Time the log file started being written to") public Optional<Long> getStartTime() { return startTime; } @ApiModelProperty("Time the log file was finished being written to") public Optional<Long> getEndTime() { return endTime; } @Override public String toString() { return "SingularityS3Log{" + "key='" + key + '\'' + ", lastModified=" + lastModified + ", size=" + size + ", startTime=" + startTime + ", endTime=" + endTime + '}'; } }