BokaMera.API.Host

<back to all web services

UpdateVossSubscriptionScheduledChange

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
PUT/voss/subscriptions/{SubscriptionId}/scheduledChanges/{Id}Update voss subscription scheduled changeUpdate a pending subscription scheduled change in the VOSS System. Already executed scheduled changes cannot be updated.
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;
import com.google.gson.annotations.*;
import com.google.gson.reflect.*;

public class dtos
{

    @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
    public static class UpdateVossSubscriptionScheduledChange
    {
        /**
        * The subscription id
        */
        @ApiMember(Description="The subscription id", IsRequired=true)
        public UUID SubscriptionId = null;

        /**
        * The subscription scheduled change id
        */
        @ApiMember(Description="The subscription scheduled change id", IsRequired=true)
        public UUID Id = null;

        /**
        * Controls when the scheduled change will be executed:  <br />AtSubscriptionBillingPeriodEnd - after the currently latest subscription billing period ends  <br />AtBindingPeriodEnd - after the currently latest subscription binding period ends
        */
        @ApiMember(Description="Controls when the scheduled change will be executed:  <br />AtSubscriptionBillingPeriodEnd - after the currently latest subscription billing period ends  <br />AtBindingPeriodEnd - after the currently latest subscription binding period ends", IsRequired=true)
        public TypeEnum Type = null;

        /**
        * Optional package version id; if omitted the current version of the subscription package is used
        */
        @ApiMember(Description="Optional package version id; if omitted the current version of the subscription package is used")
        public UUID VersionId = null;

        /**
        * The id of a package which will be active after the scheduled change is executed; if provided the tier id and plan id have to be provided as well
        */
        @ApiMember(Description="The id of a package which will be active after the scheduled change is executed; if provided the tier id and plan id have to be provided as well")
        public UUID PackageId = null;

        /**
        * The id of a tier which will be active after the scheduled change is executed; can be omitted if PlanId is provided instead
        */
        @ApiMember(Description="The id of a tier which will be active after the scheduled change is executed; can be omitted if PlanId is provided instead")
        public UUID TierId = null;

        /**
        * The id of a plan which will be active after the scheduled change is executed; can be omitted if TierId is provided instead
        */
        @ApiMember(Description="The id of a plan which will be active after the scheduled change is executed; can be omitted if TierId is provided instead")
        public UUID PlanId = null;

        /**
        * How many periods (counting from the latest period) must pass before the scheduled change is executed; if omitted the change is executed on the latest period end
        */
        @ApiMember(Description="How many periods (counting from the latest period) must pass before the scheduled change is executed; if omitted the change is executed on the latest period end")
        public Integer PeriodIterationCount = null;
        
        public UUID getSubscriptionId() { return SubscriptionId; }
        public UpdateVossSubscriptionScheduledChange setSubscriptionId(UUID value) { this.SubscriptionId = value; return this; }
        public UUID getId() { return Id; }
        public UpdateVossSubscriptionScheduledChange setId(UUID value) { this.Id = value; return this; }
        public TypeEnum getType() { return Type; }
        public UpdateVossSubscriptionScheduledChange setType(TypeEnum value) { this.Type = value; return this; }
        public UUID getVersionId() { return VersionId; }
        public UpdateVossSubscriptionScheduledChange setVersionId(UUID value) { this.VersionId = value; return this; }
        public UUID getPackageId() { return PackageId; }
        public UpdateVossSubscriptionScheduledChange setPackageId(UUID value) { this.PackageId = value; return this; }
        public UUID getTierId() { return TierId; }
        public UpdateVossSubscriptionScheduledChange setTierId(UUID value) { this.TierId = value; return this; }
        public UUID getPlanId() { return PlanId; }
        public UpdateVossSubscriptionScheduledChange setPlanId(UUID value) { this.PlanId = value; return this; }
        public Integer getPeriodIterationCount() { return PeriodIterationCount; }
        public UpdateVossSubscriptionScheduledChange setPeriodIterationCount(Integer value) { this.PeriodIterationCount = value; return this; }
    }

    public static enum TypeEnum
    {
        AtSubscriptionBillingPeriodEnd,
        AtBindingPeriodEnd;
    }

    @DataContract(Name="SubscriptionScheduledChangeResult")
    public static class SubscriptionScheduledChangeResult
    {
        @DataMember(Name="type")
        @SerializedName("type")
        public TypeEnum Type = null;

        @DataMember(Name="status", IsRequired=true)
        @SerializedName("status")
        public StatusEnum Status = null;

        @DataMember(Name="id", IsRequired=true)
        @SerializedName("id")
        public UUID Id = null;

        @DataMember(Name="package")
        @SerializedName("package")
        public SubscriptionScheduledChangePackageResult Package = null;

        @DataMember(Name="tier")
        @SerializedName("tier")
        public SubscriptionScheduledChangeTierResult Tier = null;

        @DataMember(Name="plan")
        @SerializedName("plan")
        public SubscriptionScheduledChangePlanResult Plan = null;

        @DataMember(Name="scheduledDate", IsRequired=true)
        @SerializedName("scheduledDate")
        public Date ScheduledDate = null;

        @DataMember(Name="salesInformation")
        @SerializedName("salesInformation")
        public SubscriptionScheduledChangeSalesInformationResult SalesInformation = null;
        
