com.stripe.model.Subscription Maven / Gradle / Ivy
package com.stripe.model;
import com.stripe.exception.APIConnectionException;
import com.stripe.exception.APIException;
import com.stripe.exception.AuthenticationException;
import com.stripe.exception.CardException;
import com.stripe.exception.InvalidRequestException;
import com.stripe.net.APIResource;
import com.stripe.net.RequestOptions;
import java.util.Map;
import lombok.AccessLevel;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@EqualsAndHashCode(callSuper = false)
public class Subscription extends APIResource implements MetadataStore, HasId {
@Getter(onMethod = @__({@Override})) String id;
String object;
Double applicationFeePercent;
String billing;
Long billingCycleAnchor;
Boolean cancelAtPeriodEnd;
Long canceledAt;
Long created;
Long currentPeriodEnd;
Long currentPeriodStart;
@Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) ExpandableField customer;
Integer daysUntilDue;
Discount discount;
Long endedAt;
@Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) SubscriptionItemCollection items;
@Getter(onMethod = @__({@Override})) Map metadata;
Plan plan;
Integer quantity;
Long start;
String status;
Double taxPercent;
Long trialEnd;
Long trialStart;
//
public String getCustomer() {
return (this.customer != null) ? this.customer.getId() : null;
}
public void setCustomer(String customerID) {
this.customer = setExpandableFieldID(customerID, this.customer);
}
public Customer getCustomerObject() {
return (this.customer != null) ? this.customer.getExpanded() : null;
}
public void setCustomerObject(Customer c) {
this.customer = new ExpandableField(c.getId(), c);
}
//
//
public SubscriptionItemCollection getSubscriptionItems() {
return items;
}
public void setSubscriptionItems(SubscriptionItemCollection items) {
this.items = items;
}
//
//
/**
* List subscriptions.
*
* @deprecated Use the {@link #list(Map)} method instead.
* This method will be removed in the next major version.
*/
@Deprecated
public static SubscriptionCollection all(Map params)
throws AuthenticationException, InvalidRequestException,
APIConnectionException, CardException, APIException {
return list(params, null);
}
/**
* List subscriptions.
*
* @deprecated Use the {@link #list(Map, RequestOptions)} method instead.
* This method will be removed in the next major version.
*/
@Deprecated
public static SubscriptionCollection all(Map params,
RequestOptions options) throws AuthenticationException,
InvalidRequestException, APIConnectionException, CardException,
APIException {
return list(params, options);
}
//
//
/**
* Cancel a subscription.
*/
public Subscription cancel(Map params) throws AuthenticationException,
InvalidRequestException, APIConnectionException, CardException,
APIException {
return cancel(params, (RequestOptions) null);
}
/**
* Cancel a subscription.
*/
public Subscription cancel(Map params, RequestOptions options)
throws AuthenticationException, InvalidRequestException, APIConnectionException,
CardException, APIException {
return request(RequestMethod.DELETE, instanceURL(Subscription.class, id), params,
Subscription.class, options);
}
/**
* Cancel a subscription.
*
* @deprecated Use the {@link #cancel(Map, RequestOptions)} method instead.
* This method will be removed in the next major version.
*/
@Deprecated
public Subscription cancel(Map params, String apiKey)
throws AuthenticationException, InvalidRequestException, APIConnectionException,
CardException, APIException {
return cancel(params, RequestOptions.builder().setApiKey(apiKey).build());
}
//
//
/**
* Create a subscription.
*/
public static Subscription create(Map params)
throws AuthenticationException, InvalidRequestException,
APIConnectionException, CardException, APIException {
return create(params, null);
}
/**
* Create a subscription.
*/
public static Subscription create(Map params, RequestOptions options)
throws AuthenticationException, InvalidRequestException,
APIConnectionException, CardException, APIException {
return request(RequestMethod.POST, classURL(Subscription.class), params, Subscription.class,
options);
}
//
//
/**
* Delete a subscription discount.
*/
public void deleteDiscount() throws AuthenticationException,
InvalidRequestException, APIConnectionException, CardException,
APIException {
deleteDiscount((RequestOptions) null);
}
/**
* Delete a subscription discount.
*/
public void deleteDiscount(RequestOptions options) throws AuthenticationException,
InvalidRequestException, APIConnectionException, CardException,
APIException {
request(RequestMethod.DELETE, String.format("%s/discount", instanceURL(Subscription.class, id)),
null, Discount.class, options);
}
/**
* Delete a subscription discount.
*
* @deprecated Use the {@link #deleteDiscount(RequestOptions)} method instead.
* This method will be removed in the next major version.
*/
@Deprecated
public void deleteDiscount(String apiKey) throws AuthenticationException,
InvalidRequestException, APIConnectionException, CardException,
APIException {
RequestOptions result = null;
if (apiKey != null) {
result = RequestOptions.builder().setApiKey(apiKey).build();
}
deleteDiscount(result);
}
//
//
/**
* List subscriptions.
*/
public static SubscriptionCollection list(Map params)
throws AuthenticationException,
InvalidRequestException, APIConnectionException, CardException,
APIException {
return list(params, null);
}
/**
* List subscriptions.
*/
public static SubscriptionCollection list(Map params,
RequestOptions options) throws AuthenticationException,
InvalidRequestException, APIConnectionException, CardException,
APIException {
return requestCollection(classURL(Subscription.class), params, SubscriptionCollection.class,
options);
}
//
//
/**
* Retrieve a subscription.
*/
public static Subscription retrieve(String id) throws AuthenticationException,
InvalidRequestException, APIConnectionException, CardException,
APIException {
return retrieve(id, null);
}
/**
* Retrieve a subscription.
*/
public static Subscription retrieve(String id, RequestOptions options)
throws AuthenticationException, InvalidRequestException,
APIConnectionException, CardException, APIException {
return request(RequestMethod.GET, instanceURL(Subscription.class, id), null, Subscription.class,
options);
}
/**
* Retrieve a subscription.
*/
public static Subscription retrieve(String id, Map params, RequestOptions options)
throws AuthenticationException, InvalidRequestException,
APIConnectionException, CardException, APIException {
return request(RequestMethod.GET, instanceURL(Subscription.class, id), params,
Subscription.class, options);
}
//
//
/**
* Update a subscription.
*/
@Override
public Subscription update(Map params)
throws AuthenticationException, InvalidRequestException,
APIConnectionException, CardException, APIException {
return update(params, (RequestOptions) null);
}
/**
* Update a subscription.
*/
@Override
public Subscription update(Map params, RequestOptions options)
throws AuthenticationException, InvalidRequestException,
APIConnectionException, CardException, APIException {
return request(RequestMethod.POST, instanceURL(Subscription.class, id), params,
Subscription.class, options);
}
/**
* Update a subscription.
*
* @deprecated Use the {@link #update(Map, RequestOptions)} method instead.
* This method will be removed in the next major version.
*/
@Deprecated
public Subscription update(Map params, String apiKey)
throws AuthenticationException, InvalidRequestException,
APIConnectionException, CardException, APIException {
return update(params, RequestOptions.builder().setApiKey(apiKey).build());
}
//
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy