{
	"type": "object",
	"properties": {
		"distanceNotificationSubscription": {
			"description": "A type containing data for distance subscription, with reference to other devices.",
			"properties": {
				"callbackReference": {
					"properties": {
						"callbackData": {
							"description": "Data the application can register with the server when subscribing to notifications, and that are passed back unchanged in each of the related notifications. These data can be used by the application in the processing of the notification, e.g. for correlation purposes.",
							"type": "string",
							"x-etsi-mec-cardinality": "0..1",
							"x-etsi-mec-origin-type": "string"
						},
						"notificationFormat": {
							"enum": [
								"XML",
								"JSON"
							],
							"type": "string"
						},
						"notifyURL": {
							"description": "Notify Callback URL",
							"type": "string",
							"x-etsi-mec-cardinality": "1",
							"x-etsi-mec-origin-type": "anyURI"
						}
					},
					"required": [
						"notifyURL"
					],
					"type": "object"
				},
				"checkImmediate": {
					"description": "Check location immediately after establishing notification.",
					"type": "boolean",
					"x-etsi-mec-cardinality": 1,
					"x-etsi-mec-origin-type": "boolean"
				},
				"clientCorrelator": {
					"description": "A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server.",
					"type": "string",
					"x-etsi-mec-cardinality": "0..1",
					"x-etsi-mec-origin-type": "string"
				},
				"count": {
					"description": "Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0.",
					"type": "integer",
					"x-etsi-mec-cardinality": "0..1",
					"x-etsi-mec-origin-type": "int"
				},
				"criteria": {
					"enum": [
						"AllWithinDistance",
						"AnyWithinDistance",
						"AllBeyondDistance",
						"AnyBeyondDistance"
					],
					"type": "string"
				},
				"distance": {
					"description": "Distance between devices that shall be monitored.",
					"format": "float",
					"type": "number",
					"x-etsi-mec-cardinality": 1,
					"x-etsi-mec-origin-type": "float"
				},
				"duration": {
					"description": "Period of time (in seconds) notifications are provided for. If set to 0 (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications.",
					"type": "integer",
					"x-etsi-mec-cardinality": "0..1",
					"x-etsi-mec-origin-type": "int"
				},
				"frequency": {
					"description": "Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications).",
					"type": "integer",
					"x-etsi-mec-cardinality": 1,
					"x-etsi-mec-origin-type": "int"
				},
				"link": {
					"description": "Link to other resources that are in relationship with the resource.",
					"items": {
						"description": "Link to other resources",
						"properties": {
							"href": {
								"description": "URI",
								"format": "anyURI",
								"type": "string"
							},
							"rel": {
								"description": "Describes the relationship between the URI and the resource.",
								"type": "string"
							}
						},
						"required": [
							"rel",
							"href"
						],
						"type": "object"
					},
					"type": "array",
					"x-etsi-mec-cardinality": "0..N",
					"x-etsi-mec-origin-type": "Link"
				},
				"monitoredAddress": {
					"description": "Contains addresses of devices to monitor (e.g., 'sip' URI, 'tel' URI, 'acr' URI)",
					"items": {
						"type": "string"
					},
					"type": "array",
					"x-etsi-mec-cardinality": "1..N",
					"x-etsi-mec-origin-type": "anyURI"
				},
				"referenceAddress": {
					"description": "Indicates address of each device that will be used as reference devices from which the distances towards monitored devices indicated in the Addresses will be monitored (e.g., 'sip' URI, 'tel' URI, 'acr' URI)",
					"items": {
						"type": "string"
					},
					"type": "array",
					"x-etsi-mec-cardinality": "0..N",
					"x-etsi-mec-origin-type": "anyURI"
				},
				"requester": {
					"description": "Identifies the entity that is requesting the information (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI)",
					"type": "string",
					"x-etsi-mec-cardinality": "0..1",
					"x-etsi-mec-origin-type": "anyURI"
				},
				"resourceURL": {
					"description": "Self referring URL",
					"type": "string",
					"x-etsi-mec-cardinality": "0..1",
					"x-etsi-mec-origin-type": "anyURI"
				},
				"trackingAccuracy": {
					"description": "Number of meters of acceptable error in tracking distance.",
					"format": "float",
					"type": "number",
					"x-etsi-mec-cardinality": 1,
					"x-etsi-mec-origin-type": "float"
				}
			},
			"required": [
				"callbackReference",
				"monitoredAddress",
				"distance",
				"trackingAccuracy",
				"criteria",
				"checkImmediate",
				"frequency"
			],
			"type": "object"
		}
	},
	"example": {
		"distanceNotificationSubscription": {
			"clientCorrelator": "0123",
			"callbackReference": {
				"callbackData": "1234",
				"notifyURL": "http://clientApp.example.com/location_notifications/123456"
			},
			"monitoredAddress": [
				"acr:10.0.0.1",
				"acr:10.0.0.2"
			],
			"checkImmediate": true,
			"criteria": "AllWithinDistance",
			"distance": 100,
			"frequency": 10,
			"referenceAddress": "acr:10.0.0.3",
			"trackingAccuracy": 10
		}
	}
}