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.
namespace BokaMera.API.ServiceModel.Dtos

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    type TypeEnum =
        | AtSubscriptionBillingPeriodEnd = 0
        | AtBindingPeriodEnd = 1

    type StatusEnum =
        | Active = 0
        | Terminated = 1

    [<DataContract(Name="SubscriptionScheduledChangePackageResult")>]
    [<AllowNullLiteral>]
    type SubscriptionScheduledChangePackageResult() = 
        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="versionId", IsRequired=true)>]
        member val VersionId:Guid = new Guid() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

    [<DataContract(Name="SubscriptionScheduledChangeTierResult")>]
    [<AllowNullLiteral>]
    type SubscriptionScheduledChangeTierResult() = 
        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

    [<DataContract(Name="SubscriptionScheduledChangePlanResult")>]
    [<AllowNullLiteral>]
    type SubscriptionScheduledChangePlanResult() = 
        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="name", IsRequired=true)>]
        member val Name:String = null with get,set

    [<DataContract(Name="SubscriptionScheduledChangeSalesInformationResult")>]
    [<AllowNullLiteral>]
    type SubscriptionScheduledChangeSalesInformationResult() = 
        [<DataMember(Name="salesPersonId")>]
        member val SalesPersonId:String = null with get,set

        [<DataMember(Name="salesDepartmentId")>]
        member val SalesDepartmentId:String = null with get,set

    [<DataContract(Name="SubscriptionScheduledChangeResult")>]
    [<AllowNullLiteral>]
    type SubscriptionScheduledChangeResult() = 
        [<DataMember(Name="type")>]
        member val Type:TypeEnum = new TypeEnum() with get,set

        [<DataMember(Name="status", IsRequired=true)>]
        member val Status:StatusEnum = new StatusEnum() with get,set

        [<DataMember(Name="id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        [<DataMember(Name="package")>]
        member val Package:SubscriptionScheduledChangePackageResult = null with get,set

        [<DataMember(Name="tier")>]
        member val Tier:SubscriptionScheduledChangeTierResult = null with get,set

        [<DataMember(Name="plan")>]
        member val Plan:SubscriptionScheduledChangePlanResult = null with get,set

        [<DataMember(Name="scheduledDate", IsRequired=true)>]
        member val ScheduledDate:DateTime = new DateTime() with get,set

        [<DataMember(Name="salesInformation")>]
        member val SalesInformation:SubscriptionScheduledChangeSalesInformationResult = null with get,set

    [<ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)>]
    [<AllowNullLiteral>]
    type UpdateVossSubscriptionScheduledChange() = 
        ///<summary>
        ///The subscription id
        ///</summary>
        [<ApiMember(Description="The subscription id", IsRequired=true)>]
        member val SubscriptionId:Guid = new Guid() with get,set

        ///<summary>
        ///The subscription scheduled change id
        ///</summary>
        [<ApiMember(Description="The subscription scheduled change id", IsRequired=true)>]
        member val Id:Guid = new Guid() with get,set

        ///<summary>
        ///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
        ///</summary>
        [<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)>]
        member val Type:TypeEnum = new TypeEnum() with get,set

        ///<summary>
        ///Optional package version id; if omitted the current version of the subscription package is used
        ///</summary>
        [<ApiMember(Description="Optional package version id; if omitted the current version of the subscription package is used")>]
        member val VersionId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///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
        ///</summary>
        [<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")>]
        member val PackageId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///The id of a tier which will be active after the scheduled change is executed; can be omitted if PlanId is provided instead
        ///</summary>
        [<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")>]
        member val TierId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///The id of a plan which will be active after the scheduled change is executed; can be omitted if TierId is provided instead
        ///</summary>
        [<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")>]
        member val PlanId:Nullable<Guid> = new Nullable<Guid>() with get,set

        ///<summary>
        ///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
        ///</summary>
        [<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")>]
        member val PeriodIterationCount:Nullable<Int32> = new Nullable<Int32>() with get,set

F# UpdateVossSubscriptionScheduledChange DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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/json
Content-Type: application/json
Content-Length: length

{"Type":"AtSubscriptionBillingPeriodEnd","VersionId":"00000000-0000-0000-0000-000000000000","PackageId":"00000000-0000-0000-0000-000000000000","TierId":"00000000-0000-0000-0000-000000000000","PlanId":"00000000-0000-0000-0000-000000000000","PeriodIterationCount":0}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"type":"AtSubscriptionBillingPeriodEnd","status":"Pending"}