{
  "swagger": "2.0",
  "info": {
    "title": "Party Role Management",
    "description": "This is Swagger UI environment generated for the TMF Party Role Management specification",
    "version": "4.0"
  },
  "host": "serverRoot",
  "basePath": "/tmf-api/partyRoleManagement/v4/",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json;charset=utf-8"
  ],
  "produces": [
    "application/json;charset=utf-8"
  ],
  "tags": [
    {
      "name": "partyRole"
    },
    {
      "name": "notification listeners (client side)"
    },
    {
      "name": "events subscription"
    }
  ],
  "paths": {
    "/partyRole": {
      "get": {
        "operationId": "listPartyRole",
        "summary": "List or find PartyRole objects",
        "description": "This operation list or find PartyRole entities",
        "tags": [
          "partyRole"
        ],
        "parameters": [
          {
            "name": "fields",
            "description": "Comma-separated properties to be provided in response",
            "required": false,
            "in": "query",
            "type": "string"
          },
          {
            "name": "offset",
            "description": "Requested index for start of resources to be provided in response",
            "required": false,
            "in": "query",
            "type": "integer"
          },
          {
            "name": "limit",
            "description": "Requested number of resources to be provided in response",
            "required": false,
            "in": "query",
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "X-Result-Count": {
                "description": "Actual number of items returned in the response body",
                "type": "integer"
              },
              "X-Total-Count": {
                "description": "Total number of items matching criteria",
                "type": "integer"
              }
            },
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/PartyRole"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      },
      "post": {
        "operationId": "createPartyRole",
        "summary": "Creates a PartyRole",
        "description": "This operation creates a PartyRole entity.",
        "tags": [
          "partyRole"
        ],
        "parameters": [
          {
            "name": "partyRole",
            "description": "The PartyRole to be created",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PartyRole_Create"
            },
            "in": "body"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/PartyRole"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/partyRole/{id}": {
      "get": {
        "operationId": "retrievePartyRole",
        "summary": "Retrieves a PartyRole by ID",
        "description": "This operation retrieves a PartyRole entity. Attribute selection is enabled for all first level attributes.",
        "tags": [
          "partyRole"
        ],
        "parameters": [
          {
            "name": "id",
            "description": "Identifier of the PartyRole",
            "required": true,
            "type": "string",
            "in": "path"
          },
          {
            "name": "fields",
            "description": "Comma-separated properties to provide in response",
            "required": false,
            "type": "string",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/PartyRole"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      },
      "patch": {
        "operationId": "patchPartyRole",
        "summary": "Updates partially a PartyRole",
        "description": "This operation updates partially a PartyRole entity.",
        "tags": [
          "partyRole"
        ],
        "parameters": [
          {
            "name": "id",
            "description": "Identifier of the PartyRole",
            "required": true,
            "type": "string",
            "in": "path"
          },
          {
            "name": "partyRole",
            "description": "The PartyRole to be updated",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PartyRole_Update"
            },
            "in": "body"
          }
        ],
        "responses": {
          "200": {
            "description": "Updated",
            "schema": {
              "$ref": "#/definitions/PartyRole"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      },
      "delete": {
        "operationId": "deletePartyRole",
        "summary": "Deletes a PartyRole",
        "description": "This operation deletes a PartyRole entity.",
        "tags": [
          "partyRole"
        ],
        "parameters": [
          {
            "name": "id",
            "description": "Identifier of the PartyRole",
            "required": true,
            "type": "string",
            "in": "path"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/hub": {
      "post": {
        "operationId": "registerListener",
        "summary": "Register a listener",
        "description": "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.",
        "tags": [
          "events subscription"
        ],
        "parameters": [
          {
            "name": "data",
            "schema": {
              "$ref": "#/definitions/EventSubscriptionInput"
            },
            "required": true,
            "in": "body",
            "description": "Data containing the callback endpoint to deliver the information"
          }
        ],
        "responses": {
          "201": {
            "description": "Subscribed",
            "schema": {
              "$ref": "#/definitions/EventSubscription"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/hub/{id}": {
      "delete": {
        "operationId": "unregisterListener",
        "summary": "Unregister a listener",
        "description": "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.",
        "tags": [
          "events subscription"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "required": true,
            "in": "path",
            "description": "The id of the registered listener"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/listener/partyRoleCreateEvent": {
      "post": {
        "operationId": "listenToPartyRoleCreateEvent",
        "summary": "Client listener for entity PartyRoleCreateEvent",
        "description": "Example of a client listener for receiving the notification PartyRoleCreateEvent",
        "tags": [
          "notification listeners (client side)"
        ],
        "parameters": [
          {
            "name": "data",
            "required": true,
            "in": "body",
            "description": "The event data",
            "schema": {
              "$ref": "#/definitions/PartyRoleCreateEvent"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Notified",
            "schema": {
              "$ref": "#/definitions/EventSubscription"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/listener/partyRoleAttributeValueChangeEvent": {
      "post": {
        "operationId": "listenToPartyRoleAttributeValueChangeEvent",
        "summary": "Client listener for entity PartyRoleAttributeValueChangeEvent",
        "description": "Example of a client listener for receiving the notification PartyRoleAttributeValueChangeEvent",
        "tags": [
          "notification listeners (client side)"
        ],
        "parameters": [
          {
            "name": "data",
            "required": true,
            "in": "body",
            "description": "The event data",
            "schema": {
              "$ref": "#/definitions/PartyRoleAttributeValueChangeEvent"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Notified",
            "schema": {
              "$ref": "#/definitions/EventSubscription"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/listener/partyRoleStateChangeEvent": {
      "post": {
        "operationId": "listenToPartyRoleStateChangeEvent",
        "summary": "Client listener for entity PartyRoleStateChangeEvent",
        "description": "Example of a client listener for receiving the notification PartyRoleStateChangeEvent",
        "tags": [
          "notification listeners (client side)"
        ],
        "parameters": [
          {
            "name": "data",
            "required": true,
            "in": "body",
            "description": "The event data",
            "schema": {
              "$ref": "#/definitions/PartyRoleStateChangeEvent"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Notified",
            "schema": {
              "$ref": "#/definitions/EventSubscription"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/listener/partyRoleDeleteEvent": {
      "post": {
        "operationId": "listenToPartyRoleDeleteEvent",
        "summary": "Client listener for entity PartyRoleDeleteEvent",
        "description": "Example of a client listener for receiving the notification PartyRoleDeleteEvent",
        "tags": [
          "notification listeners (client side)"
        ],
        "parameters": [
          {
            "name": "data",
            "required": true,
            "in": "body",
            "description": "The event data",
            "schema": {
              "$ref": "#/definitions/PartyRoleDeleteEvent"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Notified",
            "schema": {
              "$ref": "#/definitions/EventSubscription"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "AccountRef": {
      "type": "object",
      "description": "Account reference. A account may be a party account or a financial account.",
      "required": [
        "name"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the account"
        },
        "href": {
          "type": "string",
          "description": "Reference of the account"
        },
        "description": {
          "type": "string",
          "description": "Detailed description of the account"
        },
        "name": {
          "type": "string",
          "description": "Name of the account"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      }
    },
    "Addressable": {
      "type": "object",
      "description": "Base schema for adressable entities",
      "properties": {
        "id": {
          "type": "string",
          "description": "unique identifier"
        },
        "href": {
          "type": "string",
          "format": "uri",
          "description": "Hyperlink reference"
        }
      }
    },
    "AgreementRef": {
      "type": "object",
      "description": "Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.",
      "properties": {
        "id": {
          "type": "string",
          "description": "unique identifier"
        },
        "href": {
          "type": "string",
          "format": "uri",
          "description": "Hyperlink reference"
        },
        "name": {
          "type": "string",
          "description": "Name of the agreement"
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      },
      "required": [
        "id"
      ]
    },
    "Any": {},
    "Attachment": {
      "type": "object",
      "description": "Complements the description of an element (for instance a product) through video, pictures...",
      "properties": {
        "id": {
          "example": "4aafacbd-11ff-4dc8-b445-305f2215715f",
          "type": "string",
          "description": "Unique identifier for this particular attachment"
        },
        "href": {
          "example": "http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f",
          "type": "string",
          "format": "uri",
          "description": "URI for this Attachment"
        },
        "attachmentType": {
          "example": "video",
          "type": "string",
          "description": "Attachment type such as video, picture"
        },
        "content": {
          "type": "string",
          "format": "base64",
          "description": "The actual contents of the attachment object, if embedded, encoded as base64"
        },
        "description": {
          "example": "Photograph of the Product",
          "type": "string",
          "description": "A narrative text describing the content of the attachment"
        },
        "mimeType": {
          "type": "string",
          "description": "Attachment mime type such as extension file for video, picture and document"
        },
        "name": {
          "type": "string",
          "description": "The name of the attachment"
        },
        "url": {
          "example": "http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f",
          "type": "string",
          "format": "uri",
          "description": "Uniform Resource Locator, is a web page address (a subset of URI)"
        },
        "size": {
          "$ref": "#/definitions/Quantity",
          "description": "The size of the attachment."
        },
        "validFor": {
          "$ref": "#/definitions/TimePeriod",
          "description": "The period of time for which the attachment is valid"
        }
      }
    },
    "AttachmentRef": {
      "type": "object",
      "description": "Attachment reference. An attachment complements the description of an element (for instance a product) through video, pictures",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique-Identifier for this attachment"
        },
        "href": {
          "type": "string",
          "format": "uri",
          "description": "URL serving as reference for the attachment resource"
        },
        "description": {
          "type": "string",
          "description": "A narrative text describing the content of the attachment"
        },
        "name": {
          "type": "string",
          "description": "Name of the related entity."
        },
        "url": {
          "type": "string",
          "format": "uri",
          "description": "Link to the attachment media/content"
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      },
      "required": [
        "id"
      ]
    },
    "AttachmentRefOrValue": {
      "type": "object",
      "description": "An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture.",
      "properties": {
        "id": {
          "example": "4aafacbd-11ff-4dc8-b445-305f2215715f",
          "type": "string",
          "description": "Unique identifier for this particular attachment"
        },
        "href": {
          "example": "http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f",
          "type": "string",
          "format": "uri",
          "description": "URI for this Attachment"
        },
        "attachmentType": {
          "example": "video",
          "type": "string",
          "description": "Attachment type such as video, picture"
        },
        "content": {
          "type": "string",
          "format": "base64",
          "description": "The actual contents of the attachment object, if embedded, encoded as base64"
        },
        "description": {
          "example": "Photograph of the Product",
          "type": "string",
          "description": "A narrative text describing the content of the attachment"
        },
        "mimeType": {
          "type": "string",
          "description": "Attachment mime type such as extension file for video, picture and document"
        },
        "name": {
          "type": "string",
          "description": "The name of the attachment"
        },
        "url": {
          "example": "http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f",
          "type": "string",
          "format": "uri",
          "description": "Uniform Resource Locator, is a web page address (a subset of URI)"
        },
        "size": {
          "$ref": "#/definitions/Quantity",
          "description": "The size of the attachment."
        },
        "validFor": {
          "$ref": "#/definitions/TimePeriod",
          "description": "The period of time for which the attachment is valid"
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      }
    },
    "Characteristic": {
      "type": "object",
      "description": "Describes a given characteristic of an object or entity through a name/value pair.",
      "required": [
        "name",
        "value"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the characteristic"
        },
        "name": {
          "type": "string",
          "description": "Name of the characteristic"
        },
        "valueType": {
          "type": "string",
          "description": "Data type of the value of the characteristic"
        },
        "characteristicRelationship": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CharacteristicRelationship"
          }
        },
        "value": {
          "$ref": "#/definitions/Any",
          "description": "The value of the characteristic"
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        }
      }
    },
    "CharacteristicRelationship": {
      "type": "object",
      "description": "Another Characteristic that is related to the current Characteristic;",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the characteristic"
        },
        "relationshipType": {
          "type": "string",
          "description": "The type of relationship"
        }
      }
    },
    "ContactMedium": {
      "type": "object",
      "description": "Indicates the contact medium that could be used to contact the party.",
      "required": [
        "mediumType",
        "characteristic"
      ],
      "properties": {
        "mediumType": {
          "type": "string",
          "description": "Type of the contact medium, such as: email address, telephone number, postal address"
        },
        "preferred": {
          "type": "boolean",
          "description": "If true, indicates that is the preferred contact medium"
        },
        "characteristic": {
          "$ref": "#/definitions/MediumCharacteristic",
          "description": "Any additional characteristic(s) of this contact medium"
        },
        "validFor": {
          "$ref": "#/definitions/TimePeriod",
          "description": "The time period that the contact medium is valid for"
        }
      }
    },
    "CreditProfile": {
      "type": "object",
      "description": "Credit profile for the party (containing credit scoring, ...). By default only the current credit profile  is retrieved. It can be used as a list to give the party credit profiles history, the first one in the list will be the current one.",
      "required": [
        "creditProfileDate",
        "validFor"
      ],
      "properties": {
        "creditProfileDate": {
          "type": "string",
          "format": "date-time",
          "description": "The date the profile was established"
        },
        "creditRiskRating": {
          "type": "integer",
          "description": "This is an integer whose value is used to rate the risk"
        },
        "creditScore": {
          "type": "integer",
          "description": "A measure of a person or organizations creditworthiness calculated on the basis of a combination of factors such as their income and credit history"
        },
        "validFor": {
          "$ref": "#/definitions/TimePeriod",
          "description": "The period for which the profile is valid"
        }
      }
    },
    "EntityRef": {
      "type": "object",
      "description": "Entity reference schema to be use for all entityRef class.",
      "properties": {
        "id": {
          "type": "string",
          "description": "unique identifier"
        },
        "href": {
          "type": "string",
          "format": "uri",
          "description": "Hyperlink reference"
        },
        "name": {
          "type": "string",
          "description": "Name of the related entity."
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      },
      "required": [
        "id"
      ]
    },
    "Extensible": {
      "type": "object",
      "description": "Base Extensible schema for use in TMForum Open-APIs",
      "properties": {
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        }
      }
    },
    "ExternalReference": {
      "type": "object",
      "description": "External reference of the individual or reference in other system",
      "properties": {
        "externalReferenceType": {
          "type": "string",
          "description": "Type of the external reference"
        },
        "name": {
          "type": "string",
          "description": "External reference name"
        }
      }
    },
    "MediumCharacteristic": {
      "type": "object",
      "description": "Describes the contact medium characteristics that could be used to contact a party (an individual or an organization)",
      "properties": {
        "city": {
          "type": "string",
          "description": "The city"
        },
        "contactType": {
          "type": "string",
          "description": "The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation…"
        },
        "country": {
          "type": "string",
          "description": "The country"
        },
        "emailAddress": {
          "type": "string",
          "description": "Full email address in standard format"
        },
        "faxNumber": {
          "type": "string",
          "description": "The fax number of the contact"
        },
        "phoneNumber": {
          "type": "string",
          "description": "The primary phone number of the contact"
        },
        "postCode": {
          "type": "string",
          "description": "Postcode"
        },
        "socialNetworkId": {
          "type": "string",
          "description": "Identifier as a member of a social network"
        },
        "stateOrProvince": {
          "type": "string",
          "description": "State or province"
        },
        "street1": {
          "type": "string",
          "description": "Describes the street"
        },
        "street2": {
          "type": "string",
          "description": "Complementary street description"
        }
      }
    },
    "Party": {
      "type": "object",
      "description": "Generic Party structure used to define commonalities between sub concepts of Individual and Organization.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the organization"
        },
        "href": {
          "type": "string",
          "description": "Hyperlink to access the organization"
        },
        "contactMedium": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContactMedium"
          }
        },
        "creditRating": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PartyCreditProfile"
          }
        },
        "externalReference": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ExternalReference"
          }
        },
        "partyCharacteristic": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Characteristic"
          }
        },
        "relatedParty": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RelatedParty"
          }
        },
        "taxExemptionCertificate": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TaxExemptionCertificate"
          }
        }
      }
    },
    "PartyCreditProfile": {
      "type": "object",
      "description": "An individual might be evaluated for its worthiness and this evaluation might be based on a credit rating given by a credit agency.",
      "properties": {
        "creditAgencyName": {
          "type": "string",
          "description": "Name of the credit agency giving the score"
        },
        "creditAgencyType": {
          "type": "string",
          "description": "Type of the credit agency giving the score"
        },
        "ratingReference": {
          "type": "string",
          "description": "Reference corresponding to the credit rating"
        },
        "ratingScore": {
          "type": "integer",
          "description": "A measure of a party’s creditworthiness calculated on the basis of a combination of factors such as their income and credit history"
        },
        "validFor": {
          "$ref": "#/definitions/TimePeriod"
        }
      }
    },
    "PartyRef": {
      "type": "object",
      "required": [
        "@referredType"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "unique identifier"
        },
        "href": {
          "type": "string",
          "format": "uri",
          "description": "Hyperlink reference"
        },
        "name": {
          "type": "string",
          "description": "Name of the related entity."
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      }
    },
    "PartyRole": {
      "type": "object",
      "description": "The part played by a party in a given context.",
      "required": [
        "name",
        "roleType"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for PartyRoles"
        },
        "href": {
          "type": "string",
          "description": "Url used to reference the party role."
        },
        "name": {
          "type": "string",
          "description": "A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles."
        },
        "status": {
          "type": "string",
          "description": "Used to track the lifecycle status of the party role."
        },
        "statusReason": {
          "type": "string",
          "description": "A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection."
        },
        "account": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AccountRef"
          }
        },
        "agreement": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AgreementRef"
          }
        },
        "characteristic": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Characteristic"
          },
          "description": "Describes the characteristic of a party role."
        },
        "contactMedium": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContactMedium"
          }
        },
        "creditProfile": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CreditProfile"
          }
        },
        "engagedParty": {
          "$ref": "#/definitions/RelatedPartyRefOrValue"
        },
        "paymentMethod": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PaymentMethodRef"
          }
        },
        "relatedParty": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RelatedPartyRefOrValue"
          }
        },
        "roleType": {
          "$ref": "#/definitions/RoleTypeRef"
        },
        "validFor": {
          "$ref": "#/definitions/TimePeriod",
          "description": "The time period that the PartyRole is valid for."
        }
      }
    },
    "PartyRole_Create": {
      "type": "object",
      "description": "The part played by a party in a given context.\nSkipped properties: id,href",
      "required": [
        "name",
        "roleType"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles."
        },
        "status": {
          "type": "string",
          "description": "Used to track the lifecycle status of the party role."
        },
        "statusReason": {
          "type": "string",
          "description": "A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection."
        },
        "account": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AccountRef"
          }
        },
        "agreement": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AgreementRef"
          }
        },
        "characteristic": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Characteristic"
          },
          "description": "Describes the characteristic of a party role."
        },
        "contactMedium": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContactMedium"
          }
        },
        "creditProfile": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CreditProfile"
          }
        },
        "engagedParty": {
          "$ref": "#/definitions/RelatedPartyRefOrValue"
        },
        "paymentMethod": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PaymentMethodRef"
          }
        },
        "relatedParty": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RelatedPartyRefOrValue"
          }
        },
        "roleType": {
          "$ref": "#/definitions/RoleTypeRef"
        },
        "validFor": {
          "$ref": "#/definitions/TimePeriod",
          "description": "The time period that the PartyRole is valid for."
        }
      }
    },
    "PartyRole_Update": {
      "type": "object",
      "description": "The part played by a party in a given context.\nSkipped properties: id,href",
      "required": [
        "name",
        "roleType"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles."
        },
        "status": {
          "type": "string",
          "description": "Used to track the lifecycle status of the party role."
        },
        "statusReason": {
          "type": "string",
          "description": "A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection."
        },
        "account": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AccountRef"
          }
        },
        "agreement": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AgreementRef"
          }
        },
        "characteristic": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Characteristic"
          },
          "description": "Describes the characteristic of a party role."
        },
        "contactMedium": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContactMedium"
          }
        },
        "creditProfile": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CreditProfile"
          }
        },
        "engagedParty": {
          "$ref": "#/definitions/RelatedPartyRefOrValue"
        },
        "paymentMethod": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PaymentMethodRef"
          }
        },
        "relatedParty": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RelatedPartyRefOrValue"
          }
        },
        "roleType": {
          "$ref": "#/definitions/RoleTypeRef"
        },
        "validFor": {
          "$ref": "#/definitions/TimePeriod",
          "description": "The time period that the PartyRole is valid for."
        }
      }
    },
    "PaymentMethodRef": {
      "type": "object",
      "description": "PaymentMethod reference. A payment method defines a specific mean of payment (e.g direct debit).",
      "properties": {
        "id": {
          "type": "string",
          "description": "unique identifier"
        },
        "href": {
          "type": "string",
          "format": "uri",
          "description": "Hyperlink reference"
        },
        "name": {
          "type": "string",
          "description": "Name of the related entity."
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      },
      "required": [
        "id"
      ]
    },
    "Quantity": {
      "type": "object",
      "description": "An amount in a given unit",
      "properties": {
        "amount": {
          "default": 1,
          "type": "number",
          "format": "float",
          "description": "Numeric value in a given unit"
        },
        "units": {
          "type": "string",
          "description": "Unit"
        }
      }
    },
    "RelatedParty": {
      "type": "object",
      "description": "Related Entity reference. A related party defines party or party role linked to a specific entity.",
      "required": [
        "@referredType",
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "unique identifier"
        },
        "href": {
          "type": "string",
          "format": "uri",
          "description": "Hyperlink reference"
        },
        "name": {
          "type": "string",
          "description": "Name of the related entity."
        },
        "role": {
          "type": "string",
          "description": "Role played by the related party"
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      }
    },
    "RelatedPartyRefOrValue": {
      "type": "object",
      "description": "Entity reference. A related party defines party or party role linked to a specific entity.",
      "properties": {
        "id": {
          "type": "string",
          "description": "unique identifier"
        },
        "href": {
          "type": "string",
          "format": "uri",
          "description": "Hyperlink reference"
        },
        "name": {
          "type": "string",
          "description": "Name of the related entity."
        },
        "role": {
          "type": "string"
        },
        "contactMedium": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContactMedium"
          }
        },
        "creditRating": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/PartyCreditProfile"
          }
        },
        "externalReference": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ExternalReference"
          }
        },
        "partyCharacteristic": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Characteristic"
          }
        },
        "relatedParty": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RelatedParty"
          }
        },
        "taxExemptionCertificate": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TaxExemptionCertificate"
          }
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class"
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class Extensible name"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      }
    },
    "RoleTypeRef": {
      "type": "object",
      "description": "RoleType reference.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the role type. It uniquely identifies the role type within the partnership type."
        },
        "partnershipHref": {
          "type": "string",
          "description": "Reference url of the partnership type containing the role type"
        },
        "partnershipId": {
          "type": "string",
          "description": "The identifier of the partnership type containing the role type"
        },
        "partnershipName": {
          "type": "string",
          "description": "The name of the partnership type defining this role type"
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      },
      "required": [
        "id"
      ]
    },
    "TaxDefinition": {
      "type": "object",
      "description": "Reference of a tax definition. A tax is levied by an authorized tax jurisdiction. There are many different types of tax (Federal Tax levied by the US Government, State Tax levied by the State of California,…).",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the tax."
        },
        "name": {
          "type": "string",
          "description": "Tax name."
        },
        "taxType": {
          "type": "string",
          "description": "Type of  the tax."
        },
        "@referredType": {
          "type": "string",
          "description": "The actual type of the target instance when needed for disambiguation."
        }
      }
    },
    "TaxExemptionCertificate": {
      "type": "object",
      "description": "A tax exemption certificate represents a tax exemption granted to a party (individual or organization) by a tax jurisdiction which may be a city, state, country,... An exemption has a certificate identifier (received from the jurisdiction that levied the tax) and a validity period. An exemption is per tax types and determines for each type of tax what portion of the tax is exempted (partial by percentage or complete) via the tax definition.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the certificate of the tax exemption"
        },
        "attachment": {
          "$ref": "#/definitions/AttachmentRefOrValue"
        },
        "taxDefinition": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TaxDefinition"
          }
        },
        "validFor": {
          "$ref": "#/definitions/TimePeriod"
        }
      }
    },
    "TimePeriod": {
      "type": "object",
      "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both",
      "properties": {
        "endDateTime": {
          "example": "1985-04-12T23:20:50.52Z",
          "type": "string",
          "format": "date-time",
          "description": "End of the time period, using IETC-RFC-3339 format"
        },
        "startDateTime": {
          "example": "1985-04-12T23:20:50.52Z",
          "type": "string",
          "format": "date-time",
          "description": "Start of the time period, using IETC-RFC-3339 format"
        }
      }
    },
    "EventSubscription": {
      "type": "object",
      "description": "Sets the communication endpoint address the service instance must use to deliver notification information",
      "required": [
        "id",
        "callback"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of the listener"
        },
        "callback": {
          "type": "string",
          "description": "The callback being registered."
        },
        "query": {
          "type": "string",
          "description": "additional data to be passed"
        }
      }
    },
    "EventSubscriptionInput": {
      "type": "object",
      "description": "Sets the communication endpoint address the service instance must use to deliver notification information",
      "required": [
        "callback"
      ],
      "properties": {
        "callback": {
          "type": "string",
          "description": "The callback being registered."
        },
        "query": {
          "type": "string",
          "description": "additional data to be passed"
        }
      }
    },
    "PartyRoleCreateEvent": {
      "type": "object",
      "description": "The notification data structure",
      "properties": {
        "event": {
          "description": "The event payload linked to the involved resource object",
          "$ref": "#/definitions/PartyRoleCreateEventPayload"
        },
        "eventId": {
          "type": "string",
          "description": "The identifier of the notification."
        },
        "eventTime": {
          "type": "string",
          "format": "date-time",
          "description": "Time of the event occurrence."
        },
        "eventType": {
          "type": "string",
          "description": "The type of the notification."
        },
        "correlationId": {
          "type": "string",
          "description": "The correlation id for this event."
        },
        "domain": {
          "type": "string",
          "description": "The domain of the event."
        },
        "title": {
          "type": "string",
          "description": "The title of the event."
        },
        "description": {
          "type": "string",
          "description": "An explnatory of the event."
        },
        "priority": {
          "type": "string",
          "description": "A priority."
        },
        "timeOcurred": {
          "type": "string",
          "format": "date-time",
          "description": "The time the event occured."
        }
      }
    },
    "PartyRoleCreateEventPayload": {
      "type": "object",
      "description": "The event data structure",
      "properties": {
        "partyRole": {
          "description": "The involved resource data for the event",
          "$ref": "#/definitions/PartyRole"
        }
      }
    },
    "PartyRoleAttributeValueChangeEvent": {
      "type": "object",
      "description": "The notification data structure",
      "properties": {
        "eventId": {
          "type": "string",
          "description": "The identifier of the notification."
        },
        "eventTime": {
          "type": "string",
          "format": "date-time",
          "description": "Time of the event occurrence."
        },
        "eventType": {
          "type": "string",
          "description": "The type of the notification."
        },
        "correlationId": {
          "type": "string",
          "description": "The correlation id for this event."
        },
        "domain": {
          "type": "string",
          "description": "The domain of the event."
        },
        "title": {
          "type": "string",
          "description": "The title of the event."
        },
        "description": {
          "type": "string",
          "description": "An explnatory of the event."
        },
        "priority": {
          "type": "string",
          "description": "A priority."
        },
        "timeOcurred": {
          "type": "string",
          "format": "date-time",
          "description": "The time the event occured."
        },
        "fieldPath": {
          "type": "string",
          "description": "The path identifying the object field concerned by this notification."
        },
        "event": {
          "description": "The event payload linked to the involved resource object",
          "$ref": "#/definitions/PartyRoleAttributeValueChangeEventPayload"
        }
      }
    },
    "PartyRoleAttributeValueChangeEventPayload": {
      "type": "object",
      "description": "The event data structure",
      "properties": {
        "partyRole": {
          "description": "The involved resource data for the event",
          "$ref": "#/definitions/PartyRole"
        }
      }
    },
    "PartyRoleStateChangeEvent": {
      "type": "object",
      "description": "The notification data structure",
      "properties": {
        "event": {
          "description": "The event payload linked to the involved resource object",
          "$ref": "#/definitions/PartyRoleStateChangeEventPayload"
        },
        "eventId": {
          "type": "string",
          "description": "The identifier of the notification."
        },
        "eventTime": {
          "type": "string",
          "format": "date-time",
          "description": "Time of the event occurrence."
        },
        "eventType": {
          "type": "string",
          "description": "The type of the notification."
        },
        "correlationId": {
          "type": "string",
          "description": "The correlation id for this event."
        },
        "domain": {
          "type": "string",
          "description": "The domain of the event."
        },
        "title": {
          "type": "string",
          "description": "The title of the event."
        },
        "description": {
          "type": "string",
          "description": "An explnatory of the event."
        },
        "priority": {
          "type": "string",
          "description": "A priority."
        },
        "timeOcurred": {
          "type": "string",
          "format": "date-time",
          "description": "The time the event occured."
        }
      }
    },
    "PartyRoleStateChangeEventPayload": {
      "type": "object",
      "description": "The event data structure",
      "properties": {
        "partyRole": {
          "description": "The involved resource data for the event",
          "$ref": "#/definitions/PartyRole"
        }
      }
    },
    "PartyRoleDeleteEvent": {
      "type": "object",
      "description": "The notification data structure",
      "properties": {
        "event": {
          "description": "The event payload linked to the involved resource object",
          "$ref": "#/definitions/PartyRoleDeleteEventPayload"
        },
        "eventId": {
          "type": "string",
          "description": "The identifier of the notification."
        },
        "eventTime": {
          "type": "string",
          "format": "date-time",
          "description": "Time of the event occurrence."
        },
        "eventType": {
          "type": "string",
          "description": "The type of the notification."
        },
        "correlationId": {
          "type": "string",
          "description": "The correlation id for this event."
        },
        "domain": {
          "type": "string",
          "description": "The domain of the event."
        },
        "title": {
          "type": "string",
          "description": "The title of the event."
        },
        "description": {
          "type": "string",
          "description": "An explnatory of the event."
        },
        "priority": {
          "type": "string",
          "description": "A priority."
        },
        "timeOcurred": {
          "type": "string",
          "format": "date-time",
          "description": "The time the event occured."
        }
      }
    },
    "PartyRoleDeleteEventPayload": {
      "type": "object",
      "description": "The event data structure",
      "properties": {
        "partyRole": {
          "description": "The involved resource data for the event",
          "$ref": "#/definitions/PartyRole"
        }
      }
    },
    "Error": {
      "description": "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)",
      "type": "object",
      "required": [
        "code",
        "reason"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Application relevant detail, defined in the API or a common list."
        },
        "reason": {
          "type": "string",
          "description": "Explanation of the reason for the error which can be shown to a client user."
        },
        "message": {
          "type": "string",
          "description": "More details and corrective actions related to the error which can be shown to a client user."
        },
        "status": {
          "type": "string",
          "description": "HTTP Error code extension"
        },
        "referenceError": {
          "type": "string",
          "format": "uri",
          "description": "URI of documentation describing the error."
        },
        "@baseType": {
          "type": "string",
          "description": "When sub-classing, this defines the super-class."
        },
        "@schemaLocation": {
          "type": "string",
          "format": "uri",
          "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
        },
        "@type": {
          "type": "string",
          "description": "When sub-classing, this defines the sub-class entity name."
        }
      }
    }
  }
}