package com.hubspot.singularity; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; public class SingularityS3UploaderFile { private final String filename; private final Optional<String> s3UploaderBucket; private final Optional<String> s3UploaderKeyPattern; private final Optional<String> s3UploaderFilenameHint; private final Optional<String> directory; private final Optional<String> s3StorageClass; private final Optional<Long> applyS3StorageClassAfterBytes; @JsonCreator public static SingularityS3UploaderFile fromString(String value) { return new SingularityS3UploaderFile(value, Optional.<String>absent(), Optional.<String>absent(), Optional.<String>absent(), Optional.<String>absent(), Optional.<String>absent(), Optional.<Long>absent()); } @JsonCreator public SingularityS3UploaderFile(@JsonProperty("filename") String filename, @JsonProperty("s3UploaderBucket") Optional<String> s3UploaderBucket, @JsonProperty("s3UploaderKeyPattern") Optional<String> s3UploaderKeyPattern, @JsonProperty("s3UploaderFilenameHint") Optional<String> s3UploaderFilenameHint, @JsonProperty("directory") Optional<String> directory, @JsonProperty("s3StorageClass") Optional<String> s3StorageClass, @JsonProperty("applyS3StorageClassAfterBytes") Optional<Long> applyS3StorageClassAfterBytes) { this.filename = filename; this.s3UploaderBucket = s3UploaderBucket; this.s3UploaderKeyPattern = s3UploaderKeyPattern; this.s3UploaderFilenameHint = s3UploaderFilenameHint; this.directory = directory; this.s3StorageClass = s3StorageClass; this.applyS3StorageClassAfterBytes = applyS3StorageClassAfterBytes; } public String getFilename() { return filename; } public Optional<String> getS3UploaderBucket() { return s3UploaderBucket; } public Optional<String> getS3UploaderKeyPattern() { return s3UploaderKeyPattern; } public Optional<String> getS3UploaderFilenameHint() { return s3UploaderFilenameHint; } public Optional<String> getDirectory() { return directory; } public Optional<String> getS3StorageClass() { return s3StorageClass; } public Optional<Long> getApplyS3StorageClassAfterBytes() { return applyS3StorageClassAfterBytes; } @Override public String toString() { return "SingularityS3UploaderFile{" + "filename='" + filename + '\'' + ", s3UploaderBucket=" + s3UploaderBucket + ", s3UploaderKeyPattern=" + s3UploaderKeyPattern + ", s3UploaderFilenameHint=" + s3UploaderFilenameHint + ", directory=" + directory + ", s3StorageClass=" + s3StorageClass + ", applyS3StorageClassAfterBytes=" + applyS3StorageClassAfterBytes + '}'; } }