        public TypeEnum getType() { return Type; }
        public SubscriptionScheduledChangeResult setType(TypeEnum value) { this.Type = value; return this; }
        public StatusEnum getStatus() { return Status; }
        public SubscriptionScheduledChangeResult setStatus(StatusEnum value) { this.Status = value; return this; }
        public UUID getId() { return Id; }
        public SubscriptionScheduledChangeResult setId(UUID value) { this.Id = value; return this; }
        public SubscriptionScheduledChangePackageResult getPackage() { return Package; }
        public SubscriptionScheduledChangeResult setPackage(SubscriptionScheduledChangePackageResult value) { this.Package = value; return this; }
        public SubscriptionScheduledChangeTierResult getTier() { return Tier; }
        public SubscriptionScheduledChangeResult setTier(SubscriptionScheduledChangeTierResult value) { this.Tier = value; return this; }
        public SubscriptionScheduledChangePlanResult getPlan() { return Plan; }
        public SubscriptionScheduledChangeResult setPlan(SubscriptionScheduledChangePlanResult value) { this.Plan = value; return this; }
        public Date getScheduledDate() { return ScheduledDate; }
        public SubscriptionScheduledChangeResult setScheduledDate(Date value) { this.ScheduledDate = value; return this; }
        public SubscriptionScheduledChangeSalesInformationResult getSalesInformation() { return SalesInformation; }
        public SubscriptionScheduledChangeResult setSalesInformation(SubscriptionScheduledChangeSalesInformationResult value) { this.SalesInformation = value; return this; }
    }

    public static enum StatusEnum
    {
        Active,
        Terminated;
    }

    @DataContract(Name="SubscriptionScheduledChangePackageResult")
    public static class SubscriptionScheduledChangePackageResult
    {
        @DataMember(Name="id", IsRequired=true)
        @SerializedName("id")
        public UUID Id = null;

        @DataMember(Name="versionId", IsRequired=true)
        @SerializedName("versionId")
        public UUID VersionId = null;

        @DataMember(Name="name", IsRequired=true)
        @SerializedName("name")
        public String Name = null;
        
        public UUID getId() { return Id; }
        public SubscriptionScheduledChangePackageResult setId(UUID value) { this.Id = value; return this; }
        public UUID getVersionId() { return VersionId; }
        public SubscriptionScheduledChangePackageResult setVersionId(UUID value) { this.VersionId = value; return this; }
        public String getName() { return Name; }
        public SubscriptionScheduledChangePackageResult setName(String value) { this.Name = value; return this; }
    }

    @DataContract(Name="SubscriptionScheduledChangeTierResult")
    public static class SubscriptionScheduledChangeTierResult
    {
        @DataMember(Name="id", IsRequired=true)
        @SerializedName("id")
        public UUID Id = null;

        @DataMember(Name="name", IsRequired=true)
        @SerializedName("name")
        public String Name = null;
        
        public UUID getId() { return Id; }
        public SubscriptionScheduledChangeTierResult setId(UUID value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public SubscriptionScheduledChangeTierResult setName(String value) { this.Name = value; return this; }
    }

    @DataContract(Name="SubscriptionScheduledChangePlanResult")
    public static class SubscriptionScheduledChangePlanResult
    {
        @DataMember(Name="id", IsRequired=true)
        @SerializedName("id")
        public UUID Id = null;

        @DataMember(Name="name", IsRequired=true)
        @SerializedName("name")
        public String Name = null;
        
        public UUID getId() { return Id; }
        public SubscriptionScheduledChangePlanResult setId(UUID value) { this.Id = value; return this; }
        public String getName() { return Name; }
        public SubscriptionScheduledChangePlanResult setName(String value) { this.Name = value; return this; }
    }

    @DataContract(Name="SubscriptionScheduledChangeSalesInformationResult")
    public static class SubscriptionScheduledChangeSalesInformationResult
    {
        @DataMember(Name="salesPersonId")
        @SerializedName("salesPersonId")
        public String SalesPersonId = null;

        @DataMember(Name="salesDepartmentId")
        @SerializedName("salesDepartmentId")
        public String SalesDepartmentId = null;
        
        public String getSalesPersonId() { return SalesPersonId; }
        public SubscriptionScheduledChangeSalesInformationResult setSalesPersonId(String value) { this.SalesPersonId = value; return this; }
        public String getSalesDepartmentId() { return SalesDepartmentId; }
        public SubscriptionScheduledChangeSalesInformationResult setSalesDepartmentId(String value) { this.SalesDepartmentId = value; return this; }
    }

}

Java UpdateVossSubscriptionScheduledChange DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

PUT /voss/subscriptions/{SubscriptionId}/scheduledChanges/{Id} HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<UpdateVossSubscriptionScheduledChange xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <Id>00000000-0000-0000-0000-000000000000</Id>
  <PackageId>00000000-0000-0000-0000-000000000000</PackageId>
  <PeriodIterationCount>0</PeriodIterationCount>
  <PlanId>00000000-0000-0000-0000-000000000000</PlanId>
  <SubscriptionId>00000000-0000-0000-0000-000000000000</SubscriptionId>
  <TierId>00000000-0000-0000-0000-000000000000</TierId>
  <Type>AtSubscriptionBillingPeriodEnd</Type>
  <VersionId>00000000-0000-0000-0000-000000000000</VersionId>
</UpdateVossSubscriptionScheduledChange>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<SubscriptionScheduledChangeResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.VossIntegration.ApiTools.Model">
  <id>00000000-0000-0000-0000-000000000000</id>
  <package i:nil="true" />
  <plan i:nil="true" />
  <salesInformation i:nil="true" />
  <scheduledDate>0001-01-01T00:00:00</scheduledDate>
  <status>Pending</status>
  <tier i:nil="true" />
  <type>AtSubscriptionBillingPeriodEnd</type>
</SubscriptionScheduledChangeResult>