class OmMultipartUpload {

  public static OmMultipartUpload from(String key) {
    String[] split = key.split(OM_KEY_PREFIX);
    if (split.length < 5) {
      throw new IllegalArgumentException("Key " + key
          + " doesn't have enough segments to be a valid multipart upload key");
    }
    String uploadId = split[split.length - 1];
    String volume = split[1];
    String bucket = split[2];
    return new OmMultipartUpload(volume, bucket,
        key.substring(volume.length() + bucket.length() + 3,
            key.length() - uploadId.length() - 1), uploadId);
  }

  public  OmMultipartUpload(String volumeName, String bucketName,
      String keyName, String uploadId);
  public  OmMultipartUpload(String volumeName, String bucketName,
      String keyName, String uploadId, Instant creationDate);
  public  OmMultipartUpload(String volumeName, String bucketName,
      String keyName, String uploadId, Instant creationTime,
      ReplicationType replicationType,
      ReplicationFactor replicationFactor);

}