{
	"type": "object",
	"required": [
		"notificationSubscriptionList"
	],
	"properties": {
		"notificationSubscriptionList": {
			"properties": {
				"circleNotificationSubscription": {
					"description": "Collection of CircleNotificationSubscription elements, see note 2.",
					"items": {
						"description": "A type containing data for notifications, when the area is defined as a circle.",
						"properties": {
							"address": {
								"description": "Address of terminals 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"
							},
							"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"
							},
							"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"
							},
							"enteringLeavingCriteria": {
								"enum": [
									"Entering",
									"Leaving"
								],
								"type": "string"
							},
							"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"
							},
							"latitude": {
								"description": "Latitude of center point.",
								"format": "float",
								"type": "number",
								"x-etsi-mec-cardinality": 1,
								"x-etsi-mec-origin-type": "float"
							},
							"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"
							},
							"longitude": {
								"description": "Longitude of center point.",
								"format": "float",
								"type": "number",
								"x-etsi-mec-cardinality": 1,
								"x-etsi-mec-origin-type": "float"
							},
							"radius": {
								"description": "Radius circle around center point in meters.",
								"format": "float",
								"type": "number",
								"x-etsi-mec-cardinality": 1,
								"x-etsi-mec-origin-type": "float"
							},
							"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",
							"address",
							"latitude",
							"longitude",
							"radius",
							"trackingAccuracy",
							"enteringLeavingCriteria",
							"checkImmediate",
							"frequency"
						],
						"type": "object"
					},
					"minItems": 0,
					"type": "array",
					"x-etsi-mec-cardinality": "0.. N",
					"x-etsi-mec-origin-type": "CircleNotificationSubscription"
				},
				"distanceNotificationSubscription": {
					"description": "Collection of DistanceNotificationSubscription elements, see note 2.",
					"items": {
						"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"
					},
					"minItems": 0,
					"type": "array",
					"x-etsi-mec-cardinality": "0.. N",
					"x-etsi-mec-origin-type": "DistanceNotificationSubscription"
				},
				"periodicNotificationSubscription": {
					"description": "Collection of PeriodicNotificationSubscription elements, see note 2.",
					"items": {
						"description": "A type containing data for periodic subscription.",
						"properties": {
							"address": {
								"description": "Address of terminals 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"
							},
							"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"
							},
							"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"
							},
							"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 (can also be considered minimum time between notifications) per subscription.",
								"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"
							},
							"requestedAccuracy": {
								"description": "Accuracy of the provided distance in meters.",
								"type": "integer",
								"x-etsi-mec-cardinality": 1,
								"x-etsi-mec-origin-type": "int"
							},
							"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"
							}
						},
						"required": [
							"callbackReference",
							"address",
							"requestedAccuracy",
							"frequency"
						],
						"type": "object"
					},
					"minItems": 0,
					"type": "array",
					"x-etsi-mec-cardinality": "0.. N",
					"x-etsi-mec-origin-type": "PeriodicNotificationSubscription"
				},
				"resourceURL": {
					"description": "Self-referring URL, see note 1.",
					"format": "uri",
					"type": "string",
					"x-etsi-mec-cardinality": "1",
					"x-etsi-mec-origin-type": "AnyURI"
				},
				"userTrackingSubscription": {
					"description": "Collection of UserTrackingSubscription elements, see note 1.",
					"items": {
						"description": "A type containing user tracking subscription.",
						"properties": {
							"address": {
								"description": "Address of user (e.g. \"sip\" URI, \"tel\" URI, \"acr\" URI) to monitor",
								"type": "string",
								"x-etsi-mec-cardinality": 1,
								"x-etsi-mec-origin-type": "anyURI"
							},
							"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"
							},
							"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"
							},
							"resourceURL": {
								"description": "Self referring URL",
								"type": "string",
								"x-etsi-mec-cardinality": "0..1",
								"x-etsi-mec-origin-type": "anyURI"
							},
							"userEventCriteria": {
								"description": "List of user event values to generate notifications for (these apply to address specified). If this element is missing, a notification is requested to be generated for any change in user event.",
								"items": {
									"enum": [
										"Entering",
										"Leaving",
										"Transferring"
									],
									"type": "string"
								},
								"type": "array",
								"x-etsi-mec-cardinality": "0..N",
								"x-etsi-mec-origin-type": "UserEventType"
							}
						},
						"required": [
							"callbackReference",
							"address"
						],
						"type": "object"
					},
					"minItems": 0,
					"type": "array",
					"x-etsi-mec-cardinality": "0.. N",
					"x-etsi-mec-origin-type": "UserTrackingSubscription"
				},
				"zonalTrafficSubscription": {
					"description": "Collection of ZonalTrafficSubscription elements, see note 1.",
					"items": {
						"description": "A type containing zonal traffic subscription",
						"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"
							},
							"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"
							},
							"duration": {
								"description": "Period (in seconds) of time 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. This element MAY be given by the client during resource creation in order to signal the desired lifetime of the subscription. The server MUST return in this element the   period of time for which the subscription will still be valid.",
								"type": "integer",
								"x-etsi-mec-cardinality": "0..1",
								"x-etsi-mec-origin-type": "unsignedInt"
							},
							"interestRealm": {
								"description": "Interest realm of access point (e.g. geographical area, a type of industry etc.).",
								"items": {
									"type": "string"
								},
								"type": "array",
								"x-etsi-mec-cardinality": "0..N",
								"x-etsi-mec-origin-type": "string"
							},
							"resourceURL": {
								"description": "Self referring URL",
								"type": "string",
								"x-etsi-mec-cardinality": "0..1",
								"x-etsi-mec-origin-type": "anyURI"
							},
							"userEventCriteria": {
								"description": "List of user event values to generate notifications for (these apply to zone identifier or all interest realms within zone identifier specified). If this element is missing, a notification is requested to be generated for any change in user event.",
								"items": {
									"enum": [
										"Entering",
										"Leaving",
										"Transferring"
									],
									"type": "string"
								},
								"type": "array",
								"x-etsi-mec-cardinality": "0..N",
								"x-etsi-mec-origin-type": "UserEventType"
							},
							"zoneId": {
								"description": "Identifier of zone",
								"type": "string",
								"x-etsi-mec-cardinality": 1,
								"x-etsi-mec-origin-type": "string"
							}
						},
						"required": [
							"callbackReference",
							"zoneId"
						],
						"type": "object"
					},
					"minItems": 0,
					"type": "array",
					"x-etsi-mec-cardinality": "0.. N",
					"x-etsi-mec-origin-type": "ZonalTrafficSubscription"
				},
				"zoneStatusSubscription": {
					"description": "Collection of ZoneStatusSubscription elements, see note 1.",
					"items": {
						"description": "A type containing zone status subscription.",
						"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"
							},
							"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"
							},
							"numberOfUsersAPThreshold": {
								"description": "Threshold number of users in an access point which if crossed shall cause a notification",
								"type": "integer",
								"x-etsi-mec-cardinality": "0..1",
								"x-etsi-mec-origin-type": "unsignedInt"
							},
							"numberOfUsersZoneThreshold": {
								"description": "Threshold number of users in a zone which if crossed shall cause a notification",
								"type": "integer",
								"x-etsi-mec-cardinality": "0..1",
								"x-etsi-mec-origin-type": "unsignedInt"
							},
							"operationStatus": {
								"description": "List of operation status values to generate notifications for (these apply to all access points within a zone).",
								"items": {
									"enum": [
										"Serviceable",
										"Unserviceable",
										"Unknown"
									],
									"type": "string"
								},
								"type": "array",
								"x-etsi-mec-cardinality": "0..N",
								"x-etsi-mec-origin-type": "OperationStatus"
							},
							"resourceURL": {
								"description": "Self referring URL",
								"type": "string",
								"x-etsi-mec-cardinality": "0..1",
								"x-etsi-mec-origin-type": "anyURI"
							},
							"zoneId": {
								"description": "Identifier of zone",
								"type": "string",
								"x-etsi-mec-cardinality": 1,
								"x-etsi-mec-origin-type": "string"
							}
						},
						"required": [
							"callbackReference",
							"zoneId"
						],
						"type": "object"
					},
					"minItems": 0,
					"type": "array",
					"x-etsi-mec-cardinality": "0.. N",
					"x-etsi-mec-origin-type": "ZoneStatusSubscription"
				}
			},
			"required": [
				"resourceURL"
			],
			"type": "object",
			"x-etsi-notes": "NOTE 1:\tAs specified in [5], clause 5.2.2.8.\nNOTE 2: \tAs specified in [6], clause 5.2.2.7.",
			"x-etsi-ref": "6.3.3"
		}
	}
}