namespace Eros.Subtle.Canvara.WebAPIModel.ServiceModel
open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<AllowNullLiteral>]
type DeviceTypeModel() =
///<summary>
///Guid representing the saved Device Type
///</summary>
[<ApiMember(DataType="Guid", Description="Guid representing the saved Device Type", Name="DeviceTypeId", ParameterType="query")>]
member val DeviceTypeId:Guid = new Guid() with get,set
///<summary>
///Guid representing the saved Device Class
///</summary>
[<ApiMember(DataType="Guid", Description="Guid representing the saved Device Class", Name="DeviceClassId", ParameterType="query")>]
member val DeviceClassId:Guid = new Guid() with get,set
///<summary>
///The Device Class Name
///</summary>
[<ApiMember(DataType="string", Description="The Device Class Name", Name="DeviceClassName", ParameterType="query")>]
member val DeviceClassName:String = null with get,set
///<summary>
///The Device Brand.
///</summary>
[<ApiMember(DataType="string", Description="The Device Brand.", Name="Brand", ParameterType="query")>]
member val Brand:String = null with get,set
///<summary>
///The Device Model Name.
///</summary>
[<ApiMember(DataType="string", Description="The Device Model Name.", IsRequired=true, Name="ModelName", ParameterType="query")>]
member val ModelName:String = null with get,set
///<summary>
///The Device Form, e.g Phone | Tablet.
///</summary>
[<ApiMember(DataType="string", Description="The Device Form, e.g Phone | Tablet.", Name="FormFactor", ParameterType="query")>]
member val FormFactor:String = null with get,set
///<summary>
///The Device Dimensions (Height x Width x Depth).
///</summary>
[<ApiMember(DataType="string", Description="The Device Dimensions (Height x Width x Depth).", Name="Dimensions", ParameterType="query")>]
member val Dimensions:String = null with get,set
///<summary>
///The Device display resolution width in pixels.
///</summary>
[<ApiMember(DataType="int", Description="The Device display resolution width in pixels.", Name="DisplayResolutionWidthPixels", ParameterType="query")>]
member val DisplayResolutionWidthPixels:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The Device display resolution height in pixels.
///</summary>
[<ApiMember(DataType="int", Description="The Device display resolution height in pixels.", Name="DisplayResolutionHeightPixels", ParameterType="query")>]
member val DisplayResolutionHeightPixels:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The Device display width size in inches.
///</summary>
[<ApiMember(DataType="decimal", Description="The Device display width size in inches.", Name="DisplaySizeWidthInches", ParameterType="query")>]
member val DisplaySizeWidthInches:Nullable<Decimal> = new Nullable<Decimal>() with get,set
///<summary>
///The Device display height size in inches.
///</summary>
[<ApiMember(DataType="decimal", Description="The Device display height size in inches.", Name="DisplaySizeHeightInches", ParameterType="query")>]
member val DisplaySizeHeightInches:Nullable<Decimal> = new Nullable<Decimal>() with get,set
[<AllowNullLiteral>]
type DeviceHistoryModel() =
///<summary>
///Guid representing the current Device History
///</summary>
[<ApiMember(DataType="Guid", Description="Guid representing the current Device History", Name="DeviceHistoryId", ParameterType="query")>]
member val DeviceHistoryId:Guid = new Guid() with get,set
///<summary>
///Guid representing the current Device History Device Configuration record.
///</summary>
[<ApiMember(DataType="Guid", Description="Guid representing the current Device History Device Configuration record.", Name="PrimaryDeviceHistoryDeviceConfigurationId", ParameterType="query")>]
member val PrimaryDeviceHistoryDeviceConfigurationId:Guid = new Guid() with get,set
///<summary>
///The Device name.
///</summary>
[<ApiMember(DataType="string", Description="The Device name.", Name="DeviceName", ParameterType="query")>]
member val DeviceName:String = null with get,set
///<summary>
///The Device operating system.
///</summary>
[<ApiMember(DataType="string", Description="The Device operating system.", Name="OperatingSystem", ParameterType="query")>]
member val OperatingSystem:String = null with get,set
///<summary>
///The Device operating system version.
///</summary>
[<ApiMember(DataType="string", Description="The Device operating system version.", Name="OperatingSystemVersion", ParameterType="query")>]
member val OperatingSystemVersion:String = null with get,set
///<summary>
///The Device IP Address.
///</summary>
[<ApiMember(DataType="string", Description="The Device IP Address.", Name="IpAddress", ParameterType="query")>]
member val IpAddress:String = null with get,set
///<summary>
///Any Notes about the device.
///</summary>
[<ApiMember(DataType="string", Description="Any Notes about the device.", Name="Notes", ParameterType="query")>]
member val Notes:String = null with get,set
///<summary>
///Total memory size available (in bytes).
///</summary>
[<ApiMember(DataType="string", Description="Total memory size available (in bytes).", Name="TotalMemorySize", ParameterType="query")>]
member val TotalMemorySize:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The Network provider name.
///</summary>
[<ApiMember(DataType="string", Description="The Network provider name.", Name="CellularProviderName", ParameterType="query")>]
member val CellularProviderName:String = null with get,set
///<summary>
///The Mobile Country Code the device is currently located in.
///</summary>
[<ApiMember(DataType="string", Description="The Mobile Country Code the device is currently located in.", Name="MobileCountryCode", ParameterType="query")>]
member val MobileCountryCode:String = null with get,set
///<summary>
///The Mobile Network Code the device is currently using.
///</summary>
[<ApiMember(DataType="string", Description="The Mobile Network Code the device is currently using.", Name="MobileNetworkCode", ParameterType="query")>]
member val MobileNetworkCode:String = null with get,set
///<summary>
///The Language Code Identifier that represents the language used on the device.
///</summary>
[<ApiMember(DataType="string", Description="The Language Code Identifier that represents the language used on the device.", Name="LanguageCodeIdentifier", ParameterType="query")>]
member val LanguageCodeIdentifier:String = null with get,set
///<summary>
///The latitude the device was last located at.
///</summary>
[<ApiMember(DataType="double", Description="The latitude the device was last located at.", Name="Latitude", ParameterType="query")>]
member val Latitude:Double = new Double() with get,set
///<summary>
///The longitude the device was last located at.
///</summary>
[<ApiMember(DataType="double", Description="The longitude the device was last located at.", Name="Longitude", ParameterType="query")>]
member val Longitude:Double = new Double() with get,set
[<AllowNullLiteral>]
type DeviceModel() =
///<summary>
///Guid representing the saved Device
///</summary>
[<ApiMember(DataType="Guid", Description="Guid representing the saved Device", Name="DeviceId", ParameterType="query")>]
member val DeviceId:Guid = new Guid() with get,set
///<summary>
///Details of the Type of Device
///</summary>
[<ApiMember(DataType="DeviceTypeModel", Description="Details of the Type of Device", Name="DeviceType", ParameterType="query")>]
member val DeviceType:DeviceTypeModel = null with get,set
///<summary>
///Current saved settings of the Device
///</summary>
[<ApiMember(DataType="DeviceHistoryModel", Description="Current saved settings of the Device", Name="CurrentHistory", ParameterType="query")>]
member val CurrentHistory:DeviceHistoryModel = null with get,set
///<summary>
///The Device Model Name.
///</summary>
[<ApiMember(DataType="string", Description="The Device Model Name.", IsRequired=true, Name="ModelName", ParameterType="query")>]
member val ModelName:String = null with get,set
///<summary>
///The Device model number.
///</summary>
[<ApiMember(DataType="string", Description="The Device model number.", Name="ModelNumber", ParameterType="query")>]
member val ModelNumber:String = null with get,set
///<summary>
///The Device serial number.
///</summary>
[<ApiMember(DataType="string", Description="The Device serial number.", Name="SerialNumber", ParameterType="query")>]
member val SerialNumber:String = null with get,set
///<summary>
///The Device manufacturers number.
///</summary>
[<ApiMember(DataType="string", Description="The Device manufacturers number.", Name="ManufacturerDeviceNumber", ParameterType="query")>]
member val ManufacturerDeviceNumber:String = null with get,set
///<summary>
///The Device MAC Address.
///</summary>
[<ApiMember(DataType="string", Description="The Device MAC Address.", Name="MacAddress", ParameterType="query")>]
member val MacAddress:String = null with get,set
///<summary>
///The current value of InstanceSeed that the device has stored. If InstanceCounterLastValue has gone over 99999, this will contain a new seed value for the device.
///</summary>
[<ApiMember(DataType="int", Description="The current value of InstanceSeed that the device has stored. If InstanceCounterLastValue has gone over 99999, this will contain a new seed value for the device.", IsRequired=true, Name="InstanceSeed", ParameterType="query")>]
member val InstanceSeed:Int32 = new Int32() with get,set
///<summary>
///The current value of InstanceCounterLastValue that the device has stored
///</summary>
[<ApiMember(DataType="int", Description="The current value of InstanceCounterLastValue that the device has stored", IsRequired=true, Name="InstanceCounterLastValue", ParameterType="query")>]
member val InstanceCounterLastValue:Int32 = new Int32() with get,set
///<summary>
///ServiceStack ResponseStatus.
///</summary>
[<ApiMember(DataType="ResponseStatus", Description="ServiceStack ResponseStatus.", Name="ResponseStatus", ParameterType="query")>]
member val ResponseStatus:ResponseStatus = null with get,set
///<summary>
///Saves/Updates a Devices details and registers that device with an appliance.
///</summary>
[<Api(Description="Saves/Updates a Devices details and registers that device with an appliance.")>]
[<AllowNullLiteral>]
type RegisterDevice() =
///<summary>
///Guid of the Appliance this Device is Registering under.
///</summary>
[<ApiMember(DataType="Guid", Description="Guid of the Appliance this Device is Registering under.", IsRequired=true, Name="ApplianceId", ParameterType="query")>]
member val ApplianceId:Guid = new Guid() with get,set
///<summary>
///Guid of the Device. If empty the Device will be inserted, if provided the device will be updated.
///</summary>
[<ApiMember(DataType="Guid", Description="Guid of the Device. If empty the Device will be inserted, if provided the device will be updated.", IsRequired=true, Name="DeviceId", ParameterType="query")>]
member val DeviceId:Guid = new Guid() with get,set
///<summary>
///The Device manufacturers number.
///</summary>
[<ApiMember(DataType="string", Description="The Device manufacturers number.", Name="ManufacturerDeviceNumber", ParameterType="query")>]
member val ManufacturerDeviceNumber:String = null with get,set
///<summary>
///The Device MAC Address.
///</summary>
[<ApiMember(DataType="string", Description="The Device MAC Address.", Name="MacAddress", ParameterType="query")>]
member val MacAddress:String = null with get,set
///<summary>
///The Device Model Name.
///</summary>
[<ApiMember(DataType="string", Description="The Device Model Name.", IsRequired=true, Name="ModelName", ParameterType="query")>]
member val ModelName:String = null with get,set
///<summary>
///The Device Form, e.g Phone | Tablet.
///</summary>
[<ApiMember(DataType="string", Description="The Device Form, e.g Phone | Tablet.", IsRequired=true, Name="FormFactor", ParameterType="query")>]
member val FormFactor:String = null with get,set
///<summary>
///The Device Brand.
///</summary>
[<ApiMember(DataType="string", Description="The Device Brand.", Name="Brand", ParameterType="query")>]
member val Brand:String = null with get,set
///<summary>
///The Device Dimensions (Height x Width x Depth).
///</summary>
[<ApiMember(DataType="string", Description="The Device Dimensions (Height x Width x Depth).", Name="Dimensions", ParameterType="query")>]
member val Dimensions:String = null with get,set
///<summary>
///The Device display resolution width in pixels.
///</summary>
[<ApiMember(DataType="int", Description="The Device display resolution width in pixels.", Name="DisplayResolutionWidthPixels", ParameterType="query")>]
member val DisplayResolutionWidthPixels:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The Device display resolution height in pixels.
///</summary>
[<ApiMember(DataType="int", Description="The Device display resolution height in pixels.", Name="DisplayResolutionHeightPixels", ParameterType="query")>]
member val DisplayResolutionHeightPixels:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The Device display width size in inches.
///</summary>
[<ApiMember(DataType="decimal", Description="The Device display width size in inches.", Name="DisplaySizeWidthInches", ParameterType="query")>]
member val DisplaySizeWidthInches:Nullable<Decimal> = new Nullable<Decimal>() with get,set
///<summary>
///The Device display height size in inches.
///</summary>
[<ApiMember(DataType="decimal", Description="The Device display height size in inches.", Name="DisplaySizeHeightInches", ParameterType="query")>]
member val DisplaySizeHeightInches:Nullable<Decimal> = new Nullable<Decimal>() with get,set
///<summary>
///The Device operating system.
///</summary>
[<ApiMember(DataType="string", Description="The Device operating system.", Name="OperatingSystem", ParameterType="query")>]
member val OperatingSystem:String = null with get,set
///<summary>
///The Device operating system version.
///</summary>
[<ApiMember(DataType="string", Description="The Device operating system version.", Name="OperatingSystemVersion", ParameterType="query")>]
member val OperatingSystemVersion:String = null with get,set
///<summary>
///The Device IP Address.
///</summary>
[<ApiMember(DataType="string", Description="The Device IP Address.", Name="IpAddress", ParameterType="query")>]
member val IpAddress:String = null with get,set
///<summary>
///Any Notes about the device.
///</summary>
[<ApiMember(DataType="string", Description="Any Notes about the device.", Name="Notes", ParameterType="query")>]
member val Notes:String = null with get,set
///<summary>
///Total memory size available (in bytes).
///</summary>
[<ApiMember(DataType="string", Description="Total memory size available (in bytes).", Name="TotalMemorySize", ParameterType="query")>]
member val TotalMemorySize:Nullable<Int32> = new Nullable<Int32>() with get,set
///<summary>
///The Network provider name.
///</summary>
[<ApiMember(DataType="string", Description="The Network provider name.", Name="CellularProviderName", ParameterType="query")>]
member val CellularProviderName:String = null with get,set
///<summary>
///The ISO Country Code of the country the device is currently located in.
///</summary>
[<ApiMember(DataType="string", Description="The ISO Country Code of the country the device is currently located in.", Name="ISOCountryCode", ParameterType="query")>]
member val ISOCountryCode:String = null with get,set
///<summary>
///The Mobile Country Code the device is currently located in.
///</summary>
[<ApiMember(DataType="string", Description="The Mobile Country Code the device is currently located in.", Name="MobileCountryCode", ParameterType="query")>]
member val MobileCountryCode:String = null with get,set
///<summary>
///The Mobile Network Code the device is currently using.
///</summary>
[<ApiMember(DataType="string", Description="The Mobile Network Code the device is currently using.", Name="MobileNetworkCode", ParameterType="query")>]
member val MobileNetworkCode:String = null with get,set
///<summary>
///The Language Code Identifier that represents the language used on the device.
///</summary>
[<ApiMember(DataType="string", Description="The Language Code Identifier that represents the language used on the device.", Name="LanguageCodeIdentifier", ParameterType="query")>]
member val LanguageCodeIdentifier:String = null with get,set
///<summary>
///The name of the Timezone the device was last used in.
///</summary>
[<ApiMember(DataType="string", Description="The name of the Timezone the device was last used in.", Name="LastKnownTimeZone", ParameterType="query")>]
member val LastKnownTimeZone:String = null with get,set
///<summary>
///The UTC Offset of the Timezone the device was last used in. Formatted as +-##:##
///</summary>
[<ApiMember(DataType="string", Description="The UTC Offset of the Timezone the device was last used in. Formatted as +-##:##", Name="LastKnownTimeZoneOffset", ParameterType="query")>]
member val LastKnownTimeZoneOffset:String = null with get,set
///<summary>
///The latitude the device was last located at.
///</summary>
[<ApiMember(DataType="double", Description="The latitude the device was last located at.", IsRequired=true, Name="Latitude", ParameterType="query")>]
member val Latitude:Double = new Double() with get,set
///<summary>
///The longitude the device was last located at.
///</summary>
[<ApiMember(DataType="double", Description="The longitude the device was last located at.", IsRequired=true, Name="Longitude", ParameterType="query")>]
member val Longitude:Double = new Double() with get,set
///<summary>
///The current value of InstanceSeed that the device has stored.
///</summary>
[<ApiMember(DataType="int", Description="The current value of InstanceSeed that the device has stored.", IsRequired=true, Name="InstanceSeed", ParameterType="query")>]
member val InstanceSeed:Int32 = new Int32() with get,set
///<summary>
///The current value of InstanceCounterLastValue that the device has stored
///</summary>
[<ApiMember(DataType="int", Description="The current value of InstanceCounterLastValue that the device has stored", IsRequired=true, Name="InstanceCounterLastValue", ParameterType="query")>]
member val InstanceCounterLastValue:Int32 = new Int32() with get,set
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /xml/reply/RegisterDevice HTTP/1.1
Host: pfapi.pstpf.com.au
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<RegisterDevice xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Eros.Subtle.Canvara.WebAPIModel.ServiceModel">
<ApplianceId>00000000-0000-0000-0000-000000000000</ApplianceId>
<Brand>String</Brand>
<CellularProviderName>String</CellularProviderName>
<DeviceId>00000000-0000-0000-0000-000000000000</DeviceId>
<Dimensions>String</Dimensions>
<DisplayResolutionHeightPixels>0</DisplayResolutionHeightPixels>
<DisplayResolutionWidthPixels>0</DisplayResolutionWidthPixels>
<DisplaySizeHeightInches>0</DisplaySizeHeightInches>
<DisplaySizeWidthInches>0</DisplaySizeWidthInches>
<FormFactor>String</FormFactor>
<ISOCountryCode>String</ISOCountryCode>
<InstanceCounterLastValue>0</InstanceCounterLastValue>
<InstanceSeed>0</InstanceSeed>
<IpAddress>String</IpAddress>
<LanguageCodeIdentifier>String</LanguageCodeIdentifier>
<LastKnownTimeZone>String</LastKnownTimeZone>
<LastKnownTimeZoneOffset>String</LastKnownTimeZoneOffset>
<Latitude>0</Latitude>
<Longitude>0</Longitude>
<MacAddress>String</MacAddress>
<ManufacturerDeviceNumber>String</ManufacturerDeviceNumber>
<MobileCountryCode>String</MobileCountryCode>
<MobileNetworkCode>String</MobileNetworkCode>
<ModelName>String</ModelName>
<Notes>String</Notes>
<OperatingSystem>String</OperatingSystem>
<OperatingSystemVersion>String</OperatingSystemVersion>
<TotalMemorySize>0</TotalMemorySize>
</RegisterDevice>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<DeviceModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Eros.Subtle.Canvara.WebAPIModel.ServiceModel">
<CurrentHistory>
<CellularProviderName>String</CellularProviderName>
<DeviceHistoryId>00000000-0000-0000-0000-000000000000</DeviceHistoryId>
<DeviceName>String</DeviceName>
<IpAddress>String</IpAddress>
<LanguageCodeIdentifier>String</LanguageCodeIdentifier>
<Latitude>0</Latitude>
<Longitude>0</Longitude>
<MobileCountryCode>String</MobileCountryCode>
<MobileNetworkCode>String</MobileNetworkCode>
<Notes>String</Notes>
<OperatingSystem>String</OperatingSystem>
<OperatingSystemVersion>String</OperatingSystemVersion>
<PrimaryDeviceHistoryDeviceConfigurationId>00000000-0000-0000-0000-000000000000</PrimaryDeviceHistoryDeviceConfigurationId>
<TotalMemorySize>0</TotalMemorySize>
</CurrentHistory>
<DeviceId>00000000-0000-0000-0000-000000000000</DeviceId>
<DeviceType>
<Brand>String</Brand>
<DeviceClassId>00000000-0000-0000-0000-000000000000</DeviceClassId>
<DeviceClassName>String</DeviceClassName>
<DeviceTypeId>00000000-0000-0000-0000-000000000000</DeviceTypeId>
<Dimensions>String</Dimensions>
<DisplayResolutionHeightPixels>0</DisplayResolutionHeightPixels>
<DisplayResolutionWidthPixels>0</DisplayResolutionWidthPixels>
<DisplaySizeHeightInches>0</DisplaySizeHeightInches>
<DisplaySizeWidthInches>0</DisplaySizeWidthInches>
<FormFactor>String</FormFactor>
<ModelName>String</ModelName>
</DeviceType>
<InstanceCounterLastValue>0</InstanceCounterLastValue>
<InstanceSeed>0</InstanceSeed>
<MacAddress>String</MacAddress>
<ManufacturerDeviceNumber>String</ManufacturerDeviceNumber>
<ModelName>String</ModelName>
<ModelNumber>String</ModelNumber>
<ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:Message>String</d2p1:Message>
<d2p1:StackTrace>String</d2p1:StackTrace>
<d2p1:Errors>
<d2p1:ResponseError>
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:FieldName>String</d2p1:FieldName>
<d2p1:Message>String</d2p1:Message>
<d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</d2p1:Meta>
</d2p1:ResponseError>
</d2p1:Errors>
<d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringstring>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>String</d3p1:Value>
</d3p1:KeyValueOfstringstring>
</d2p1:Meta>
</ResponseStatus>
<SerialNumber>String</SerialNumber>
</DeviceModel>