| POST | /subscription/{EventType} | Subscribe to an event with a url we should post to | |
|---|---|---|---|
| POST | /subscription | Subscribe to an event with a url we should post to |
import java.math.*;
import java.util.*;
import net.servicestack.client.*;
public class dtos
{
public static class AddSubscription extends ApiServiceRequest implements ILogRequest
{
/**
* The event type being subscribed to
*/
@ApiMember(Description="The event type being subscribed to", IsRequired=true)
public WebhookSubscriptionEventType EventType = null;
/**
* The URL we should post the event data to
*/
@ApiMember(Description="The URL we should post the event data to", IsRequired=true)
public String SubscriptionUrl = null;
public WebhookSubscriptionEventType getEventType() { return EventType; }
public AddSubscription setEventType(WebhookSubscriptionEventType value) { this.EventType = value; return this; }
public String getSubscriptionUrl() { return SubscriptionUrl; }
public AddSubscription setSubscriptionUrl(String value) { this.SubscriptionUrl = value; return this; }
}
public static class ApiServiceRequest implements IServiceRequest, IHasApiKey
{
/**
* The API Key required for authentication
*/
@ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
public String ApiKey = null;
public String getApiKey() { return ApiKey; }
public ApiServiceRequest setApiKey(String value) { this.ApiKey = value; return this; }
}
public static enum WebhookSubscriptionEventType
{
@SerializedName("0") DriverOnTheWay(0),
@SerializedName("1") ArrivedAtWaypoint(1),
@SerializedName("2") DepartedWaypoint(2),
@SerializedName("3") OrderCompleted(3),
@SerializedName("4") OrderCancelled(4);
private final int value;
WebhookSubscriptionEventType(final int intValue) { value = intValue; }
public int getValue() { return value; }
}
public static class ApiServiceResponse implements IServiceResponse
{
/**
* Information about the response.
*/
@ApiMember(Description="Information about the response.", IsRequired=true)
public String Description = null;
/**
* Heading or summary of the response.
*/
@ApiMember(Description="Heading or summary of the response.", IsRequired=true)
public String Heading = null;
/**
* Did the intended operation for this response complete successfully?
*/
@ApiMember(DataType="boolean", Description="Did the intended operation for this response complete successfully?", IsRequired=true)
public Boolean WasSuccessful = null;
public String getDescription() { return Description; }
public ApiServiceResponse setDescription(String value) { this.Description = value; return this; }
public String getHeading() { return Heading; }
public ApiServiceResponse setHeading(String value) { this.Heading = value; return this; }
public Boolean isWasSuccessful() { return WasSuccessful; }
public ApiServiceResponse setWasSuccessful(Boolean value) { this.WasSuccessful = value; return this; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /subscription/{EventType} HTTP/1.1
Host: 1fetch.api.client.prod.86degrees.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
EventType: 0,
SubscriptionUrl: String,
ApiKey: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Description: String,
Heading: String,
WasSuccessful: False
}