BokaMera.API.Host

<back to all web services

UpdateVossDiscountAgreements

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
PUT/voss/discountAgreementsPUT Discount agreements
import Foundation
import ServiceStack

// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
public class UpdateVossDiscountAgreements : Codable
{
    /**
    * Discount agreement data
    */
    // @ApiMember(Description="Discount agreement data", IsRequired=true)
    public var discountAgreementId:String

    /**
    * Discount agreement period data. Iteration count must be added
    */
    // @ApiMember(Description="Discount agreement period data. Iteration count must be added", IsRequired=true)
    public var discountPeriod:UpdateDiscountPeriodRequestDto

    /**
    * Discount agreement status. Published is default.
    */
    // @ApiMember(Description="Discount agreement status. Published is default.", IsRequired=true)
    public var discountAgreementStatus:DiscountAgreementStatusEnum

    public var name:String
    public var Description:String
    public var validFrom:Date
    public var validTo:Date?

    required public init(){}
}

// @DataContract(Name="UpdateDiscountPeriodRequestDto")
public class UpdateDiscountPeriodRequestDto : Codable
{
    // @DataMember(Name="periodKind", IsRequired=true)
    public var periodKind:PeriodKindEnum

    // @DataMember(Name="length")
    public var length:DiscountAgreementTimeLengthRequestDto

    // @DataMember(Name="periodIterationCount")
    public var periodIterationCount:Int?

    required public init(){}
}

public enum PeriodKindEnum : String, Codable
{
    case FixedTime
    case AlignedToBindingPeriod
    case AlignedToSubscriptionBillingPeriod
}

// @DataContract(Name="DiscountAgreementTimeLengthRequestDto")
public class DiscountAgreementTimeLengthRequestDto : Codable
{
    // @DataMember(Name="unit", IsRequired=true)
    public var unit:UnitEnum

    // @DataMember(Name="value", IsRequired=true)
    public var value:Int

    required public init(){}
}

public enum UnitEnum : String, Codable
{
    case Day
    case Month
    case Year
}

public enum DiscountAgreementStatusEnum : String, Codable
{
    case Draft
    case Staged
    case Published
    case Archived
    case Discarded
}


Swift UpdateVossDiscountAgreements DTOs

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

HTTP + JSV

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

PUT /voss/discountAgreements HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	DiscountAgreementStatus: Draft,
	Name: String,
	Description: String,
	ValidTo: "0001-01-01T00:00:00"
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	
}