package com.hubspot.deploy; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; import com.wordnik.swagger.annotations.ApiModel; @ApiModel(description="A file with name `filename` containing the signature (e.g. gpg signature) for an artifact with the specified `artifactFilename`. Used to verify the validity of the artifact being downloaded") public class S3ArtifactSignature extends S3Artifact { private final String artifactFilename; @JsonCreator public S3ArtifactSignature(@JsonProperty("name") String name, @JsonProperty("filename") String filename, @JsonProperty("md5sum") Optional<String> md5sum, @JsonProperty("filesize") Optional<Long> filesize, @JsonProperty("s3Bucket") String s3Bucket, @JsonProperty("s3ObjectKey") String s3ObjectKey, @JsonProperty("artifactFilename") String artifactFilename, @JsonProperty("targetFolderRelativeToTask") Optional<String> targetFolderRelativeToTask, @JsonProperty("isArtifactList") Optional<Boolean> isArtifactList) { super(name, filename, md5sum, filesize, s3Bucket, s3ObjectKey, targetFolderRelativeToTask, isArtifactList); this.artifactFilename = artifactFilename; } public String getArtifactFilename() { return artifactFilename; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } if (!super.equals(o)) { return false; } S3ArtifactSignature that = (S3ArtifactSignature) o; return Objects.equals(artifactFilename, that.artifactFilename); } @Override public int hashCode() { return Objects.hash(super.hashCode(), artifactFilename); } @Override public String toString() { return "S3ArtifactSignature{" + "artifactFilename='" + artifactFilename + '\'' + "} " + super.toString(); } }