GET | /licenses/information/ | Get whats included in each license | This service is used to get to summare of information about whats included in each license. |
---|
import Foundation
import ServiceStack
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
public class LicenseInformationQuery : QueryDb2<LicenseInformation, LicenseTypeQueryResponse>
{
/**
* If you want to include the connected license prices
*/
// @ApiMember(DataType="boolean", Description="If you want to include the connected license prices", ParameterType="query")
public var includeLicensePrices:Bool
public var responseStatus:ResponseStatus
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case includeLicensePrices
case responseStatus
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
includeLicensePrices = try container.decodeIfPresent(Bool.self, forKey: .includeLicensePrices)
responseStatus = try container.decodeIfPresent(ResponseStatus.self, forKey: .responseStatus)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if includeLicensePrices != nil { try container.encode(includeLicensePrices, forKey: .includeLicensePrices) }
if responseStatus != nil { try container.encode(responseStatus, forKey: .responseStatus) }
}
}
public class LicenseInformation : BaseModel
{
// @Ignore()
public var prices:IList<LicensePrice>
public var id:Int
public var licenseInformationId:Int
// @Required()
public var name:String?
// @Required()
public var Description:String?
public var url:String
// @Required()
public var freeEdition:Bool?
// @Required()
public var startEdition:Bool?
// @Required()
public var proEdition:Bool?
public var freeEditionValue:String
public var startEditionValue:String
public var proEditionValue:String
public var platinumEdition:Bool?
public var platinumEditionValue:String
public var modifiedDate:Date?
public var smartEdition:Bool?
public var enterpriseEdition:Bool?
public var smartEditionValue:String
public var enterpriseEditionValue:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case prices
case id
case licenseInformationId
case name
case Description
case url
case freeEdition
case startEdition
case proEdition
case freeEditionValue
case startEditionValue
case proEditionValue
case platinumEdition
case platinumEditionValue
case modifiedDate
case smartEdition
case enterpriseEdition
case smartEditionValue
case enterpriseEditionValue
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
prices = try container.decodeIfPresent(IList<LicensePrice>.self, forKey: .prices)
id = try container.decodeIfPresent(Int.self, forKey: .id)
licenseInformationId = try container.decodeIfPresent(Int.self, forKey: .licenseInformationId)
name = try container.decodeIfPresent(String.self, forKey: .name)
Description = try container.decodeIfPresent(String.self, forKey: .Description)
url = try container.decodeIfPresent(String.self, forKey: .url)
freeEdition = try container.decodeIfPresent(Bool.self, forKey: .freeEdition)
startEdition = try container.decodeIfPresent(Bool.self, forKey: .startEdition)
proEdition = try container.decodeIfPresent(Bool.self, forKey: .proEdition)
freeEditionValue = try container.decodeIfPresent(String.self, forKey: .freeEditionValue)
startEditionValue = try container.decodeIfPresent(String.self, forKey: .startEditionValue)
proEditionValue = try container.decodeIfPresent(String.self, forKey: .proEditionValue)
platinumEdition = try container.decodeIfPresent(Bool.self, forKey: .platinumEdition)
platinumEditionValue = try container.decodeIfPresent(String.self, forKey: .platinumEditionValue)
modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate)
smartEdition = try container.decodeIfPresent(Bool.self, forKey: .smartEdition)
enterpriseEdition = try container.decodeIfPresent(Bool.self, forKey: .enterpriseEdition)
smartEditionValue = try container.decodeIfPresent(String.self, forKey: .smartEditionValue)
enterpriseEditionValue = try container.decodeIfPresent(String.self, forKey: .enterpriseEditionValue)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if prices != nil { try container.encode(prices, forKey: .prices) }
if id != nil { try container.encode(id, forKey: .id) }
if licenseInformationId != nil { try container.encode(licenseInformationId, forKey: .licenseInformationId) }
if name != nil { try container.encode(name, forKey: .name) }
if Description != nil { try container.encode(Description, forKey: .Description) }
if url != nil { try container.encode(url, forKey: .url) }
if freeEdition != nil { try container.encode(freeEdition, forKey: .freeEdition) }
if startEdition != nil { try container.encode(startEdition, forKey: .startEdition) }
if proEdition != nil { try container.encode(proEdition, forKey: .proEdition) }
if freeEditionValue != nil { try container.encode(freeEditionValue, forKey: .freeEditionValue) }
if startEditionValue != nil { try container.encode(startEditionValue, forKey: .startEditionValue) }
if proEditionValue != nil { try container.encode(proEditionValue, forKey: .proEditionValue) }
if platinumEdition != nil { try container.encode(platinumEdition, forKey: .platinumEdition) }
if platinumEditionValue != nil { try container.encode(platinumEditionValue, forKey: .platinumEditionValue) }
if modifiedDate != nil { try container.encode(modifiedDate, forKey: .modifiedDate) }
if smartEdition != nil { try container.encode(smartEdition, forKey: .smartEdition) }
if enterpriseEdition != nil { try container.encode(enterpriseEdition, forKey: .enterpriseEdition) }
if smartEditionValue != nil { try container.encode(smartEditionValue, forKey: .smartEditionValue) }
if enterpriseEditionValue != nil { try container.encode(enterpriseEditionValue, forKey: .enterpriseEditionValue) }
}
}
public class BaseModel : Codable
{
required public init(){}
}
public class LicensePrice : BaseModel
{
// @Ignore()
public var country:Country
// @Ignore()
public var monthlyPayment:Bool
// @Required()
public var licenseTypeId:Int?
// @Required()
public var countryId:String?
// @Required()
public var price:Int?
public var modifiedDate:Date?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case country
case monthlyPayment
case licenseTypeId
case countryId
case price
case modifiedDate
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
country = try container.decodeIfPresent(Country.self, forKey: .country)
monthlyPayment = try container.decodeIfPresent(Bool.self, forKey: .monthlyPayment)
licenseTypeId = try container.decodeIfPresent(Int.self, forKey: .licenseTypeId)
countryId = try container.decodeIfPresent(String.self, forKey: .countryId)
price = try container.decodeIfPresent(Int.self, forKey: .price)
modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if country != nil { try container.encode(country, forKey: .country) }
if monthlyPayment != nil { try container.encode(monthlyPayment, forKey: .monthlyPayment) }
if licenseTypeId != nil { try container.encode(licenseTypeId, forKey: .licenseTypeId) }
if countryId != nil { try container.encode(countryId, forKey: .countryId) }
if price != nil { try container.encode(price, forKey: .price) }
if modifiedDate != nil { try container.encode(modifiedDate, forKey: .modifiedDate) }
}
}
public class Country : BaseModel
{
// @References(typeof(Currency))
public var currencyId:String
public var currencyInfo:Currency
// @Required()
public var name:String?
public var culture:String
public var timeZone:String
public var modifiedDate:Date?
// @Required()
public var id:String?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case currencyId
case currencyInfo
case name
case culture
case timeZone
case modifiedDate
case id
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
currencyId = try container.decodeIfPresent(String.self, forKey: .currencyId)
currencyInfo = try container.decodeIfPresent(Currency.self, forKey: .currencyInfo)
name = try container.decodeIfPresent(String.self, forKey: .name)
culture = try container.decodeIfPresent(String.self, forKey: .culture)
timeZone = try container.decodeIfPresent(String.self, forKey: .timeZone)
modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate)
id = try container.decodeIfPresent(String.self, forKey: .id)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if currencyId != nil { try container.encode(currencyId, forKey: .currencyId) }
if currencyInfo != nil { try container.encode(currencyInfo, forKey: .currencyInfo) }
if name != nil { try container.encode(name, forKey: .name) }
if culture != nil { try container.encode(culture, forKey: .culture) }
if timeZone != nil { try container.encode(timeZone, forKey: .timeZone) }
if modifiedDate != nil { try container.encode(modifiedDate, forKey: .modifiedDate) }
if id != nil { try container.encode(id, forKey: .id) }
}
}
public class Currency : BaseModel
{
// @Required()
public var name:String?
// @Required()
public var currencySign:String?
// @Required()
public var active:Bool?
public var modifiedDate:Date?
// @Required()
public var id:String?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case name
case currencySign
case active
case modifiedDate
case id
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
name = try container.decodeIfPresent(String.self, forKey: .name)
currencySign = try container.decodeIfPresent(String.self, forKey: .currencySign)
active = try container.decodeIfPresent(Bool.self, forKey: .active)
modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate)
id = try container.decodeIfPresent(String.self, forKey: .id)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if name != nil { try container.encode(name, forKey: .name) }
if currencySign != nil { try container.encode(currencySign, forKey: .currencySign) }
if active != nil { try container.encode(active, forKey: .active) }
if modifiedDate != nil { try container.encode(modifiedDate, forKey: .modifiedDate) }
if id != nil { try container.encode(id, forKey: .id) }
}
}
public class LicenseTypeQueryResponse : Codable
{
/**
* The license type id
*/
// @ApiMember(Description="The license type id")
public var id:Int
/**
* The license type name
*/
// @ApiMember(Description="The license type name")
public var name:String
/**
* The license type description
*/
// @ApiMember(Description="The license type description")
public var Description:String
/**
* If the license type is not a standard license but instead an extra license option. An example would be sending new letter license.
*/
// @ApiMember(Description="If the license type is not a standard license but instead an extra license option. An example would be sending new letter license.")
public var isExtraLicenseOption:Bool
/**
* The period of notice for the license in days.
*/
// @ApiMember(Description="The period of notice for the license in days.")
public var periodOfNoticeDays:Int
/**
* The license items for the license type
*/
// @ApiMember(Description="The license items for the license type")
public var items:[LicenseItemsResponse] = []
/**
* The license prices in each country for the license type
*/
// @ApiMember(Description="The license prices in each country for the license type")
public var prices:[LicensePrice] = []
required public init(){}
}
public class LicenseItemsResponse : Codable
{
public var id:Int
public var name:String
public var allowedItems:Int
required public init(){}
}
public class AccessKeyTypeResponse : Codable
{
public var id:Int
public var keyType:String
public var Description:String
required public init(){}
}
Swift LicenseInformationQuery DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /licenses/information/ HTTP/1.1 Host: testapi.bokamera.se Accept: text/csv
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"Offset":0,"Total":0,"Results":[{"Id":0,"Name":"String","Description":"String","IsExtraLicenseOption":false,"PeriodOfNoticeDays":0,"Items":[{"Id":0,"Name":"String","AllowedItems":0}],"Prices":[{"Country":{"CurrencyId":"String","CurrencyInfo":{"Name":"String","CurrencySign":"String","Active":false,"ModifiedDate":"0001-01-01T00:00:00.0000000+00:00","Id":"String"},"Name":"String","Culture":"String","TimeZone":"String","ModifiedDate":"0001-01-01T00:00:00.0000000+00:00","Id":"String"},"MonthlyPayment":true,"LicenseTypeId":0,"CountryId":"String","Price":0,"ModifiedDate":"0001-01-01T00:00:00.0000000+00:00"}]}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}