All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.singularity.SingularityWebhook Maven / Gradle / Ivy

The newest version!
package com.hubspot.singularity;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import com.hubspot.mesos.JavaUtils;
import com.wordnik.swagger.annotations.ApiModelProperty;

public class SingularityWebhook {

  private final String uri;
  private final WebhookType type;

  private final Optional user;
  private final long timestamp;

  private final String id;

  @JsonCreator
  public SingularityWebhook(@JsonProperty("uri") String uri, @JsonProperty("timestamp") Optional timestamp, @JsonProperty("user") Optional user, @JsonProperty("type") WebhookType type) {
    this.uri = uri;
    this.timestamp = timestamp.or(System.currentTimeMillis());
    this.user = user;
    this.id = type.name() + "-" + JavaUtils.urlEncode(uri);
    this.type = type;
  }

  @ApiModelProperty(required=false, value="Unique ID for webhook.")
  public String getId() {
    return id;
  }

  @ApiModelProperty("URI to POST to.")
  public String getUri() {
    return uri;
  }

  @ApiModelProperty(required=false, value="")
  public long getTimestamp() {
    return timestamp;
  }

  @ApiModelProperty(required=false, value="User that created webhook.")
  public Optional getUser() {
    return user;
  }

  @ApiModelProperty("Webhook type.")
  public WebhookType getType() {
    return type;
  }

  @Override
  public String toString() {
    return "SingularityWebhook [uri=" + uri + ", timestamp=" + timestamp + ", id=" + id + ", user=" + user + ", type=" + type + "]";
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy