{
	"$schema" : "http://json-schema.org/draft-04/schema#",
	"type" : "object",
	"title" : "PushRequest",
	"additionalProperties" : false,
	"description" : "Notification Service V3 - PushRequest",
	"properties" : {
		"context" : {
			"$ref" : "/resources/schema/services/v2/Context.json",
			"description" : "Service Request Context"
		},
		"pushId" : {
		    "type" : "string",
		    "description": "unique id for the push notification. required for update and delete."
		},
		"senderUserId" : {
			"type" : "string",
		    "description" : "sender's user id"
		},
		"pushDatas" : {
			"type" : "array",
			"items" : {
				"$ref" : "/resources/schema/notification/v3/PushData.json",
				"description" : "Each element of the array should be an instance of PushNotification"
			},

			"description" : "List of notification payloads that need to be delivered to recipient list",
			"minItems" : 1,
			"maxItems" : 50,
			"uniqueItems" : true
		},
		"isExpirable" : {
			"type" : "boolean",
			"description" : "This parameter defines if the notification has an expiry time.  If the value is set to true, expiryUtcTimestamp must be specified with valid value that should be sometime in future"
		},
		"expiryUtcTimestamp" : {
			"type" : "integer",
			"description" : "Optional timestamp when the notification message will expire.  If for any reason the message is not delivered by this timestamp, service will not deliver that message",
			"minimum" : 1443652078000
		},
		"isDelayed" : {
			"type" : "boolean",
			"description" : "This parameter defines if the notification dispatch should be delayed.  If the value is set to true, delayUtcTimestamp must be specified with valid value that should be sometime in future"
		},
		"delayUntilUtcTimestamp" : {
			"type" : "integer",
			"description" : "Optional timestamp before which the notification will not be dispatched (delayed delivery).  If isRepeating is true, do not set this value here, and set the start_utc_timestamp in the repeating_schedule parameter instead",
			"minimum" : 1443652078000
		},
		"isRepeating" : {
			"type" : "boolean",
			"description" : "This parameter defines if the notification dispatch should be repeated.  If the value is set to true, repeating_schedule must be specified with valid cron expression"
		},
		"schedule" : {
			"$ref" : "/resources/schema/notification/v3/Schedule.json",
			"description" : "Notification Schedule. This value should only be populated if 'isRepeating' is true"
		}
	},

	"required" : 
	[
		"pushId"
	]
}