{
	"description": "This type represents a notification about policy change. It shall comply with the provisions  defined in table 5.6.2.7-1. This notification shall be triggered by the API producer when a policy has been changed as  the result of an operation of creating, transferring, deleting or modifying a policy.\n",
	"type": "object",
	"properties": {
		"id": {
			"description": "An identifier with the intention of being globally unique.\n",
			"type": "string"
		},
		"notificationType": {
			"description": "A string defined in IETF RFC 8259.\n",
			"type": "string"
		},
		"subscriptionId": {
			"description": "An identifier with the intention of being globally unique.\n",
			"type": "string"
		},
		"timeStamp": {
			"description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
			"type": "string",
			"format": "date-time"
		},
		"policyId": {
			"description": "An identifier with the intention of being globally unique.\n",
			"type": "string"
		},
		"affectedVersion": {
			"description": "A version.\n",
			"type": "string"
		},
		"previousSelectedVersion": {
			"description": "A version.\n",
			"type": "string"
		},
		"policyModifications": {
			"description": "This type represents the parameters for modifying a policy. It shall comply with the provisions defined in table 5.6.2.4-1\n",
			"type": "object",
			"properties": {
				"activationStatus": {
					"description": "The enumeration ActivationStatus shall comply with the provisions defined in table 5.6.4.3-1. It indicates the activation status of a policy.\n",
					"type": "string",
					"enum": [
						"ACTIVATED",
						"DEACTIVATED"
					]
				},
				"selectedVersion": {
					"description": "A version.\n",
					"type": "string"
				},
				"addAssociations": {
					"description": "Identifiers of entities to be added to the “associations” attribute in the “Policy” data structure which represents the policy. The API producer shall ignore the identifiers that already exist in the \"associations\" attribute in the “Policy” data structure. Shall be absent when the association feature is not applicable for the PF.\n",
					"type": "array",
					"items": {
						"description": "An identifier with the intention of being globally unique.\n",
						"type": "string"
					}
				},
				"removeAssociations": {
					"description": "Identifiers of entities to be removed from the “associations” attribute in the “Policy” data structure which represents the policy. The API producer shall ignore the identifiers that do not exist in the \"associations\" attribute in the “Policy” data structure. Shall be absent when the association feature is not applicable for the PF.\n",
					"type": "array",
					"items": {
						"description": "An identifier with the intention of being globally unique.\n",
						"type": "string"
					}
				},
				"removeAllAssociations": {
					"description": "Shall be set to TRUE if the policy is no longer associated to any specific entities managed by the PF. Shall be absent when the association feature is not applicable for the PF. If \"removeAllAssociations\" is set to TRUE, neither \"addAssociations\" nor “removeAssociations” attributes shall be present. Once all associations have been removed, how the PF determines the scope of applicability of the policy is outside the scope of the present document.\n",
					"type": "boolean"
				}
			}
		},
		"changeType": {
			"description": "The enumeration PolicyOperationType shall comply with the provisions defined in table 5.6.4.4-1.  It indicates the type of the policy change. Permitted values: * CREATE_POLICY:\tThe policy is created. * TRANSFER_POLICY:\tThe policy is transferred. * DELETE_POLICY:\tThe policy is deleted. * MODIFY_POLICY:\tThe policy is modified.\n",
			"type": "string",
			"enum": [
				"CREATE_POLICY",
				"TRANSFER_POLICY",
				"DELETE_POLICY",
				"MODIFY_POLICY"
			]
		},
		"_links": {
			"description": "Links to resources related to this notification.\n",
			"type": "object",
			"properties": {
				"subscription": {
					"description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
					"type": "object",
					"required": [
						"href"
					],
					"properties": {
						"href": {
							"description": "String formatted according to IETF RFC 3986.\n",
							"type": "string"
						}
					}
				},
				"objectInstance": {
					"description": "This type represents a link to a resource in a notification, using an absolute or relative URI.\n",
					"type": "object",
					"required": [
						"href"
					],
					"properties": {
						"href": {
							"description": "String formatted according to IETF RFC 3986.\n",
							"type": "string"
						}
					}
				}
			},
			"required": [
				"subscription"
			]
		}
	},
	"required": [
		"id",
		"notificationType",
		"subscriptionId",
		"timeStamp",
		"policyId",
		"changeType",
		"_links"
	]
}