/******************************************************************************* * Copyright (c) 2012-2015 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.api.account.shared.dto; import org.eclipse.che.api.core.rest.shared.dto.Link; import org.eclipse.che.dto.shared.DTO; import com.wordnik.swagger.annotations.ApiModelProperty; import java.util.List; import java.util.Map; /** * Describes subscription - a link between {@link org.eclipse.che.api.account.server.SubscriptionService} and {@link * org.eclipse.che.api.account.server.dao.Account} * * @author Eugene Voevodin * @author Alexander Garagatyi */ @DTO public interface SubscriptionDescriptor { /* use object instead of primitive to avoid setting the default value on REST framework serialization/deserialization * that allow better validate data that was sent */ @ApiModelProperty(value = "Unique subscription ID") String getId(); void setId(String id); SubscriptionDescriptor withId(String id); @ApiModelProperty(value = "Account ID") String getAccountId(); void setAccountId(String orgId); SubscriptionDescriptor withAccountId(String orgId); @ApiModelProperty(value = "Service ID") String getServiceId(); void setServiceId(String id); SubscriptionDescriptor withServiceId(String id); @ApiModelProperty(value = "Plan ID that includes service, duration, package and RAM amount") String getPlanId(); void setPlanId(String planId); SubscriptionDescriptor withPlanId(String planId); @ApiModelProperty(value = "Properties of the subscription") Map<String, String> getProperties(); void setProperties(Map<String, String> properties); SubscriptionDescriptor withProperties(Map<String, String> properties); @ApiModelProperty(value = "Subscription state") SubscriptionState getState(); void setState(SubscriptionState state); SubscriptionDescriptor withState(SubscriptionState state); @ApiModelProperty(value = "Date when subscription starts") String getStartDate(); void setStartDate(String startDate); SubscriptionDescriptor withStartDate(String startDate); @ApiModelProperty(value = "Date when subscription ends") String getEndDate(); void setEndDate(String endDate); SubscriptionDescriptor withEndDate(String endDate); @ApiModelProperty(value = "Date when trial starts") String getTrialStartDate(); void setTrialStartDate(String trialStartDate); SubscriptionDescriptor withTrialStartDate(String trialStartDate); @ApiModelProperty(value = "Date when trial ends") String getTrialEndDate(); void setTrialEndDate(String trialEndDate); SubscriptionDescriptor withTrialEndDate(String trialEndDate); @ApiModelProperty(value = "Is payment system used") Boolean getUsePaymentSystem(); void setUsePaymentSystem(Boolean usePaymentSystem); SubscriptionDescriptor withUsePaymentSystem(Boolean usePaymentSystem); @ApiModelProperty(value = "Date when billing starts") String getBillingStartDate(); void setBillingStartDate(String billingStartDate); SubscriptionDescriptor withBillingStartDate(String billingStartDate); @ApiModelProperty(value = "Date when billing ends") String getBillingEndDate(); void setBillingEndDate(String billingEndDate); SubscriptionDescriptor withBillingEndDate(String billingEndDate); @ApiModelProperty(value = "Next date of billing") String getNextBillingDate(); void setNextBillingDate(String nextBillingDate); SubscriptionDescriptor withNextBillingDate(String nextBillingDate); @ApiModelProperty(value = "Billing timeout") Integer getBillingCycle(); void setBillingCycle(Integer billingCycle); SubscriptionDescriptor withBillingCycle(Integer billingCycle); @ApiModelProperty(value = "Type of the billing") BillingCycleType getBillingCycleType(); void setBillingCycleType(BillingCycleType billingCycleType); SubscriptionDescriptor withBillingCycleType(BillingCycleType billingCycleType); Integer getBillingContractTerm(); void setBillingContractTerm(Integer BillingContractTerm); SubscriptionDescriptor withBillingContractTerm(Integer BillingContractTerm); @ApiModelProperty(value = "Description of the subscription") String getDescription(); void setDescription(String description); SubscriptionDescriptor withDescription(String description); void setLinks(List<Link> links); List<Link> getLinks(); SubscriptionDescriptor withLinks(List<Link> links); }