{
	"$schema" : "http://json-schema.org/draft-04/schema#",
	"type" : "object",
	"title" : "Installation",
	"additionalProperties" : false,
	"description" : "Notification Service V3 - Installation",
	"properties" : {
		"userId" : {
			"type" : "string",
			"description" : "User ID of the logged-in user",
			"minLength" : 20
		},

		"deviceToken" : {
			"type" : "string",
			"description" : "Device token (or identifier) to send push notification to",
			"minLength" : 10
		},

		"oldDeviceToken" : {
			"type" : "string",
			"description" : "Old device token, in case client app detects a refreshed token and wants to update the existing one.  Note that after successful execution, this token will be replaced with the value provided in device_token field.  If this token is invalid, empty or does not exist, the call to this API will always add/insert a new record in the dataStore",
			"minLength" : 10
		},

		"platform" : {
			"type" : "string",
			"description" : "Platform to send Push Notification.  values are android or ios"
		},
		
		"appIdentifier" : {
			"type" : "string",
			"description" : "A unique identifier for this client application. In iOS this is the Bundle Identifier"
		},
		
		"appName" : {
			"type" : "string",
			"description" : "The display name of the client application"
		},
		
		"appVersion" : {
			"type" : "string",
			"description" : "The version string of the client application"
		},

		"appVersionKey" : {
			"type" : "string",
			"description" : "A uniquely defined key for a specific app-binary.  This will enable to filter the device tokens based on this specific key",
			"minLength" : 8
		},
		
		"timezone" : {
			"type" : "string",
			"description" : "The current time zone where the target device is located."
		}

	},

	"required" : 
	[
		"userId",
		"deviceToken",
		"platform",
		"timezone"
	]

}