Platform API

<back to all web services

RegisterDevice

Saves/Updates a Devices details and registers that device with an appliance.

Requires Authentication

export class DeviceTypeModel
{
    /** @description Guid representing the saved Device Type */
    // @ApiMember(DataType="Guid", Description="Guid representing the saved Device Type", Name="DeviceTypeId", ParameterType="query")
    public DeviceTypeId: string;

    /** @description Guid representing the saved Device Class */
    // @ApiMember(DataType="Guid", Description="Guid representing the saved Device Class", Name="DeviceClassId", ParameterType="query")
    public DeviceClassId: string;

    /** @description The Device Class Name */
    // @ApiMember(DataType="string", Description="The Device Class Name", Name="DeviceClassName", ParameterType="query")
    public DeviceClassName: string;

    /** @description The Device Brand. */
    // @ApiMember(DataType="string", Description="The Device Brand.", Name="Brand", ParameterType="query")
    public Brand: string;

    /** @description The Device Model Name. */
    // @ApiMember(DataType="string", Description="The Device Model Name.", IsRequired=true, Name="ModelName", ParameterType="query")
    public ModelName: string;

    /** @description The Device Form, e.g Phone | Tablet. */
    // @ApiMember(DataType="string", Description="The Device Form, e.g Phone | Tablet.", Name="FormFactor", ParameterType="query")
    public FormFactor: string;

    /** @description The Device Dimensions (Height x Width x Depth). */
    // @ApiMember(DataType="string", Description="The Device Dimensions (Height x Width x Depth).", Name="Dimensions", ParameterType="query")
    public Dimensions: string;

    /** @description The Device display resolution width in pixels. */
    // @ApiMember(DataType="int", Description="The Device display resolution width in pixels.", Name="DisplayResolutionWidthPixels", ParameterType="query")
    public DisplayResolutionWidthPixels?: number;

    /** @description The Device display resolution height in pixels. */
    // @ApiMember(DataType="int", Description="The Device display resolution height in pixels.", Name="DisplayResolutionHeightPixels", ParameterType="query")
    public DisplayResolutionHeightPixels?: number;

    /** @description The Device display width size in inches. */
    // @ApiMember(DataType="decimal", Description="The Device display width size in inches.", Name="DisplaySizeWidthInches", ParameterType="query")
    public DisplaySizeWidthInches?: number;

    /** @description The Device display height size in inches. */
    // @ApiMember(DataType="decimal", Description="The Device display height size in inches.", Name="DisplaySizeHeightInches", ParameterType="query")
    public DisplaySizeHeightInches?: number;

    public constructor(init?: Partial<DeviceTypeModel>) { (Object as any).assign(this, init); }
}

export class DeviceHistoryModel
{
    /** @description Guid representing the current Device History */
    // @ApiMember(DataType="Guid", Description="Guid representing the current Device History", Name="DeviceHistoryId", ParameterType="query")
    public DeviceHistoryId: string;

    /** @description Guid representing the current Device History Device Configuration record. */
    // @ApiMember(DataType="Guid", Description="Guid representing the current Device History Device Configuration record.", Name="PrimaryDeviceHistoryDeviceConfigurationId", ParameterType="query")
    public PrimaryDeviceHistoryDeviceConfigurationId: string;

    /** @description The Device name. */
    // @ApiMember(DataType="string", Description="The Device name.", Name="DeviceName", ParameterType="query")
    public DeviceName: string;

    /** @description The Device operating system. */
    // @ApiMember(DataType="string", Description="The Device operating system.", Name="OperatingSystem", ParameterType="query")
    public OperatingSystem: string;

    /** @description The Device operating system version. */
    // @ApiMember(DataType="string", Description="The Device operating system version.", Name="OperatingSystemVersion", ParameterType="query")
    public OperatingSystemVersion: string;

    /** @description The Device IP Address. */
    // @ApiMember(DataType="string", Description="The Device IP Address.", Name="IpAddress", ParameterType="query")
    public IpAddress: string;

    /** @description Any Notes about the device. */
    // @ApiMember(DataType="string", Description="Any Notes about the device.", Name="Notes", ParameterType="query")
    public Notes: string;

