{
    "swagger": "2.0",
    "info": {
        "title": "Geographic Site",
        "description": "## TMF API Reference : TMF 674 - Place - Geographic Site Management\n\n### Release : 19.5 - November 2019\n\nThis API covers the operations to manage (create, read, delete) sites that can be associated to a customer, an account, a service delivery or other entities. It defines a Site as a convenience class that allows to easily refer to places important to other entities, where a geographic place is the entity that can answer the question \u201cwhere?\u201d, allowing to determine where things are in relation to the earth's surface, and can be represented either in a textual structured way (geographic address) or as a geometry referred to a spatial reference system (geographic location).\n\n### Resources\n- GeographicSite\n- Hub\n\n### Operations\nGeographic Site API performs the following operations :\n- Retrieve a geographic site or a collection of geographic sites\n- Create a new site\n- Update a geographic site\n- Delete a geographic site\n- Notify events on geographic site\n\nCopyright \u00a9 TM Forum 2019. All Rights Reserved\n\n",
        "version": "4.0.0"
    },
    "host": "serverRoot",
    "basePath": "/tmf-api/geographicSiteManagement/v4/",
    "schemes": [
        "https"
    ],
    "consumes": [
        "application/json;charset=utf-8"
    ],
    "produces": [
        "application/json;charset=utf-8"
    ],
    "tags": [
        {
            "name": "geographicSite"
        },
        {
            "name": "notification listeners (client side)"
        },
        {
            "name": "events subscription"
        }
    ],
    "paths": {
        "/geographicSite": {
            "get": {
                "operationId": "listGeographicSite",
                "summary": "List or find GeographicSite objects",
                "description": "This operation list or find GeographicSite entities",
                "tags": [
                    "geographicSite"
                ],
                "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/GeographicSite"
                            }
                        }
                    },
                    "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": "createGeographicSite",
                "summary": "Creates a GeographicSite",
                "description": "This operation creates a GeographicSite entity.",
                "tags": [
                    "geographicSite"
                ],
                "parameters": [
                    {
                        "name": "geographicSite",
                        "description": "The GeographicSite to be created",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/GeographicSite_Create"
                        },
                        "in": "body"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/GeographicSite"
                        }
                    },
                    "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"
                        }
                    }
                }
            }
        },
        "/geographicSite/{id}": {
            "get": {
                "operationId": "retrieveGeographicSite",
                "summary": "Retrieves a GeographicSite by ID",
                "description": "This operation retrieves a GeographicSite entity. Attribute selection is enabled for all first level attributes.",
                "tags": [
                    "geographicSite"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "description": "Identifier of the GeographicSite",
                        "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/GeographicSite"
                        }
                    },
                    "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": "patchGeographicSite",
                "summary": "Updates partially a GeographicSite",
                "description": "This operation updates partially a GeographicSite entity.",
                "tags": [
                    "geographicSite"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "description": "Identifier of the GeographicSite",
                        "required": true,
                        "type": "string",
                        "in": "path"
                    },
                    {
                        "name": "geographicSite",
                        "description": "The GeographicSite to be updated",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/GeographicSite_Update"
                        },
                        "in": "body"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated",
                        "schema": {
                            "$ref": "#/definitions/GeographicSite"
                        }
                    },
                    "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": "deleteGeographicSite",
                "summary": "Deletes a GeographicSite",
                "description": "This operation deletes a GeographicSite entity.",
                "tags": [
                    "geographicSite"
                ],
                "parameters": [
                    {
                        "name": "id",
                        "description": "Identifier of the GeographicSite",
                        "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/geographicSiteCreateEvent": {
            "post": {
                "operationId": "listenToGeographicSiteCreateEvent",
                "summary": "Client listener for entity GeographicSiteCreateEvent",
                "description": "Example of a client listener for receiving the notification GeographicSiteCreateEvent",
                "tags": [
                    "notification listeners (client side)"
                ],
                "parameters": [
                    {
                        "name": "data",
                        "required": true,
                        "in": "body",
                        "description": "The event data",
                        "schema": {
                            "$ref": "#/definitions/GeographicSiteCreateEvent"
                        }
                    }
                ],
                "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/geographicSiteAttributeValueChangeEvent": {
            "post": {
                "operationId": "listenToGeographicSiteAttributeValueChangeEvent",
                "summary": "Client listener for entity GeographicSiteAttributeValueChangeEvent",
                "description": "Example of a client listener for receiving the notification GeographicSiteAttributeValueChangeEvent",
                "tags": [
                    "notification listeners (client side)"
                ],
                "parameters": [
                    {
                        "name": "data",
                        "required": true,
                        "in": "body",
                        "description": "The event data",
                        "schema": {
                            "$ref": "#/definitions/GeographicSiteAttributeValueChangeEvent"
                        }
                    }
                ],
                "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/geographicSiteStatusChangeEvent": {
            "post": {
                "operationId": "listenToGeographicSiteStatusChangeEvent",
                "summary": "Client listener for entity GeographicSiteStatusChangeEvent",
                "description": "Example of a client listener for receiving the notification GeographicSiteStatusChangeEvent",
                "tags": [
                    "notification listeners (client side)"
                ],
                "parameters": [
                    {
                        "name": "data",
                        "required": true,
                        "in": "body",
                        "description": "The event data",
                        "schema": {
                            "$ref": "#/definitions/GeographicSiteStatusChangeEvent"
                        }
                    }
                ],
                "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/geographicSiteDeleteEvent": {
            "post": {
                "operationId": "listenToGeographicSiteDeleteEvent",
                "summary": "Client listener for entity GeographicSiteDeleteEvent",
                "description": "Example of a client listener for receiving the notification GeographicSiteDeleteEvent",
                "tags": [
                    "notification listeners (client side)"
                ],
                "parameters": [
                    {
                        "name": "data",
                        "required": true,
                        "in": "body",
                        "description": "The event data",
                        "schema": {
                            "$ref": "#/definitions/GeographicSiteDeleteEvent"
                        }
                    }
                ],
                "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": {
        "CalendarPeriod": {
            "type": "object",
            "properties": {
                "day": {
                    "type": "string",
                    "description": "Day where the calendar status applies (e.g.: monday, mon-to-fri, weekdays, weekend, all week, ...)"
                },
                "status": {
                    "type": "string",
                    "description": "Indication of the availability of the site (e.g.: open)"
                },
                "timeZone": {
                    "type": "string",
                    "description": "Indication of the timezone applicable to the calendar information (e.g.: Paris, GMT+1)"
                },
                "hourPeriod": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/HourPeriod"
                    }
                },
                "@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"
                }
            }
        },
        "EntityRef": {
            "type": "object",
            "description": "Entity reference schema to be use for all entityRef class.",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Unique identifier of a related entity."
                },
                "href": {
                    "type": "string",
                    "description": "Reference of the related entity."
                },
                "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 entity name"
                },
                "@referredType": {
                    "type": "string",
                    "description": "The actual type of the target instance when needed for disambiguation."
                }
            },
            "required": [
                "id"
            ]
        },
        "GeographicSite": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Unique identifier of the place"
                },
                "href": {
                    "type": "string",
                    "description": "Unique reference of the place"
                },
                "code": {
                    "type": "string",
                    "description": "A code that may be used for some addressing schemes eg: [ANSI T1.253-1999]"
                },
                "description": {
                    "type": "string",
                    "description": "Text describing additional information regarding the site"
                },
                "name": {
                    "type": "string",
                    "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]"
                },
                "status": {
                    "type": "string",
                    "description": "The condition of the GeographicSite, such as planned, underConstruction, cancelled, active, inactive, former"
                },
                "calendar": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/CalendarPeriod"
                    }
                },
                "place": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/PlaceRefOrValue"
                    }
                },
                "relatedParty": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RelatedParty"
                    }
                },
                "siteRelationship": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/GeographicSiteRelationship"
                    }
                },
                "@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"
                }
            }
        },
        "GeographicSite_Create": {
            "type": "object",
            "description": "\nSkipped properties: id,href",
            "properties": {
                "code": {
                    "type": "string",
                    "description": "A code that may be used for some addressing schemes eg: [ANSI T1.253-1999]"
                },
                "description": {
                    "type": "string",
                    "description": "Text describing additional information regarding the site"
                },
                "name": {
                    "type": "string",
                    "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]"
                },
                "status": {
                    "type": "string",
                    "description": "The condition of the GeographicSite, such as planned, underConstruction, cancelled, active, inactive, former"
                },
                "calendar": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/CalendarPeriod"
                    }
                },
                "place": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/PlaceRefOrValue"
                    }
                },
                "relatedParty": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RelatedParty"
                    }
                },
                "siteRelationship": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/GeographicSiteRelationship"
                    }
                },
                "@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"
                }
            }
        },
        "GeographicSite_Update": {
            "type": "object",
            "description": "\nSkipped properties: id,href",
            "properties": {
                "code": {
                    "type": "string",
                    "description": "A code that may be used for some addressing schemes eg: [ANSI T1.253-1999]"
                },
                "description": {
                    "type": "string",
                    "description": "Text describing additional information regarding the site"
                },
                "name": {
                    "type": "string",
                    "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]"
                },
                "status": {
                    "type": "string",
                    "description": "The condition of the GeographicSite, such as planned, underConstruction, cancelled, active, inactive, former"
                },
                "calendar": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/CalendarPeriod"
                    }
                },
                "place": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/PlaceRefOrValue"
                    }
                },
                "relatedParty": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RelatedParty"
                    }
                },
                "siteRelationship": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/GeographicSiteRelationship"
                    }
                },
                "@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"
                }
            }
        },
        "GeographicSiteRelationship": {
            "type": "object",
            "required": [
                "id",
                "relationshipType"
            ],
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Unique identifier of the related site entity within the server"
                },
                "href": {
                    "type": "string",
                    "description": "Reference of the related geographic site"
                },
                "relationshipType": {
                    "type": "string",
                    "description": "Type of relationship"
                },
                "role": {
                    "type": "string",
                    "description": "Role of the related site in the relationship"
                },
                "validFor": {
                    "$ref": "#/definitions/TimePeriod",
                    "description": "Validity for the relationship"
                },
                "@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"
                }
            }
        },
        "HourPeriod": {
            "type": "object",
            "properties": {
                "endHour": {
                    "type": "string",
                    "description": "The time when the status ends applying"
                },
                "startHour": {
                    "type": "string",
                    "description": "The time when the status starts applying"
                },
                "@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"
                }
            }
        },
        "Place": {
            "type": "object",
            "description": "Place reference. Place defines the places where the products are sold or delivered.",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Unique identifier of the place"
                },
                "href": {
                    "type": "string",
                    "description": "Unique reference of the place"
                },
                "name": {
                    "type": "string",
                    "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]"
                },
                "@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"
                }
            }
        },
        "PlaceRef": {
            "type": "object",
            "description": "Place reference. PlaceRef defines the placeRefs where the products are sold or delivered.",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Unique identifier of a related entity."
                },
                "href": {
                    "type": "string",
                    "description": "Reference of the related entity."
                },
                "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 entity name"
                },
                "@referredType": {
                    "type": "string",
                    "description": "The actual type of the target instance when needed for disambiguation."
                }
            },
            "required": [
                "id"
            ]
        },
        "PlaceRefOrValue": {
            "type": "object",
            "description": "A  place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the PlaceRefOrValue class itself",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Unique identifier of the place"
                },
                "href": {
                    "type": "string",
                    "description": "Unique reference of the place"
                },
                "name": {
                    "type": "string",
                    "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]"
                },
                "@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"
                },
                "@referredType": {
                    "type": "string",
                    "description": "The actual type of the target instance when needed for disambiguation."
                }
            }
        },
        "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 of a related entity."
                },
                "href": {
                    "type": "string",
                    "description": "Reference of the related entity."
                },
                "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 entity name"
                },
                "@referredType": {
                    "type": "string",
                    "description": "The actual type of the target instance when needed for disambiguation."
                }
            }
        },
        "TimePeriod": {
            "type": "object",
            "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both",
            "properties": {
                "endDateTime": {
                    "type": "string",
                    "format": "date-time",
                    "description": "End of the time period, using IETC-RFC-3339 format"
                },
                "startDateTime": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end"
                }
            }
        },
        "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"
                }
            }
        },
        "GeographicSiteCreateEvent": {
            "type": "object",
            "description": "The notification data structure",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Identifier of the Process flow"
                },
                "href": {
                    "type": "string",
                    "description": "Reference of the ProcessFlow"
                },
                "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."
                },
                "event": {
                    "description": "The event payload linked to the involved resource object",
                    "$ref": "#/definitions/GeographicSiteCreateEventPayload"
                }
            }
        },
        "GeographicSiteCreateEventPayload": {
            "type": "object",
            "description": "The event data structure",
            "properties": {
                "geographicSite": {
                    "description": "The involved resource data for the event",
                    "$ref": "#/definitions/GeographicSite"
                }
            }
        },
        "GeographicSiteAttributeValueChangeEvent": {
            "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/GeographicSiteAttributeValueChangeEventPayload"
                }
            }
        },
        "GeographicSiteAttributeValueChangeEventPayload": {
            "type": "object",
            "description": "The event data structure",
            "properties": {
                "geographicSite": {
                    "description": "The involved resource data for the event",
                    "$ref": "#/definitions/GeographicSite"
                }
            }
        },
        "GeographicSiteStatusChangeEvent": {
            "type": "object",
            "description": "The notification data structure",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Identifier of the Process flow"
                },
                "href": {
                    "type": "string",
                    "description": "Reference of the ProcessFlow"
                },
                "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."
                },
                "event": {
                    "description": "The event payload linked to the involved resource object",
                    "$ref": "#/definitions/GeographicSiteStatusChangeEventPayload"
                }
            }
        },
        "GeographicSiteStatusChangeEventPayload": {
            "type": "object",
            "description": "The event data structure",
            "properties": {
                "geographicSite": {
                    "description": "The involved resource data for the event",
                    "$ref": "#/definitions/GeographicSite"
                }
            }
        },
        "GeographicSiteDeleteEvent": {
            "type": "object",
            "description": "The notification data structure",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Identifier of the Process flow"
                },
                "href": {
                    "type": "string",
                    "description": "Reference of the ProcessFlow"
                },
                "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."
                },
                "event": {
                    "description": "The event payload linked to the involved resource object",
                    "$ref": "#/definitions/GeographicSiteDeleteEventPayload"
                }
            }
        },
        "GeographicSiteDeleteEventPayload": {
            "type": "object",
            "description": "The event data structure",
            "properties": {
                "geographicSite": {
                    "description": "The involved resource data for the event",
                    "$ref": "#/definitions/GeographicSite"
                }
            }
        },
        "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."
                }
            }
        }
    }
}