Genetec CAD API 1.0.1
API that provides a way to send CAD events to Genetec Security Center.
{
"openapi": "3.0.1",
"info": {
"title": "Genetec CAD API",
"description": "Genetec CAD API (.NET Core 3.1.31)",
"termsOfService": "https://www.genetec.com/legal/cloudtos",
"contact": {
"name": "Cities Application Group Support Team",
"email": "gscryabin@genetec.com"
},
"version": "1.0.1"
},
"servers": [
{
"url": "https://virtserver.swaggerhub.com/GenetecCities/CADIngestion/1.0.1",
"description": "SwaggerHub API Auto Mocking"
},
{
"url": "/fw-11-09-cadtest/cadservice"
}
],
"security": [
{
"Bearer": []
}
],
"paths": {
"/api/v1/events/{providerId}/search": {
"get": {
"tags": [
"CadSearch"
],
"summary": "searches for cad events",
"description": "Forwards the search to the configured data provider.",
"parameters": [
{
"name": "providerId",
"in": "path",
"description": "A provider id for the events",
"required": true,
"style": "simple",
"explode": false,
"schema": {
"type": "string"
}
},
{
"name": "startTimeUtc",
"in": "query",
"description": "Matching reads must be >= this time",
"required": true,
"style": "form",
"explode": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "endTimeUtc",
"in": "query",
"description": "Matching reads must be <= this time",
"required": true,
"style": "form",
"explode": true,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "latitude",
"in": "query",
"description": "Latitude (WGS84)",
"required": false,
"style": "form",
"explode": true,
"schema": {
"maximum": 90,
"minimum": -90,
"type": "number",
"format": "double"
}
},
{
"name": "longitude",
"in": "query",
"description": "Longitude (WGS84)",
"required": false,
"style": "form",
"explode": true,
"schema": {
"maximum": 180,
"minimum": -180,
"type": "number",
"format": "double"
}
},
{
"name": "radiusMeters",
"in": "query",
"description": "maximum distance from the specified location",
"required": false,
"style": "form",
"explode": true,
"schema": {
"type": "number",
"format": "double"
}
}
],
"responses": {
"200": {
"description": "search results matching criteria",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
}
}
},
"400": {
"description": "bad input parameter",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
}
}
},
"500": {
"description": "Server Error",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
},
"application/json": {
"schema": {
"type": "string"
}
},
"text/json": {
"schema": {
"type": "string"
}
},
"application/xml": {
"schema": {
"type": "string"
}
},
"text/xml": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/api/v1/events/{providerId}/searchByIds": {
"get": {
"tags": [
"CadSearch"
],
"summary": "searches for cad events by id",
"description": "Forwards the search to the configured data provider.",
"parameters": [
{
"name": "providerId",
"in": "path",
"description": "A provider id for the events",
"required": true,
"style": "simple",
"explode": false,
"schema": {
"type": "string"
}
},
{
"name": "ids",
"in": "query",
"description": "A list of event identifiers",
"required": true,
"style": "form",
"explode": true,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
],
"responses": {
"200": {
"description": "events for the specified events",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
}
}
},
"400": {
"description": "bad input parameter"
},
"401": {
"description": "Unauthorized",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
}
}
},
"500": {
"description": "Server Error",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
},
"application/json": {
"schema": {
"type": "string"
}
},
"text/json": {
"schema": {
"type": "string"
}
},
"application/xml": {
"schema": {
"type": "string"
}
},
"text/xml": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/api/v1/events/{providerId}/batch": {
"post": {
"tags": [
"EventsApi"
],
"summary": "Create/update a batch of events in the system.",
"description": "Sends the CAD events to all configured destination endpoints.",
"parameters": [
{
"name": "providerId",
"in": "path",
"description": "A provider id for the event.",
"required": true,
"style": "simple",
"explode": false,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "a model containing a batch of event transaction.",
"content": {
"application/json-patch+json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
},
"application/*+json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
},
"application/json": {
"schema": {
"type": "string"
}
},
"text/json": {
"schema": {
"type": "string"
}
},
"application/xml": {
"schema": {
"type": "string"
}
},
"text/xml": {
"schema": {
"type": "string"
}
}
}
},
"204": {
"description": "an empty response."
},
"400": {
"description": "an error response containing the reason."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"500": {
"description": "Internal server error",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
},
"application/json": {
"schema": {
"type": "string"
}
},
"text/json": {
"schema": {
"type": "string"
}
},
"application/xml": {
"schema": {
"type": "string"
}
},
"text/xml": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/api/v1/events/{providerId}": {
"post": {
"tags": [
"EventsApi"
],
"summary": "Create/update an event in the system.",
"description": "Sends the CAD event to all configured destination endpoints.",
"parameters": [
{
"name": "providerId",
"in": "path",
"description": "A provider id for the event.",
"required": true,
"style": "simple",
"explode": false,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "a model containing the event transaction.",
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventModel"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
},
"application/json": {
"schema": {
"type": "string"
}
},
"text/json": {
"schema": {
"type": "string"
}
},
"application/xml": {
"schema": {
"type": "string"
}
},
"text/xml": {
"schema": {
"type": "string"
}
}
}
},
"204": {
"description": "an empty response."
},
"400": {
"description": "an error response containing the reason."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
},
"500": {
"description": "Internal server error",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
},
"application/json": {
"schema": {
"type": "string"
}
},
"text/json": {
"schema": {
"type": "string"
}
},
"application/xml": {
"schema": {
"type": "string"
}
},
"text/xml": {
"schema": {
"type": "string"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Genetec.Cities.Common.Models.AdditionalIdentifierModel": {
"type": "object",
"properties": {
"priority": {
"type": "integer",
"description": "<br />\r\n<br />\r\n<i>Remarks<br />Optional.</i>",
"format": "int32",
"nullable": true
},
"type": {
"maxLength": 256,
"type": "string",
"description": "<br />\r\n<br />\r\n<i>Remarks<br />Optional.</i>",
"nullable": true
},
"value": {
"maxLength": 256,
"type": "string",
"description": "<br />\r\n<br />\r\n<i>Remarks<br />Optional.</i>",
"nullable": true
}
},
"additionalProperties": false,
"description": "Represents any additional potential identifiers that can be used in a case."
},
"Genetec.Cities.Common.Models.LocationModel": {
"type": "object",
"properties": {
"additionalData": {
"type": "array",
"description": "The important information related to the address that does not map to any other properties.<br /><br /><i>Remarks<br />Optional.</i>",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Genetec.Cities.Common.Models.AdditionalIdentifierModel"
}
},
"address": {
"maxLength": 2048,
"type": "string",
"description": "Obsolete.<br /><br />Human readable address of the event.<br />This \"address\" may be a road intersection.<br /><br />Recommended format: [address line 1], [city], [state], [zip code], [country]<br /><br /><i>Remarks<br />It is invalid to provide Address and FullAddress if you do FullAddress will take precedent.</i>",
"nullable": true,
"deprecated": true
},
"addressType": {
"maxLength": 30,
"type": "string",
"description": "The kind of place that is at this address.<br /><br /><i>Remarks<br />Optional.</i><br /><br /><i>Example<br />Home<br />Work<br />Commercial<br />Drug Store<br />Hospital<br />etc.</i>",
"nullable": true
},
"city": {
"maxLength": 85,
"type": "string",
"description": "<br />\r\n<br />\r\n<i>Remarks<br />Optional.</i>\r\n<br />\r\n<br />\r\n<i>Example<br />Montreal<br />Vancouver<br />Main<br />New York<br />Dallas</i>",
"nullable": true
},
"country": {
"maxLength": 56,
"type": "string",
"description": "<br />\r\n<br />\r\n<i>Remarks<br />Optional.</i>\r\n<br />\r\n<br />\r\n<i>Example<br />Canada<br />USA<br />United States of America<br />Mexico</i>",
"nullable": true
},
"county": {
"maxLength": 56,
"type": "string",
"description": "<br />\r\n<br />\r\n<i>Remarks<br />Optional.</i>\r\n<br />\r\n<br />\r\n<i>Example<br />Coffee<br />Dale<br />Hale<br />Pike</i>",
"nullable": true
},
"fullAddress": {
"type": "string",
"description": "Human readable address of the event.<br />This \"address\" may be a road intersection.<br />Either provide the FullAddress or provide values to the other fields in this class but not both.<br /><br />Recommended format: [address line 1], [city], [state], [zip code], [country]<br /><br /><i>Remarks<br />It is invalid to provide Address and FullAddress if you do FullAddress will take precedent.</i>",
"nullable": true
},
"latitude": {
"type": "number",
"description": "Latitude of an event.<br />While this value may be omitted, keep in mind that an internet connection may be unavailable to the system hosting this API. As such, it is recommended to provide this value for the best possible user experience.<br />Either [Latitude + Longitude] or [Address] must be specified.<br />This entire class should be set to null if neither is provided.<br /><br />Critical detail: if your initial information is a coordinate {Latitude, Longitude}, and that the {Address} is derived (reverse-geocoded) from it,<br />then make *sure* to set this {Latitude, Longitude} to the corrected reverse-geocoded coordinates.<br /><br />This value should be between [-90, 90] and will be considered null if outside the range.<br />projection: WGS84 (EPSG 4326)",
"format": "double",
"nullable": true
},
"lineOne": {
"maxLength": 56,
"type": "string",
"description": "The street address.<br /><br /><i>Remarks<br />Optional.</i><br /><br /><i>Example<br />1600 Pennsylvania Avenue<br />350 Fifth Avenue<br />24 Sussex Dr</i>",
"nullable": true
},
"lineTwo": {
"maxLength": 56,
"type": "string",
"description": "Information like the apartment number.<br /><br /><i>Remarks<br />Optional.</i><br /><br /><i>Example<br />apt 03.<br />408</i>",
"nullable": true
},
"longitude": {
"type": "number",
"description": "The longitude of an event.<br />While this value may be omitted, keep in mind that an internet connection may be unavailable to the system hosting this API. As such, it is recommended to provide this value for the best possible user experience.<br />Either [Latitude + Longitude] or [Address] must be specified.<br />This entire class should be set to null if neither is provided.<br /><br />Critical detail: if your initial information is a coordinate {Latitude, Longitude}, and that the {Address} is derived (reverse-geocoded) from it,<br />then make *sure* to set this {Latitude, Longitude} to the corrected reverse-geocoded coordinates.<br /><br />This value should be between [-180, 180] and will be considered null if outside the range.<br />projection: WGS84 (EPSG 4326)",
"format": "double",
"nullable": true
},
"notes": {
"maxLength": 1048576,
"type": "string",
"description": "Notes about the address.<br />This may include anything related to finding the location, such as security codes to unlock doors, and things like '4th floor 2nd window'.<br />May also include directional notes such as 'cave entrance at x,y take the first left'.",
"nullable": true
},
"stateProvince": {
"maxLength": 30,
"type": "string",
"description": "The name of the state, Province, or Territory.<br /><br /><i>Remarks<br />Optional.</i><br /><br /><i>Example<br />CO<br />DC<br />GA<br />MA<br />QC<br />BC<br />NT<br />Nova Scotia<br />Yukon<br />Alaska<br />Northwest Territories<br />New York</i>",
"nullable": true
},
"zip": {
"maxLength": 10,
"type": "string",
"description": "The Zip code for USA addresses or the Postal code for canadian addresses.<br /><br /><i>Remarks<br />Optional.</i><br /><br /><i>Example<br />13732<br />K1M 1M4</i>",
"nullable": true
}
},
"additionalProperties": false,
"description": "Data class for the Location model"
},
"Genetec.Cities.DSS.CAD.Models.AuthorityRole": {
"type": "integer",
"description": "Provides the role of the authority.\r\n\r\nvalues\r\n<ul><li><b>None</b>: No specific role.</li><li><b>Police</b>: Police force.<br />Covers everything that is law enforcement, including SWAT.</li><li><b>Fire</b>: Fire batallions.</li><li><b>Medical</b>: EMS services.</li><li><b>Other</b>: Anything else.</li></ul>",
"format": "int32",
"enum": [
null,
null,
null,
null,
null
]
},
"Genetec.Cities.DSS.CAD.Models.EventCategory": {
"type": "integer",
"description": "Provides the category of an event\r\n\r\nvalues\r\n<ul><li><b>None</b></li><li><b>Alarms</b></li><li><b>Arson</b></li><li><b>Assault</b></li><li><b>Auto</b></li><li><b>Battery</b></li><li><b>Bomb</b></li><li><b>Fire</b></li><li><b>Gambling</b></li><li><b>Gangs</b></li><li><b>Gunshots</b></li><li><b>HazardousMaterials</b></li><li><b>Marine</b></li><li><b>Narcotics</b></li><li><b>Outage</b></li><li><b>Prostitution</b></li><li><b>Robbery</b></li><li><b>SexualAssault</b></li><li><b>Stabbing</b></li><li><b>Suspicious</b></li><li><b>Theft</b></li><li><b>Weapons</b></li><li><b>Medical</b></li><li><b>Mental</b></li><li><b>Inspection</b></li><li><b>Building</b></li><li><b>Tool</b></li><li><b>Swat</b></li><li><b>Other</b></li><li><b>Unknown</b></li></ul>",
"format": "int32",
"enum": [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null
]
},
"Genetec.Cities.DSS.CAD.Models.EventModel": {
"required": [
"authority",
"authorityRole",
"category",
"categoryCode",
"eventId",
"status",
"statusCode",
"transactionDateUtc",
"transactionId"
],
"type": "object",
"properties": {
"authority": {
"minLength": 1,
"type": "string",
"description": "Represents the authority/jurisdiction.<br />This should be an acronym, or a shorthand.<br /><br />Be aware that changing this value (for a given tenantId) requires modifying the Citigraf configuration in order to be shown within Citigraf.<br />You may push data for an existing tenant with an Authority that was not configured for it in Citigraf; the push will succeed but the new Authority will not be shown as a new data source.<br />Clearance and Valcri will not be impacted by this.<br /><br /><i>Example<br />NYPD<br />CPD<br />CFD<br />STLMPD</i>",
"example": "NYPD"
},
"authorityRole": {
"type": "string",
"description": "see Schema <i><b>Genetec.Cities.DSS.CAD.Models.AuthorityRole</b></i><br /><br />Be aware that changing this value (for a given tenant) requires modifying the Citigraf configuration in order to be shown within Citigraf.<br />You may push data for an existing tenant with an Authority that was not configured for it in Citigraf; the push will succeed but the new Authority will not be shown as a new data source.",
"example": "Police",
"enum": [
"None",
"Police",
"Fire",
"Medical",
"Other"
]
},
"eventId": {
"maxLength": 128,
"minLength": 1,
"type": "string",
"description": "Represents the unique identifier of the event (aka RecordNumber).<br />When two entries referencing the same {(implicitly TenantId,) Authority, AuthorityRole, EventId} are sent, it is assumed the event should be updated (with the entry containing the latest TransactionDateUtc).",
"example": "ABCDEFGH-1234567891"
},
"transactionId": {
"maxLength": 128,
"minLength": 1,
"type": "string",
"description": "Represents an identifier for a transaction.<br />This is used for record-keeping to precisely identify which record modified x values.<br />Should be unique per call (for record-keeping purpose).<br />When two entries referencing the same ((implicitly TenantId,) Authority, AuthorityRole, EventId, TransactionId) are sent, they are expected to contain the same content.<br />In such a case, the event will be updated to the last received entry to account for the possibility that the data changed (although it should not occur).<br /><br /><i>Example<br />{\"EventID\":\"00001\", \"TransactionId\":\"00001\", \"Narrative\":null, ...}<br />{\"EventID\":\"00001\", \"TransactionId\":\"00002\", \"Narrative\":\"cardiac arrest\", ...}<br />{\"EventID\":\"00001\", \"TransactionId\":\"00003\", \"Narrative\":\"cardiac arrest, CPR started by onlookers\", ...}<br />{\"EventID\":\"00001\", \"TransactionId\":\"00004\", \"Narrative\":\"cardiac arrest, CPR started by onlookers, ambulance en route\", ...}</i>",
"example": "0001"
},
"transactionDateUtc": {
"type": "string",
"description": "Represents the date of the transaction.<br />Used to allow discarding older transaction for an event received out of order.",
"format": "date-time"
},
"status": {
"type": "string",
"description": "see Schema <i><b>Genetec.Cities.DSS.CAD.Models.EventStatus</b></i><br /><br />Represents the status of the event at the time of the transaction.<br />It is critical to not return Status=Closed until the event is fully closed.<br /><br />note: some CAD providers do not necessarily have a Status per Event/Incident, but do have a Status per vehicle/unit.<br />If such is the case, most important is to check first if the Event is Closed, and return \"Closed\" status if it is,<br />then it is recommended to return the \"highest\" (most progressed) non-\"Closed\" vehicle/unit status out of all your units involved in the event.<br />Keep in mind that you cannot rely entirely on dispatched vehicles/units to determine the Event/Incident Status; cases where no vehicle/units are dispatched,<br />such as a False Alerts, should still work (e.g.; return Closed if event.IsClosed, otherwise Waiting/Acknowledged).<br /><br /><i>e.g.:<br />private EventStatus CalculateEventStatus_PseudoCode(Event _event) {<br />if ( _event.IsClosed )<br />return EventStatus.Closed;<br />return _event.CurrentlyDispatchedUnits<br />.Where ( unit => unit.Status != EventStatus.Closed ) // never return Closed if _event.IsClosed is false<br />.DefaultIfEmpty ( EventStatus.Waiting ) // if there are no results, then return Waiting<br />.Max ( unit => unit.Status );<br />}<br /></i>",
"example": "Waiting",
"enum": [
"Unknown",
"Waiting",
"Acknowledged",
"Dispatched",
"EnRoute",
"OnScene",
"Closed"
]
},
"statusCode": {
"maxLength": 128,
"minLength": 1,
"type": "string",
"description": "Represents the customer-specific status code of the event.<br />This field is used exclusively for display purpose.<br />This field exists over \"Status\" in order to maintain the same terminology the end-user is used to see in the CAD systems.<br />There may be multiple \"StatusCodes\" mapping to one \"Status\".<br />Note that theses are not enforced to any format because all cities/agencies use different classifications.<br /><br /><i>Example<br />StatusCode,StatusCodeDescription<br />UNK,Unknown<br />WAI,Waiting for acknowledgement<br />ACK,Acknowledged<br />DSP,Dispatched<br />ENR,En route<br />ONS,On scene<br />CLS,Closed<br />ATH,At Hospital<br />TOH,To Hospital</i>",
"example": "WAI"
},
"statusCodeDescription": {
"maxLength": 256,
"type": "string",
"description": "Represents the customer-specific description of the status code of the event.<br />This field is used exclusively for display purpose.<br />If you don't know this value, it is better off not copying \"StatusCode\" and just set null to this.<br />This field exists over \"Status\" in order to maintain the same terminology the end-user is used to see in the CAD systems.<br />Note that theses are not enforced to any format because all cities/agencies use different classifications.<br /><br /><i>Example<br />StatusCode,StatusCodeDescription<br />UNK,Unknown<br />WAI,Waiting for acknowledgement<br />ACK,Acknowledged<br />DSP,Dispatched<br />ENR,En route<br />ONS,On scene<br />CLS,Closed<br />ATH,At Hospital<br />TOH,To Hospital</i>",
"nullable": true,
"example": "Waiting"
},
"category": {
"type": "string",
"description": "see Schema <i><b>Genetec.Cities.DSS.CAD.Models.EventCategory</b></i><br /><br />Represents the category of the event.",
"example": "Auto",
"enum": [
"None",
"Alarms",
"Arson",
"Assault",
"Auto",
"Battery",
"Bomb",
"Fire",
"Gambling",
"Gangs",
"Gunshots",
"HazardousMaterials",
"Marine",
"Narcotics",
"Outage",
"Prostitution",
"Robbery",
"SexualAssault",
"Stabbing",
"Suspicious",
"Theft",
"Weapons",
"Medical",
"Mental",
"Inspection",
"Building",
"Tool",
"Swat",
"Other",
"Unknown"
]
},
"categoryCode": {
"maxLength": 128,
"minLength": 1,
"type": "string",
"description": "Represents the customer-specific category code of the event.<br />This field is also specific per-tenant and authority/jurisdiction.<br />This field is used exclusively for display purpose.<br />This field exists over \"Category\" in order to maintain the same terminology the end-user is used to see in the CAD systems.<br />Note that theses are not enforced to any format because all cities/agencies use different classifications.<br /><br /><i>Example<br />CategoryCode,CategoryCodeDescription<br />10-1,10-1<br />AA,Automatic alarm<br />AAHR,Automatic alarm hi rise<br />ABLD,Auto into building<br />AC,AC<br />ARSNIP,Arson in progress<br />ARSNJO,Arson just occured<br />ASLTIP,Assault in progress<br />ASLTJO,Assault just occured<br />ASLTRT,Assault report<br />AT,Auto theft (on view)<br />AUTOPD,Auto accident PD<br />AUTOPI,Auto accident PI<br />AUTORT,Auto theft report<br />BURGIP,Burglary in progress<br />CHLDA,Child abuse<br />CHLDAB,Child abduction<br />K9,K9 request</i>",
"example": "BOMB"
},
"categoryCodeDescription": {
"maxLength": 256,
"type": "string",
"description": "Represents the customer-specific description of the categorycode of the event.<br />This field is also specific per-[tenant and authority/jurisdiction].<br />This field is used exclusively for display purpose.<br />If you don't know this value, it is better not copying \"CategoryCode\" and just set null to this.<br />This field exists over \"Category\" in order to maintain the same terminology the end-user is used to see in the CAD systems.<br />Note that theses are not enforced to any format because all cities/agencies use different classifications.<br /><br /><i>Example<br />CategoryCode,CategoryCodeDescription<br />10-1,10-1<br />AA,Automatic alarm<br />AAHR,Automatic alarm hi rise<br />ABLD,Auto into building<br />AC,AC<br />ARSNIP,Arson in progress<br />ARSNJO,Arson just occured<br />ASLTIP,Assault in progress<br />ASLTJO,Assault just occured<br />ASLTRT,Assault report<br />AT,Auto theft (on view)<br />AUTOPD,Auto accident PD<br />AUTOPI,Auto accident PI<br />AUTORT,Auto theft report<br />BURGIP,Burglary in progress<br />CHLDA,Child abuse<br />CHLDAB,Child abduction<br />K9,K9 request</i>",
"nullable": true,
"example": "Auto Theft BOLO"
},
"name": {
"maxLength": 256,
"type": "string",
"description": "Represents the name of the event, if provided.<br />This value is used for both display purpose, as well as searching.<br />The EventId will be used if the name is not provided.<br />Set to null if the CAD system does not support giving a name to an event.",
"nullable": true,
"example": "ABCDEF-1234567891"
},
"startTimeUtc": {
"type": "string",
"description": "Represents the start time of the event.<br />Set to null if unknown.",
"format": "date-time",
"nullable": true
},
"endTimeUtc": {
"type": "string",
"description": "Represents the end time of the event.<br />Set to null if unknown.<br />If this value is non-null, then StartTimeUtc must also be non-null.<br />If this value is null and StartTimeUtc is non-null, it is assumed the event is currently in-progress/ongoing.",
"format": "date-time",
"nullable": true
},
"narrative": {
"maxLength": 1048576,
"type": "string",
"description": "Represents the narrative/description of the event.<br />ie: logs of what occurred so far.<br /><br />This data should be in text format, so if the source data is HTML, it should be converted into text.<br />This should always contain the latest (edited) information.<br />If you have, for example, a log of all the comments added to an event, then the Narrative should contain the cumulative comments, in reverse chronological order.<br />It is recommended that comments start with a 24H time (HH:mm) in the local timezone and be separated with a NewLine (\\r\\n).<br />NewLines are expected to be in (\\r\\n) format.<br /><br /><i>Example<br />example 1<br />if all comments are distinctively different comments<br />=========<br />\"18:23 ambulance en route<br />18:05 CPR started by onlookers<br />18:02 cardiac arrest\"<br /><br />example 2<br />if the user is editing the same comment repeatedly within the CAD system<br />=========<br />\"18:23 cardiac arrest, CPR started by onlookers, ambulance en route<br />18:05 cardiac arrest, CPR started by onlookers<br />18:02 cardiac arrest\"</i>",
"nullable": true,
"example": "02/18/2022 08:23:03 CREATE\n02/18/2022 08:23:03 LOCPRS\n02/18/2022 08:23:03 ENTRY\n02/18/2022 08:23:03 DISPOS\n02/18/2022 08:23:03 DISPOS\n02/18/2022 08:23:03 DISPOS\n02/18/2022 08:23:03 DISPOS\n02/18/2022 08:23:03 PRIU\n02/18/2022 08:23:03 PREMIS Comment: CE, PHZ, APS, PPR, ECI\n02/18/2022 08:26:58 CLEAR\n02/18/2022 08:27:19 CLEAR"
},
"priority": {
"maxLength": 128,
"type": "string",
"description": "Represents the customer-specific priority of the call.<br />This is generally meant to filter the relevancy of calls.<br />No format is expected as it is a customer-specific value.<br />For example, a Parking Enforcement Officer would not want to be notified of fire alarms. Likewise, a Bomb Squad would not care about traffic violations.<br /><br /><i>Example<br />1<br />5<br />5-A<br />null if N/A</i>",
"nullable": true,
"example": "5"
},
"location": {
"type": "object",
"description": "see Schema <i><b>Genetec.Cities.Common.Models.LocationModel</b></i><br /><br />Represents the initial location of an event.<br />This value may be null.",
"example": {
"Latitude": 45.50874,
"Longitude": -73.55325,
"FullAddress": "280 Notre-Dame St. East, Montreal, Quebec H2Y 1C5, Canada"
}
},
"callerLocation": {
"type": "object",
"description": "see Schema <i><b>Genetec.Cities.Common.Models.LocationModel</b></i><br /><br />Represents the initial location of the caller.<br />This value may be null.",
"example": {
"Latitude": 45.50874,
"Longitude": -73.55325,
"FullAddress": "280 Notre-Dame St. East, Montreal, Quebec H2Y 1C5, Canada"
}
},
"administrativeLevels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Represents the customer-specific administrative levels of an event.<br /><br />Ordering should be listed from highest-level to lowest-level.<br />Display order of the administrative levels will follow the ordering passed here.<br />Make sure the [key] entries are consistent across all events being sent per-[tenant and authority/jurisdiction].<br />eg: for Chicago tenant, all events with Authority=\"CPD\" should have the same list of AdministrativeLevels keys.<br /><br />If possible, specify all relevant data without filtering for \"what should be displayed\"; the displayed fields are configurable.<br /><br />This field is used only for display purposes, as well as searching events.<br /><br /><i>Example<br />[County] = San Diego<br />[City] = Chicago<br />[Area] = Lincoln Park<br />[District] = 014<br />[Neighborhood] = Old Town Triangle<br />[Beat] = 1424<br />[Team] = 110<br />[Region] = Pennridge<br />[Division] = 51<br />[Jurisdiction] = 20<br />[Dispatch group] = DIST1</i>",
"nullable": true,
"example": {
"Beat": "800",
"District": "41"
}
},
"involvedResources": {
"type": "array",
"description": "<i>\r\n <b>Genetec.Cities.DSS.CAD.Models.InvolvedResourceModel[]</b>\r\n</i>\r\n<br />\r\n<br />Represents a list of involved resource (officers, car, etc..)<br />The same resource may have multiple entries if the resource was involved over multiple timespans.<br /><br />This field has been obsoleted; use Resources instead.",
"nullable": true,
"deprecated": true,
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.InvolvedResourceModel"
}
},
"resources": {
"type": "array",
"description": "<i>\r\n <b>Genetec.Cities.DSS.CAD.Models.ResourceModel[]</b>\r\n</i>\r\n<br />\r\n<br />Represents a list of involved resource (officers, car, etc..)",
"nullable": true,
"example": [
{
"Authority": "NYPD",
"AuthorityRole": "Police",
"ResourceId": "vehicle1",
"Type": "Vehicle",
"Name": "A-51",
"StatusLogs": [
{
"TimestampUtc": "2022-06-10T13:50:00.0000000Z",
"Status": "Available"
}
],
"Extended": {
"VehicleType": "Car"
}
},
{
"Authority": "NYPD",
"AuthorityRole": "Police",
"ResourceId": "vehicle2",
"Type": "Vehicle",
"Name": "A-52",
"StatusLogs": [
{
"TimestampUtc": "2022-06-10T13:50:00.0000000Z",
"Status": "Available"
}
],
"Extended": {
"VehicleType": "Car"
}
},
{
"Authority": "NYPD",
"AuthorityRole": "Police",
"ResourceId": "vehicle3",
"Type": "Vehicle",
"Name": "A-53",
"StatusLogs": [
{
"TimestampUtc": "2022-06-10T13:50:00.0000000Z",
"Status": "Available"
}
],
"Extended": {
"VehicleType": "Car"
}
}
],
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.ResourceModel"
}
},
"permissions": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.EventPermission"
},
"description": "Represents an optional dictionary of permission on the event.<br />Any pair of user/group identifier and a permission level can be used.<br />If not set, assumes everyone has full access.<br /><br /><i>Example<br />[bob] = Read</i>",
"nullable": true,
"example": {
"bob": "Read"
}
},
"operator": {
"maxLength": 256,
"type": "string",
"description": "Represents the operator that handles/handled the event.<br />This field is used uniquely for display purposes.<br />Since this information will ultimately be stored, avoid personally identifiable information.<br />A badge number, employee id, or a seat# will do.<br />If you do not want to display this information, then set to null.",
"nullable": true,
"example": "ABC-123"
},
"extended": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Represents additional information extending the model.<br />Avoid storing any personally identifiable information when possible.<br /><br />If possible, specify all relevant data without filtering for \"what should be displayed\"; the displayed fields are configurable.<br /><br /><i>Example<br />[PhoneNumber] = 5145554444<br />[CaseNumbers] = E23423,F2356<br />[InternalId] = 000BADC0DE000N33DC0FFEE</i>",
"nullable": true,
"example": {
"PhoneNumber": "5145554444",
"CaseNumber": "E23423",
"InternalId": "000BADC0DE000N33DC0FFEE"
}
},
"hazards": {
"type": "array",
"description": "Represents any hazards associated with the Event.",
"nullable": true,
"example": [
{
"Address": {
"AdditionalData": [
{
"Type": "Municipality",
"Value": "ABC"
}
],
"AddressType": "House",
"City": "Montreal",
"Country": "Canada",
"County": "A1",
"Latitude": "45.5",
"Longitude": "-73.5",
"LineOne": "1418 Pine Avenue West",
"StateProvince\"": "Quebec",
"Zip": "H3G 1A8"
},
"Details": "OXYGEN TANKS ONSITE\nCHEMICAL DATASHEET HTTP: //FAKESITE.NOAA.GO/chemical/\nCAUTIONARY RESPONSE INFORMATION https: //FAKESITE.noaa.gov/cwaw/OXY.pdf",
"Jurisdiction": "11AA",
"RecordDateUtc": "2022-04-27T19:20:29.630744Z",
"Type": "H",
"PriorityLevel": "High"
}
],
"items": {
"$ref": "#/components/schemas/Genetec.Cities.RMS.Models.HazardModel"
}
}
},
"additionalProperties": false,
"description": "Data class for the Event model"
},
"Genetec.Cities.DSS.CAD.Models.EventPermission": {
"type": "integer",
"description": "Provides the permission level on an event.\r\n\r\nvalues\r\n<ul><li><b>None</b>: The user/group cannot access/list/read/write/modify the record.<br /><br />The user/group will not even know that this record exists.</li><li><b>Read</b>: The user/group can read the record.</li><li><b>Write</b>: The user/group can read and write the record.</li><li><b>Manage</b>: The user/group can read and write and manage permissions on the record.</li></ul>",
"format": "int32",
"enum": [
null,
null,
null,
null
]
},
"Genetec.Cities.DSS.CAD.Models.EventStatus": {
"type": "integer",
"description": "Provides the state of an event\r\n\r\nvalues\r\n<ul><li><b>Unknown</b>: The event status is unknown. Should not happen.</li><li><b>Waiting</b>: The event is waiting for the operator to classify it.<br />The following status should be either \"Acknowledged\" (if units are to be deployed) or \"Closed\".<br />This covers from [event/911 call being made and no operator picked it up yet] to [the operator has classified the event].</li><li><b>Acknowledged</b>: The event has been acknowledged (by the operator) and requires unit(s) dispatched.<br />If the operator judges the call does not require any units to be dispatched (e.g. False Alarms), return \"Closed\" instead.</li><li><b>Dispatched</b>: The event has been dispatched / assigned to 1+ units.</li><li><b>EnRoute</b>: Units are on the way</li><li><b>OnScene</b>: Units are on scene / has arrived</li><li><b>Closed</b>: The event has been closed</li></ul>",
"format": "int32",
"enum": [
null,
null,
null,
null,
null,
null,
null
]
},
"Genetec.Cities.DSS.CAD.Models.InvolvedResourceModel": {
"required": [
"authority",
"authorityRole",
"resourceId",
"type"
],
"type": "object",
"properties": {
"authority": {
"maxLength": 32,
"minLength": 1,
"type": "string",
"description": "Represents the authority/jurisdiction of the resource.<br />This should be an acronym, or a shorthand.<br />This may point to an authority that is not part of the Tenant.<br />For example, say TenantId contains only entries for the Authority \"CPD\", this resource can still point to the Authority \"CFD\" to indicate involvement.<br /><br /><i>Example<br />NYPD<br />CPD<br />CFD<br />STLMPD</i>"
},
"authorityRole": {
"type": "string",
"description": "see Schema <i><b>Genetec.Cities.DSS.CAD.Models.AuthorityRole</b></i><br /><br />Represents the role of the resource.",
"enum": [
"None",
"Police",
"Fire",
"Medical",
"Other"
]
},
"resourceId": {
"maxLength": 1024,
"minLength": 1,
"type": "string",
"description": "Represents the unique identifier {(implicitly TenantId), Authority, AuthorityRole, Type, ResourceId} of the resource.<br />This value is not displayed."
},
"type": {
"type": "string",
"description": "see Schema <i><b>Genetec.Cities.DSS.CAD.Models.ResourceType</b></i><br /><br />Represents the type of resource.",
"enum": [
"None",
"Person",
"Team",
"Vehicle",
"Other"
]
},
"name": {
"maxLength": 1024,
"type": "string",
"description": "Represents the name of the resource.<br />This value is customer-specific.<br />The ResourceId will be used if not provided.<br />Please avoid personally identifiable information.<br /><br /><i>Example<br />Unit 476<br />turret wagon 1<br />command van 1<br />bomb squad 1</i>",
"nullable": true
},
"startTimeUtc": {
"type": "string",
"description": "Represents the start time of the resource in UTC.<br />Set to null if unknown.",
"format": "date-time",
"nullable": true
},
"endTimeUtc": {
"type": "string",
"description": "Represents the end time of the resource in UTC.<br />Set to null if unknown.<br />If this value is non-null, then StartTimeUtc must also be non-null.<br />If this value is null and StartTimeUtc is non-null, it is assumed the resource is currently involved.",
"format": "date-time",
"nullable": true
},
"extended": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Represents additional information extending the model.<br />Avoid storing any personally identifiable information when possible.<br /><br /><i>Example<br />[VehicleType] = Car (other choices: Boat, Helicopter, Train, etc.)<br />[SpokenLanguages] = English, Spanish<br />[WaterCapacity] = 1000 gal<br />[Ladders] = telescopic, ground 36ft</i>",
"nullable": true
}
},
"additionalProperties": false,
"description": "Data class for the Resource model\r\nThis class has been obsoleted; use ResourceModel class instead."
},
"Genetec.Cities.DSS.CAD.Models.ResourceModel": {
"required": [
"authority",
"authorityRole",
"resourceId",
"type"
],
"type": "object",
"properties": {
"authority": {
"maxLength": 32,
"minLength": 1,
"type": "string",
"description": "Represents the authority/jurisdiction of the resource.<br />This should be an acronym, or a shorthand.<br />This may point to an authority that is not part of the Tenant.<br />For example, say TenantId contains only entries for the Authority \"CPD\", this resource can still point to the Authority \"CFD\" to indicate involvement.<br /><br /><i>Example<br />NYPD<br />CPD<br />CFD<br />STLMPD</i>",
"example": "NYPD"
},
"authorityRole": {
"type": "string",
"description": "see Schema <i><b>Genetec.Cities.DSS.CAD.Models.AuthorityRole</b></i><br /><br />Represents the role of the resource.",
"enum": [
"None",
"Police",
"Fire",
"Medical",
"Other"
]
},
"resourceId": {
"maxLength": 1024,
"minLength": 1,
"type": "string",
"description": "Represents the unique identifier {(implicitly TenantId), Authority, AuthorityRole, Type, ResourceId} of the resource.<br />This value is not displayed."
},
"type": {
"type": "string",
"description": "see Schema <i><b>Genetec.Cities.DSS.CAD.Models.ResourceType</b></i><br /><br />Represents the type of resource.",
"enum": [
"None",
"Person",
"Team",
"Vehicle",
"Other"
]
},
"name": {
"maxLength": 1024,
"type": "string",
"description": "Represents the name of the resource.<br />This value is customer-specific.<br />The ResourceId will be used if not provided.<br />Please avoid personally identifiable information.<br /><br /><i>Example<br />Unit 476<br />turret wagon 1<br />command van 1<br />bomb squad 1</i>",
"nullable": true
},
"statusLogs": {
"type": "array",
"description": "<i>\r\n <b>Genetec.Cities.DSS.CAD.Models.ResourceStatusLogModel[]</b>\r\n</i>\r\n<br />\r\n<br />Represents the logs of status changes for the given resource.",
"nullable": true,
"items": {
"$ref": "#/components/schemas/Genetec.Cities.DSS.CAD.Models.ResourceStatusLogModel"
}
},
"extended": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Represents additional information extending the model.<br />Avoid storing any personally identifiable information when possible.<br /><br /><i>Example<br />[VehicleType] = Car (other choices: Boat, Helicopter, Train, etc.)<br />[SpokenLanguages] = English, Spanish<br />[WaterCapacity] = 1000 gal<br />[Ladders] = telescopic, ground 36ft</i>",
"nullable": true
}
},
"additionalProperties": false,
"description": "Data class for the Resource model"
},
"Genetec.Cities.DSS.CAD.Models.ResourceStatus": {
"type": "integer",
"description": "Provides the state of a resource\r\n\r\nvalues\r\n<ul><li><b>Unknown</b>: The resource status is unknown.<br />Default value.</li><li><b>Unavailable</b>: The resource is not available.<br />This could be due to a law enforcement officer responding to another call, a LEO in training, a decommissioned vehicle, etc.</li><li><b>Available</b>: The resource is available to be dispatched.</li><li><b>Dispatched</b>: The resource has been dispatched / assigned, but isn't en-route yet.</li><li><b>EnRoute</b>: The resource is on the way.</li><li><b>OnScene</b>: The resource is on scene / has arrived.</li><li><b>Cleared</b>: The resource is cleared.<br />Indicates the resource has finished responding to an event/CFS.</li></ul>",
"format": "int32",
"enum": [
null,
null,
null,
null,
null,
null,
null
]
},
"Genetec.Cities.DSS.CAD.Models.ResourceStatusLogModel": {
"required": [
"status",
"timestampUtc"
],
"type": "object",
"properties": {
"timestampUtc": {
"type": "string",
"description": "Represents the timestamp in UTC when the resource Status has changed.",
"format": "date-time"
},
"status": {
"type": "string",
"description": "see Schema <i><b>Genetec.Cities.DSS.CAD.Models.ResourceStatus</b></i><br /><br />Represents the status of the resource at the given TimestampUtc.",
"enum": [
"Unknown",
"Unavailable",
"Available",
"Dispatched",
"EnRoute",
"OnScene",
"Cleared"
]
}
},
"additionalProperties": false,
"description": "Data class for the ResourceStatusLog model"
},
"Genetec.Cities.DSS.CAD.Models.ResourceType": {
"type": "integer",
"description": "Provides the type of resource\r\n\r\nvalues\r\n<ul><li><b>None</b>: No specific resource.</li><li><b>Person</b>: A personnel unit.</li><li><b>Team</b>: A group of people.<br /><br /><i>Example<br />police squads, or any group of people working together.</i></li><li><b>Vehicle</b>: A vehicular unit.<br /><br /><i>Example<br />cars, trucks, boats, helicopters, trains, mobile triage, etc.</i></li><li><b>Other</b>: Anything else.</li></ul>",
"format": "int32",
"enum": [
null,
null,
null,
null,
null
]
},
"Genetec.Cities.RMS.Models.HazardModel": {
"required": [
"address",
"recordDateUtc",
"type"
],
"type": "object",
"properties": {
"address": {
"type": "object",
"description": "see Schema <i><b>Genetec.Cities.Common.Models.LocationModel</b></i><br /><br />Represents the address of the hazard."
},
"details": {
"maxLength": 1048576,
"type": "string",
"description": "Represents all important information about this hazard.<br /><br /><i>Remarks<br />Optional.</i>",
"nullable": true
},
"jurisdiction": {
"maxLength": 64,
"type": "string",
"description": "Represents the jurisdiction associated with the hazard.<br /><br /><i>Example<br />SO</i>",
"nullable": true
},
"priorityLevel": {
"type": "string",
"description": "see Schema <i><b>Genetec.Cities.RMS.Models.PriorityLevel</b></i><br /><br />Represents the priority level of a hazard.<br /><br /><i>Remarks<br />Optional.<br />Set to Unknown when not provided.</i>",
"enum": [
"Unknown",
"Low",
"Medium",
"High"
]
},
"recordDateUtc": {
"type": "string",
"description": "Represents the date and time when this hazard was recorded or the last time it was updated.<br /><br /><i>Remarks<br />RecordDateUtc should be in ISO 8601 format.</i>",
"format": "date-time"
},
"type": {
"maxLength": 64,
"minLength": 1,
"type": "string",
"description": "Represents the type of this hazard.<br /><br /><i>Example<br />Chemicals<br />Explosives<br />Gas leak<br />Public Disturbance</i>"
}
},
"additionalProperties": false,
"description": "Represents any hazards about an address. It can be about physical things like chemicals, explosives, etc. or about other risks known at this address like gang violence, etc."
},
"Genetec.Cities.RMS.Models.PriorityLevel": {
"type": "integer",
"description": "Represents the priority level of a hazard.\r\n\r\nvalues\r\n<ul><li><b>Unknown</b>: Represents an unknown priority level.<br />This is the default value when one is not provided.</li><li><b>Low</b>: Represents a low priority level.</li><li><b>Medium</b>: Represents a medium priority level.</li><li><b>High</b>: Represents a high priority level.</li></ul>",
"format": "int32",
"enum": [
null,
null,
null,
null
]
}
},
"securitySchemes": {
"Bearer": {
"type": "apiKey",
"description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
"name": "Authorization",
"in": "header"
}
}
}
}