    /** @description Total memory size available (in bytes). */
    // @ApiMember(DataType="string", Description="Total memory size available (in bytes).", Name="TotalMemorySize", ParameterType="query")
    public TotalMemorySize?: number;

    /** @description The Network provider name. */
    // @ApiMember(DataType="string", Description="The Network provider name.", Name="CellularProviderName", ParameterType="query")
    public CellularProviderName: string;

    /** @description The Mobile Country Code the device is currently located in. */
    // @ApiMember(DataType="string", Description="The Mobile Country Code the device is currently located in.", Name="MobileCountryCode", ParameterType="query")
    public MobileCountryCode: string;

    /** @description The Mobile Network Code the device is currently using. */
    // @ApiMember(DataType="string", Description="The Mobile Network Code the device is currently using.", Name="MobileNetworkCode", ParameterType="query")
    public MobileNetworkCode: string;

    /** @description The Language Code Identifier that represents the language used on the device. */
    // @ApiMember(DataType="string", Description="The Language Code Identifier that represents the language used on the device.", Name="LanguageCodeIdentifier", ParameterType="query")
    public LanguageCodeIdentifier: string;

    /** @description The latitude the device was last located at. */
    // @ApiMember(DataType="double", Description="The latitude the device was last located at.", Name="Latitude", ParameterType="query")
    public Latitude: number;

    /** @description The longitude the device was last located at. */
    // @ApiMember(DataType="double", Description="The longitude the device was last located at.", Name="Longitude", ParameterType="query")
    public Longitude: number;

    public constructor(init?: Partial<DeviceHistoryModel>) { (Object as any).assign(this, init); }
}

export class DeviceModel
{
    /** @description Guid representing the saved Device */
    // @ApiMember(DataType="Guid", Description="Guid representing the saved Device", Name="DeviceId", ParameterType="query")
    public DeviceId: string;

    /** @description Details of the Type of Device */
    // @ApiMember(DataType="DeviceTypeModel", Description="Details of the Type of Device", Name="DeviceType", ParameterType="query")
    public DeviceType: DeviceTypeModel;

    /** @description Current saved settings of the Device */
    // @ApiMember(DataType="DeviceHistoryModel", Description="Current saved settings of the Device", Name="CurrentHistory", ParameterType="query")
    public CurrentHistory: DeviceHistoryModel;

    /** @description The Device Model Name. */
    // @ApiMember(DataType="string", Description="The Device Model Name.", IsRequired=true, Name="ModelName", ParameterType="query")
    public ModelName: string;

    /** @description The Device model number. */
    // @ApiMember(DataType="string", Description="The Device model number.", Name="ModelNumber", ParameterType="query")
    public ModelNumber: string;

    /** @description The Device serial number. */
    // @ApiMember(DataType="string", Description="The Device serial number.", Name="SerialNumber", ParameterType="query")
    public SerialNumber: string;

    /** @description The Device manufacturers number. */
    // @ApiMember(DataType="string", Description="The Device manufacturers number.", Name="ManufacturerDeviceNumber", ParameterType="query")
    public ManufacturerDeviceNumber: string;

    /** @description The Device MAC Address. */
    // @ApiMember(DataType="string", Description="The Device MAC Address.", Name="MacAddress", ParameterType="query")
    public MacAddress: string;

    /** @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. */
    // @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")
    public InstanceSeed: number;

    /** @description The current value of InstanceCounterLastValue that the device has stored */
    // @ApiMember(DataType="int", Description="The current value of InstanceCounterLastValue that the device has stored", IsRequired=true, Name="InstanceCounterLastValue", ParameterType="query")
    public InstanceCounterLastValue: number;

    /** @description ServiceStack ResponseStatus. */
    // @ApiMember(DataType="ResponseStatus", Description="ServiceStack ResponseStatus.", Name="ResponseStatus", ParameterType="query")
    public ResponseStatus: ResponseStatus;

    public constructor(init?: Partial<DeviceModel>) { (Object as any).assign(this, init); }
}

/** @description Saves/Updates a Devices details and registers that device with an appliance. */
// @Api(Description="Saves/Updates a Devices details and registers that device with an appliance.")
export class RegisterDevice
{
    /** @description Guid of the Appliance this Device is Registering under. */
    // @ApiMember(DataType="Guid", Description="Guid of the Appliance this Device is Registering under.", IsRequired=true, Name="ApplianceId", ParameterType="query")
    public ApplianceId: string;

    /** @description Guid of the Device. If empty the Device will be inserted, if provided the device will be updated. */
    // @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")
    public DeviceId: string;

    /** @description The Device manufacturers number. */
    // @ApiMember(DataType="string", Description="The Device manufacturers number.", Name="ManufacturerDeviceNumber", ParameterType="query")
    public ManufacturerDeviceNumber: string;

    /** @description The Device MAC Address. */
    // @ApiMember(DataType="string", Description="The Device MAC Address.", Name="MacAddress", ParameterType="query")
    public MacAddress: string;

    /** @description The Device Model Name. */
    // @ApiMember(DataType="string", Description="The Device Model Name.", IsRequired=true, Name="ModelName", ParameterType="query")
    public ModelName: string;

    /** @description The Device Form, e.g Phone | Tablet. */
    // @ApiMember(DataType="string", Description="The Device Form, e.g Phone | Tablet.", IsRequired=true, Name="FormFactor", ParameterType="query")
    public FormFactor: string;

    /** @description The Device Brand. */
    // @ApiMember(DataType="string", Description="The Device Brand.", Name="Brand", ParameterType="query")
    public Brand: string;

    /** @description The Device Dimensions (Height x Width x Depth). */
    // @ApiMember(DataType="string", Description="The Device Dimensions (Height x Width x Depth).", Name="Dimensions", ParameterType="query")
    public Dimensions: string;

    /** @description The Device display resolution width in pixels. */
    // @ApiMember(DataType="int", Description="The Device display resolution width in pixels.", Name="DisplayResolutionWidthPixels", ParameterType="query")
    public DisplayResolutionWidthPixels?: number;

    /** @description The Device display resolution height in pixels. */
    // @ApiMember(DataType="int", Description="The Device display resolution height in pixels.", Name="DisplayResolutionHeightPixels", ParameterType="query")
    public DisplayResolutionHeightPixels?: number;

    /** @description The Device display width size in inches. */
    // @ApiMember(DataType="decimal", Description="The Device display width size in inches.", Name="DisplaySizeWidthInches", ParameterType="query")
    public DisplaySizeWidthInches?: number;

    /** @description The Device display height size in inches. */
    // @ApiMember(DataType="decimal", Description="The Device display height size in inches.", Name="DisplaySizeHeightInches", ParameterType="query")
    public DisplaySizeHeightInches?: number;

    /** @description The Device operating system. */
    // @ApiMember(DataType="string", Description="The Device operating system.", Name="OperatingSystem", ParameterType="query")
    public OperatingSystem: string;

    /** @description The Device operating system version. */
    // @ApiMember(DataType="string", Description="The Device operating system version.", Name="OperatingSystemVersion", ParameterType="query")
    public OperatingSystemVersion: string;

    /** @description The Device IP Address. */
    // @ApiMember(DataType="string", Description="The Device IP Address.", Name="IpAddress", ParameterType="query")
    public IpAddress: string;

    /** @description Any Notes about the device. */
    // @ApiMember(DataType="string", Description="Any Notes about the device.", Name="Notes", ParameterType="query")
    public Notes: string;

    /** @description Total memory size available (in bytes). */
    // @ApiMember(DataType="string", Description="Total memory size available (in bytes).", Name="TotalMemorySize", ParameterType="query")
    public TotalMemorySize?: number;

    /** @description The Network provider name. */
    // @ApiMember(DataType="string", Description="The Network provider name.", Name="CellularProviderName", ParameterType="query")
    public CellularProviderName: string;

    /** @description The ISO Country Code of the country the device is currently located in. */
    // @ApiMember(DataType="string", Description="The ISO Country Code of the country the device is currently located in.", Name="ISOCountryCode", ParameterType="query")
    public ISOCountryCode: string;

    /** @description The Mobile Country Code the device is currently located in. */
    // @ApiMember(DataType="string", Description="The Mobile Country Code the device is currently located in.", Name="MobileCountryCode", ParameterType="query")
    public MobileCountryCode: string;

    /** @description The Mobile Network Code the device is currently using. */
    // @ApiMember(DataType="string", Description="The Mobile Network Code the device is currently using.", Name="MobileNetworkCode", ParameterType="query")
    public MobileNetworkCode: string;

    /** @description The Language Code Identifier that represents the language used on the device. */
    // @ApiMember(DataType="string", Description="The Language Code Identifier that represents the language used on the device.", Name="LanguageCodeIdentifier", ParameterType="query")
    public LanguageCodeIdentifier: string;

    /** @description The name of the Timezone the device was last used in. */
    // @ApiMember(DataType="string", Description="The name of the Timezone the device was last used in.", Name="LastKnownTimeZone", ParameterType="query")
    public LastKnownTimeZone: string;

    /** @description The UTC Offset of the Timezone the device was last used in.  Formatted as +-##:## */
    // @ApiMember(DataType="string", Description="The UTC Offset of the Timezone the device was last used in.  Formatted as +-##:##", Name="LastKnownTimeZoneOffset", ParameterType="query")
    public LastKnownTimeZoneOffset: string;

    /** @description The latitude the device was last located at. */
    // @ApiMember(DataType="double", Description="The latitude the device was last located at.", IsRequired=true, Name="Latitude", ParameterType="query")
    public Latitude: number;

    /** @description The longitude the device was last located at. */
    // @ApiMember(DataType="double", Description="The longitude the device was last located at.", IsRequired=true, Name="Longitude", ParameterType="query")
    public Longitude: number;

    /** @description The current value of InstanceSeed that the device has stored. */
    // @ApiMember(DataType="int", Description="The current value of InstanceSeed that the device has stored.", IsRequired=true, Name="InstanceSeed", ParameterType="query")
    public InstanceSeed: number;

    /** @description The current value of InstanceCounterLastValue that the device has stored */
    // @ApiMember(DataType="int", Description="The current value of InstanceCounterLastValue that the device has stored", IsRequired=true, Name="InstanceCounterLastValue", ParameterType="query")
    public InstanceCounterLastValue: number;

    public constructor(init?: Partial<RegisterDevice>) { (Object as any).assign(this, init); }
}

TypeScript RegisterDevice 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.

POST /jsv/reply/RegisterDevice HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ManufacturerDeviceNumber: String,
	MacAddress: String,
	ModelName: String,
	FormFactor: String,
	Brand: String,
	Dimensions: String,
	DisplayResolutionWidthPixels: 0,
	DisplayResolutionHeightPixels: 0,
	DisplaySizeWidthInches: 0,
	DisplaySizeHeightInches: 0,
	OperatingSystem: String,
	OperatingSystemVersion: String,
	IpAddress: String,
	Notes: String,
	TotalMemorySize: 0,
	CellularProviderName: String,
	ISOCountryCode: String,
	MobileCountryCode: String,
	MobileNetworkCode: String,
	LanguageCodeIdentifier: String,
	LastKnownTimeZone: String,
	LastKnownTimeZoneOffset: String,
	Latitude: 0,
	Longitude: 0,
	InstanceSeed: 0,
	InstanceCounterLastValue: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	DeviceType: 
	{
		DeviceClassName: String,
		Brand: String,
		ModelName: String,
		FormFactor: String,
		Dimensions: String,
		DisplayResolutionWidthPixels: 0,
		DisplayResolutionHeightPixels: 0,
		DisplaySizeWidthInches: 0,
		DisplaySizeHeightInches: 0
	},
	CurrentHistory: 
	{
		DeviceName: String,
		OperatingSystem: String,
		OperatingSystemVersion: String,
		IpAddress: String,
		Notes: String,
		TotalMemorySize: 0,
		CellularProviderName: String,
		MobileCountryCode: String,
		MobileNetworkCode: String,
		LanguageCodeIdentifier: String,
		Latitude: 0,
		Longitude: 0
	},
	ModelName: String,
	ModelNumber: String,
	SerialNumber: String,
	ManufacturerDeviceNumber: String,
	MacAddress: String,
	InstanceSeed: 0,
	InstanceCounterLastValue: 0,
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}