Vehicle Monitoring API 1.0

Content type
OpenAPI specifications
Product line
Version
1.0
Language
English

Vehicle Monitoring API 1.0

{
  "swagger": "2.0",
  "info": {
    "description": "",
    "version": "v1",
    "title": "Genetec Vehicle monitoring plugin API 1.0"
  },
  "host": "virtserver.swaggerhub.com",
  "basePath": "/GenetecCities/VehicleMonitoring/v1",
  "schemes": [
    "https"
  ],
  "paths": {
    "/v1/configuration/io": {
      "get": {
        "tags": [
          "Configuration"
        ],
        "summary": "Get the bootstrap configuration for the i/o service",
        "operationId": "Configuration_GetIoConfig",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retrieve the bootstrap configuration for the i/o service",
            "schema": {
              "$ref": "#/definitions/InputOutputServiceBootstrapConfig"
            }
          },
          "401": {
            "description": "Invalid or expired bearer token"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          }
        }
      }
    },
    "/v1/configuration/ingest": {
      "get": {
        "tags": [
          "Configuration"
        ],
        "summary": "Get the bootstrap configuration for the ingest service",
        "operationId": "Configuration_GetIngestConfig",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retrieve the bootstrap configuration for the ingest service",
            "schema": {
              "$ref": "#/definitions/IngestServiceBootstrapConfig"
            }
          },
          "401": {
            "description": "Invalid or expired bearer token"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          }
        }
      }
    },
    "/healthz": {
      "get": {
        "tags": [
          "HealthCheck"
        ],
        "summary": "Get the health of the API server",
        "operationId": "HealthCheck_GetHealthZ",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieve the current health of the API server"
          }
        }
      }
    },
    "/v1/ingest/gps": {
      "post": {
        "tags": [
          "Ingest"
        ],
        "summary": "Ingests Genetec gps data.",
        "description": "Note that when submitting XML, the root element should be <GenetecGpsData>",
        "operationId": "Ingest_IngestGpsData",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "gpsData",
            "description": "The JSON or XML Genetec gps data body (use mime type to specify)",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GenetecGpsDataWithNamespace"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Request body is missing"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          }
        }
      }
    },
    "/v1/ingest/nmea": {
      "post": {
        "tags": [
          "Ingest"
        ],
        "summary": "Ingests nmea data.",
        "operationId": "Ingest_IngestNmeaData",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded",
          "text/plain"
        ],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "An nmea data sentence in text/plain format",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Request body is missing"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          }
        }
      }
    },
    "/v1/ingest/taip": {
      "post": {
        "tags": [
          "Ingest"
        ],
        "summary": "Ingests taip data.",
        "operationId": "Ingest_IngestTaipData",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded",
          "text/plain"
        ],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "A taip long navigation – LN sentence in text/plain format",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Request body is missing"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          }
        }
      }
    },
    "/v1/ingest/mixed": {
      "post": {
        "tags": [
          "Ingest"
        ],
        "summary": "Ingests Genetec gps data or metadata.",
        "operationId": "Ingest_IngestMixData",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded",
          "text/plain"
        ],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "An XML Genetec gps or metadata body in text/plain format",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Request body is missing"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          }
        }
      }
    },
    "/v1/ingest/metadata": {
      "post": {
        "tags": [
          "Ingest"
        ],
        "summary": "Ingests Genetec metadata.",
        "description": "Note that when submitting XML, the root element should be <GenetecMetaData>",
        "operationId": "Ingest_IngestMetadata",
        "consumes": [
          "application/json",
          "text/json",
          "application/xml",
          "text/xml",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "metadata",
            "description": "The JSON or XML Genetec metadata body (specify using mime type)",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GenetecMetaDataWithNamespace"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Request body is missing"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          }
        }
      }
    },
    "/v1/Inputs": {
      "post": {
        "tags": [
          "Inputs"
        ],
        "summary": "Sends input states to the system.",
        "operationId": "Inputs_PostInputs",
        "consumes": [
          "application/json",
          "text/json",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "inputsStatus",
            "description": "The status of one or more input pins",
            "required": true,
            "schema": {
              "$ref": "#/definitions/InputsStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Request body is missing"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          }
        }
      }
    },
    "/v1/Templates": {
      "get": {
        "tags": [
          "Templates"
        ],
        "summary": "Gets list of templates that exist in the system.",
        "operationId": "Templates_GetTemplates",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TemplateInfo"
              }
            }
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          }
        }
      },
      "post": {
        "tags": [
          "Templates"
        ],
        "summary": "Adds a new template to the system.",
        "operationId": "Templates_AddTemplate",
        "consumes": [
          "application/json",
          "text/json",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "template",
            "description": "The template to be stored. Note that template info such as timestamps and the ID will be ignored and set as part of the creation process.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TemplateModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/TemplateInfo"
            }
          },
          "400": {
            "description": "Request body is missing"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          },
          "500": {
            "description": "Failure"
          }
        }
      }
    },
    "/v1/Templates/{id}": {
      "get": {
        "tags": [
          "Templates"
        ],
        "summary": "Gets an existing template",
        "operationId": "Templates_GetTemplate",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/TemplateModel"
            }
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          },
          "404": {
            "description": "Not found"
          }
        }
      },
      "put": {
        "tags": [
          "Templates"
        ],
        "summary": "Replaces the template with the given ID with information from the provided template.",
        "operationId": "Templates_ReplaceTemplate",
        "consumes": [
          "application/json",
          "text/json",
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "in": "body",
            "name": "template",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TemplateModel"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/TemplateModel"
            }
          },
          "400": {
            "description": "Template is locked or request body is missing"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          },
          "500": {
            "description": "Failure"
          }
        }
      },
      "delete": {
        "tags": [
          "Templates"
        ],
        "summary": "Deletes an existing template",
        "operationId": "Templates_DeleteTemplate",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Template is locked or request body is missing"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          },
          "500": {
            "description": "Failure"
          }
        }
      },
      "patch": {
        "tags": [
          "Templates"
        ],
        "summary": "Allows locking/unlocking of a template. A locked template cannot be replaced or deleted.",
        "operationId": "Templates_UpdateTemplate",
        "consumes": [],
        "produces": [
          "application/json",
          "text/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid"
          },
          {
            "name": "isLocked",
            "in": "query",
            "required": true,
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Invalid username/password"
          },
          "403": {
            "description": "Missing required Security Center privileges"
          },
          "500": {
            "description": "Failure"
          }
        }
      }
    }
  },
  "definitions": {
    "InputOutputServiceBootstrapConfig": {
      "type": "object",
      "properties": {
        "DevicePinIdsToMonitor": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int32"
          }
        },
        "MessageBrokerClientConfig": {
          "$ref": "#/definitions/MessageBrokerClientConfig"
        },
        "AcceptSelfSignedCerts": {
          "type": "boolean"
        },
        "ConfigurationEndpoint": {
          "type": "string"
        },
        "DataSenderType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "DevicePollIntervalMs": {
          "type": "integer",
          "format": "int32"
        },
        "DeviceType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2
          ]
        },
        "Host": {
          "type": "string"
        },
        "InputsMessageBrokerChannelName": {
          "type": "string"
        },
        "InputsRestEndpoint": {
          "type": "string"
        },
        "IsEnabled": {
          "type": "boolean"
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "UriBasePath": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        },
        "WebSdkHost": {
          "type": "string"
        },
        "WebSdkPort": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "MessageBrokerClientConfig": {
      "type": "object",
      "properties": {
        "AcceptSelfSignedCerts": {
          "type": "boolean"
        },
        "CertificatePassword": {
          "type": "string"
        },
        "CertificatePath": {
          "type": "string"
        },
        "CertificateServerName": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "Username": {
          "type": "string"
        }
      }
    },
    "IngestServiceBootstrapConfig": {
      "type": "object",
      "properties": {
        "MessageBrokerClientConfig": {
          "$ref": "#/definitions/MessageBrokerClientConfig"
        },
        "AcceptSelfSignedCerts": {
          "type": "boolean"
        },
        "ConfigurationEndpoint": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "IsEnabled": {
          "type": "boolean"
        },
        "MessageBrokerChannelName": {
          "type": "string"
        },
        "NmeaConfig": {
          "$ref": "#/definitions/NmeaConfig"
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "ProtocolType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "SerialPortConfig": {
          "$ref": "#/definitions/SerialPortTransportConfig"
        },
        "TaipConfig": {
          "$ref": "#/definitions/TaipConfig"
        },
        "TransportType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "UdpTransportConfig": {
          "$ref": "#/definitions/UdpTransportConfig"
        },
        "UriBasePath": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      }
    },
    "NmeaConfig": {
      "type": "object",
      "properties": {
        "GgaMinimumSatellites": {
          "type": "integer",
          "format": "int32"
        },
        "NmeaVehicleIdLocation": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2
          ]
        }
      }
    },
    "SerialPortTransportConfig": {
      "type": "object",
      "properties": {
        "Baud": {
          "type": "integer",
          "format": "int32"
        },
        "ComPortName": {
          "type": "string"
        },
        "DataBits": {
          "type": "integer",
          "format": "int32"
        },
        "Handshake": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3
          ]
        },
        "Parity": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4
          ]
        },
        "ReadTimeoutMillis": {
          "type": "integer",
          "format": "int32"
        },
        "StopBits": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3
          ]
        },
        "UseDtr": {
          "type": "boolean"
        }
      }
    },
    "TaipConfig": {
      "type": "object",
      "properties": {
        "SourceTimeZone": {
          "type": "object",
          "properties": {}
        }
      }
    },
    "UdpTransportConfig": {
      "type": "object",
      "properties": {
        "BindingType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "ReceiveTimeoutMillis": {
          "type": "integer",
          "format": "int32"
        },
        "SpecificIpAddress": {
          "type": "string"
        }
      }
    },
    "GenetecGpsDataWithNamespace": {
      "type": "object",
      "properties": {
        "GpsDataList": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VehGpsData"
          }
        }
      }
    },
    "VehGpsData": {
      "type": "object",
      "properties": {
        "VehicleId": {
          "type": "string"
        },
        "Timestamp": {
          "type": "string",
          "format": "date-time"
        },
        "Lat": {
          "type": "number",
          "format": "double"
        },
        "Lon": {
          "type": "number",
          "format": "double"
        },
        "SpeedMPS": {
          "type": "number",
          "format": "double"
        },
        "Heading": {
          "type": "number",
          "format": "double"
        },
        "Altitude": {
          "type": "number",
          "format": "double"
        },
        "AccelTimestamp": {
          "type": "string",
          "format": "date-time"
        },
        "AccelX": {
          "type": "number",
          "format": "float"
        },
        "AccelY": {
          "type": "number",
          "format": "float"
        },
        "AccelZ": {
          "type": "number",
          "format": "float"
        }
      }
    },
    "GenetecMetaDataWithNamespace": {
      "type": "object",
      "properties": {
        "VehicleList": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VehicleMetaData"
          }
        }
      }
    },
    "VehicleMetaData": {
      "type": "object",
      "required": [
        "Timestamp",
        "VehicleId"
      ],
      "properties": {
        "MetaDataList": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/MetaData"
          }
        },
        "VehicleId": {
          "type": "string"
        },
        "LogicalId": {
          "type": "integer",
          "format": "int32"
        },
        "Timestamp": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "MetaData": {
      "type": "object",
      "required": [
        "Key",
        "Value"
      ],
      "properties": {
        "Key": {
          "type": "string"
        },
        "Value": {
          "type": "string"
        }
      }
    },
    "InputsStatus": {
      "type": "object",
      "properties": {
        "Inputs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/InputState"
          }
        },
        "TimestampUtc": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "InputState": {
      "type": "object",
      "properties": {
        "Id": {
          "type": "integer",
          "format": "int32"
        },
        "State": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "Type": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        }
      }
    },
    "TemplateInfo": {
      "type": "object",
      "properties": {
        "CreatedTimestampUtc": {
          "type": "string",
          "format": "date-time"
        },
        "Id": {
          "type": "string",
          "format": "uuid",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "IsLocked": {
          "type": "boolean"
        },
        "LastUpdateTimestampUtc": {
          "type": "string",
          "format": "date-time"
        },
        "Name": {
          "type": "string"
        },
        "Version": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "TemplateModel": {
      "type": "object",
      "properties": {
        "AreaMap": {
          "$ref": "#/definitions/AreaMapTemplateModel"
        },
        "CameraTemplate": {
          "$ref": "#/definitions/CameraTemplateModel"
        },
        "GpsPluginTemplate": {
          "$ref": "#/definitions/GpsPluginTemplateModel"
        },
        "GpsUnitAreaHierarchy": {
          "$ref": "#/definitions/AreaNode"
        },
        "GpsUnitParentAreaHierarchy": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "GpsUnitTemplate": {
          "$ref": "#/definitions/GpsUnitTemplateModel"
        },
        "TemplateInfo": {
          "$ref": "#/definitions/TemplateInfo"
        }
      }
    },
    "AreaMapTemplateModel": {
      "type": "object",
      "properties": {
        "AreaMapBase64": {
          "type": "string"
        },
        "OriginalFileExtension": {
          "type": "string"
        },
        "ScaleFactor": {
          "type": "number",
          "format": "double"
        },
        "ZoomLevels": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "CameraTemplateModel": {
      "type": "object",
      "properties": {
        "Cameras": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CameraConfigModel"
          }
        }
      }
    },
    "GpsPluginTemplateModel": {
      "type": "object",
      "properties": {
        "AutoPopulateLocalArchivers": {
          "type": "boolean"
        },
        "AutomaticCreateGpsUnitConfig": {
          "$ref": "#/definitions/ApiAutomaticCreateGpsUnitConfig"
        },
        "ConsiderInputsStaleIfOlderThanThreshold": {
          "type": "boolean"
        },
        "DataLogBaseDirectory": {
          "type": "string"
        },
        "DataLogMaxFileLength": {
          "type": "string"
        },
        "DatabaseCleanupConfig": {
          "$ref": "#/definitions/ApiDatabaseCleanupConfig"
        },
        "DefaultMetadataKeys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApiMetadataConfiguration"
          }
        },
        "FaultDetectionGuardDuration": {
          "type": "string"
        },
        "GeofenceMonitoringConfig": {
          "$ref": "#/definitions/ApiGeofenceMonitoringConfig"
        },
        "GpsStatusReportPageSize": {
          "type": "integer",
          "format": "int32"
        },
        "InputMetadataValueLoggingEnabled": {
          "type": "boolean"
        },
        "InputMetadataValueLoggingIntervalSeconds": {
          "type": "integer",
          "format": "int32"
        },
        "InputOutputServiceConfig": {
          "$ref": "#/definitions/ApiInputOutputServiceConfig"
        },
        "InputsStaleThresholdSeconds": {
          "type": "integer",
          "format": "int32"
        },
        "InstallationType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "IsCorrelationEngineIntegrationEnabled": {
          "type": "boolean"
        },
        "IsDataLoggingEnabled": {
          "type": "boolean"
        },
        "IsGpsDatabaseLoggingEnabled": {
          "type": "boolean"
        },
        "IsHealthMetadataLoggingEnabled": {
          "type": "boolean"
        },
        "IsMetadataDatabaseLoggingEnabled": {
          "type": "boolean"
        },
        "LprReadManagerConfig": {
          "$ref": "#/definitions/ApiLprReadManagerConfig"
        },
        "MessageBrokerClientConfig": {
          "$ref": "#/definitions/ApiMessageBrokerClientConfig"
        },
        "MinimumMetadataEventInterval": {
          "type": "string"
        },
        "PushDataSources": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApiPushDataSourceConfig"
          }
        },
        "RaiseMetadataEventsOnChange": {
          "type": "boolean"
        },
        "RestApiClientConfig": {
          "$ref": "#/definitions/ApiGpsApiClientConfig"
        },
        "RestApiConfig": {
          "$ref": "#/definitions/ApiRestApiConfig"
        },
        "RestDataSources": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApiRestDataSourceConfig"
          }
        }
      }
    },
    "AreaNode": {
      "type": "object",
      "properties": {
        "Children": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AreaNode"
          }
        },
        "Id": {
          "type": "string",
          "format": "uuid",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "Name": {
          "type": "string"
        }
      }
    },
    "GpsUnitTemplateModel": {
      "type": "object",
      "properties": {
        "AccelerometerConfig": {
          "$ref": "#/definitions/ApiAccelerometerConfig"
        },
        "CameraFaultIfNotRecording": {
          "type": "boolean"
        },
        "DataSourceConfig": {
          "$ref": "#/definitions/ApiDataSourceGpsUnitConfig"
        },
        "DisplayUnitConfig": {
          "$ref": "#/definitions/ApiDisplayUnitConfig"
        },
        "DisplayUnitModel": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3
          ]
        },
        "GenericNmeaConfig": {
          "$ref": "#/definitions/ApiGenericNmeaGpsConfig"
        },
        "GpsUnitModel": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4
          ]
        },
        "IcomeraConfig": {
          "$ref": "#/definitions/ApiIcomeraGpsConfig"
        },
        "InputConfigs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApiGpsUnitInputConfig"
          }
        },
        "InputOutputDeviceConfig": {
          "$ref": "#/definitions/ApiInputOutputConfig"
        },
        "InputOutputDeviceModel": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5
          ]
        },
        "InputPollIntervalMillis": {
          "type": "integer",
          "format": "int32"
        },
        "IsAutomaticCreation": {
          "type": "boolean"
        },
        "LocalSystemStatusCheckFrequencySeconds": {
          "type": "integer",
          "format": "int32"
        },
        "OverrideMetadataKeys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApiMetadataConfiguration"
          }
        },
        "PollFrequencySeconds": {
          "type": "integer",
          "format": "int32"
        },
        "RecentAlarmListMaxAge": {
          "type": "string"
        },
        "RecentAlarmListMaxSize": {
          "type": "integer",
          "format": "int32"
        },
        "SafetyVisionConfig": {
          "$ref": "#/definitions/ApiSafetyVisionGpsConfig"
        },
        "SimulationMode": {
          "type": "boolean"
        },
        "SimulationTrack": {
          "type": "string"
        },
        "StaleLocationAgeSeconds": {
          "type": "integer",
          "format": "int32"
        },
        "UseDefaultMetadataKeys": {
          "type": "boolean"
        },
        "VehicleId": {
          "type": "string"
        },
        "VideoOverlayConfig": {
          "$ref": "#/definitions/ApiVideoOverlayConfig"
        },
        "WifiMonitoringConfig": {
          "$ref": "#/definitions/ApiWifiMonitoringConfig"
        }
      }
    },
    "CameraConfigModel": {
      "type": "object",
      "properties": {
        "AreaId": {
          "type": "string",
          "format": "uuid",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "CameraName": {
          "type": "string"
        },
        "MapObjectConfig": {
          "$ref": "#/definitions/CameraMapObjectConfig"
        },
        "VideoUnitConfig": {
          "$ref": "#/definitions/VideoUnitConfig"
        }
      }
    },
    "ApiAutomaticCreateGpsUnitConfig": {
      "type": "object",
      "properties": {
        "AreaId": {
          "type": "string",
          "format": "uuid",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "AutoCreateEnabled": {
          "type": "boolean"
        },
        "AutoDeleteAfterInactivityTimeSpan": {
          "type": "string"
        },
        "AutoDeleteEnabled": {
          "type": "boolean"
        },
        "TemplateGpsUnitId": {
          "type": "string",
          "format": "uuid",
          "example": "00000000-0000-0000-0000-000000000000"
        }
      }
    },
    "ApiDatabaseCleanupConfig": {
      "type": "object",
      "properties": {
        "DbCleanupBatchDelayMillis": {
          "type": "integer",
          "format": "int32"
        },
        "DbCleanupBatchSize": {
          "type": "integer",
          "format": "int32"
        },
        "IsEnabled": {
          "type": "boolean"
        }
      }
    },
    "ApiMetadataConfiguration": {
      "type": "object",
      "properties": {
        "BookmarkVideo": {
          "type": "boolean"
        },
        "MetadataKey": {
          "type": "string"
        },
        "PerformActionsOnlyOnChange": {
          "type": "boolean"
        },
        "ProtectVideo": {
          "type": "boolean"
        },
        "ProtectVideoAfterSeconds": {
          "type": "integer",
          "format": "int32"
        },
        "ProtectVideoBeforeSeconds": {
          "type": "integer",
          "format": "int32"
        },
        "ProtectVideoDurationDays": {
          "type": "integer",
          "format": "int32"
        },
        "ProtectVideoForever": {
          "type": "boolean"
        },
        "RaiseEvent": {
          "type": "boolean"
        },
        "Triggers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApiMetadataTriggerConfiguration"
          }
        }
      }
    },
    "ApiGeofenceMonitoringConfig": {
      "type": "object",
      "properties": {
        "RestApiClientConfig": {
          "$ref": "#/definitions/RestApiClientConfig"
        },
        "Enabled": {
          "type": "boolean"
        },
        "GeofenceBase64": {
          "type": "string"
        },
        "GeofenceFilePath": {
          "type": "string"
        },
        "GeofenceProviderType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        }
      }
    },
    "ApiInputOutputServiceConfig": {
      "type": "object",
      "properties": {
        "AcceptSelfSignedCerts": {
          "type": "boolean"
        },
        "DataSenderType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "DevicePollIntervalMs": {
          "type": "integer",
          "format": "int32"
        },
        "DeviceType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2
          ]
        },
        "InputsMessageBrokerChannelName": {
          "type": "string"
        },
        "IsEnabled": {
          "type": "boolean"
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "UriBasePath": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        },
        "WebSdkHost": {
          "type": "string"
        },
        "WebSdkPort": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ApiLprReadManagerConfig": {
      "type": "object",
      "properties": {
        "IsGeofenceRequired": {
          "type": "boolean"
        },
        "IsLprReadEnabled": {
          "type": "boolean"
        }
      }
    },
    "ApiMessageBrokerClientConfig": {
      "type": "object",
      "properties": {
        "AcceptSelfSignedCerts": {
          "type": "boolean"
        },
        "CertificatePassword": {
          "type": "string"
        },
        "CertificatePath": {
          "type": "string"
        },
        "CertificateServerName": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "Username": {
          "type": "string"
        }
      }
    },
    "ApiPushDataSourceConfig": {
      "type": "object",
      "properties": {
        "DataSourceName": {
          "type": "string"
        },
        "DataSourceType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2
          ]
        },
        "Enabled": {
          "type": "boolean"
        },
        "Guid": {
          "type": "string",
          "format": "uuid",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "MqttPushDataSourceConfig": {
          "$ref": "#/definitions/ApiMqttPushDataSourceConfig"
        },
        "RestEndpointDataSourceConfig": {
          "$ref": "#/definitions/ApiRestEndpointDataSourceConfig"
        },
        "SocketPushDataSourceConfig": {
          "$ref": "#/definitions/ApiSocketPushDataSourceConfig"
        }
      }
    },
    "ApiGpsApiClientConfig": {
      "type": "object",
      "properties": {
        "AcceptSelfSignedCertificates": {
          "type": "boolean"
        },
        "ApiVersion": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "UriBase": {
          "type": "string"
        },
        "UserName": {
          "type": "string"
        }
      }
    },
    "ApiRestApiConfig": {
      "type": "object",
      "properties": {
        "IsEnabled": {
          "type": "boolean"
        },
        "NmeaVehicleIdPosition": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2
          ]
        },
        "RestApiPort": {
          "type": "integer",
          "format": "int32"
        },
        "TaipIngestSourceTimeZone": {
          "type": "object",
          "properties": {}
        },
        "UriBasePath": {
          "type": "string"
        },
        "WebSdkAllowSelfSignedCert": {
          "type": "boolean"
        },
        "WebSdkHost": {
          "type": "string"
        },
        "WebSdkPort": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ApiRestDataSourceConfig": {
      "type": "object",
      "properties": {
        "DataSourceName": {
          "type": "string"
        },
        "DubaiPolice": {
          "$ref": "#/definitions/ApiDubaiPoliceRestDataSourceConfig"
        },
        "Enabled": {
          "type": "boolean"
        },
        "GeoTab": {
          "$ref": "#/definitions/ApiGeoTabDataSourceConfig"
        },
        "Guid": {
          "type": "string",
          "format": "uuid",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "PollIntervalSeconds": {
          "type": "integer",
          "format": "int32"
        },
        "RestDataFormat": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2
          ]
        },
        "RestEndpointUrl": {
          "type": "string"
        }
      }
    },
    "ApiAccelerometerConfig": {
      "type": "object",
      "properties": {
        "AccelerometerModel": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4
          ]
        },
        "AccelXHighThreshold": {
          "type": "number",
          "format": "double"
        },
        "AccelXLowThreshold": {
          "type": "number",
          "format": "double"
        },
        "AccelYHighThreshold": {
          "type": "number",
          "format": "double"
        },
        "AccelYLowThreshold": {
          "type": "number",
          "format": "double"
        },
        "AccelZHighThreshold": {
          "type": "number",
          "format": "double"
        },
        "AccelZLowThreshold": {
          "type": "number",
          "format": "double"
        },
        "AxiomtekAccelConfig": {
          "$ref": "#/definitions/ApiAxiomtekAccelConfig"
        },
        "RaiseAccelXHighThresholdEvent": {
          "type": "boolean"
        },
        "RaiseAccelXLowThresholdEvent": {
          "type": "boolean"
        },
        "RaiseAccelYHighThresholdEvent": {
          "type": "boolean"
        },
        "RaiseAccelYLowThresholdEvent": {
          "type": "boolean"
        },
        "RaiseAccelZHighThresholdEvent": {
          "type": "boolean"
        },
        "RaiseAccelZLowThresholdEvent": {
          "type": "boolean"
        }
      }
    },
    "ApiDataSourceGpsUnitConfig": {
      "type": "object",
      "properties": {
        "CurrentDataMaxAgeMinutes": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ApiDisplayUnitConfig": {
      "type": "object",
      "properties": {
        "DisplayUnitRevertToHomePageTimeoutSec": {
          "type": "integer",
          "format": "int32"
        },
        "EmergencyButtonMessage": {
          "type": "string"
        },
        "RaiseEmergencyButtonEvent": {
          "type": "boolean"
        },
        "ShowEmergencyButtonMessage": {
          "type": "boolean"
        }
      }
    },
    "ApiGenericNmeaGpsConfig": {
      "type": "object",
      "properties": {
        "Baud": {
          "type": "integer",
          "format": "int32"
        },
        "ComPortName": {
          "type": "string"
        },
        "ConnectionRetrySeconds": {
          "type": "integer",
          "format": "int32"
        },
        "DataBits": {
          "type": "integer",
          "format": "int32"
        },
        "Handshake": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3
          ]
        },
        "MinimumSatellites": {
          "type": "integer",
          "format": "int32"
        },
        "Parity": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4
          ]
        },
        "ReadTimeoutMillis": {
          "type": "integer",
          "format": "int32"
        },
        "StopBits": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3
          ]
        },
        "UseDtr": {
          "type": "boolean"
        }
      }
    },
    "ApiIcomeraGpsConfig": {
      "type": "object",
      "properties": {
        "ConnectivityUrl": {
          "type": "string"
        },
        "PositionUrl": {
          "type": "string"
        }
      }
    },
    "ApiGpsUnitInputConfig": {
      "type": "object",
      "properties": {
        "Description": {
          "type": "string"
        },
        "Id": {
          "type": "integer",
          "format": "int32"
        },
        "InputType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "IsIdDuplicate": {
          "type": "boolean"
        },
        "AnalogConfig": {
          "$ref": "#/definitions/ApiGpsUnitAnalogInputConfig"
        },
        "DiscreteConfig": {
          "$ref": "#/definitions/ApiGpsUnitDiscreteInputConfig"
        }
      }
    },
    "ApiInputOutputConfig": {
      "type": "object"
    },
    "ApiSafetyVisionGpsConfig": {
      "type": "object",
      "properties": {
        "FilePath": {
          "type": "string"
        }
      }
    },
    "ApiVideoOverlayConfig": {
      "type": "object",
      "properties": {
        "Color": {
          "type": "string"
        },
        "IsEnabled": {
          "type": "boolean"
        },
        "Opacity": {
          "type": "integer",
          "format": "int32"
        },
        "OverlayIdentifier": {
          "type": "string",
          "readOnly": true
        },
        "VideoOverlayPosition": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3
          ]
        },
        "Size": {
          "type": "integer",
          "format": "int32"
        },
        "TextOverlay": {
          "type": "string"
        },
        "VideoOverlayFontSize": {
          "type": "integer",
          "format": "int32",
          "enum": [
            20,
            40,
            60,
            80,
            100
          ]
        }
      }
    },
    "ApiWifiMonitoringConfig": {
      "type": "object",
      "properties": {
        "CradlePointWifiConfig": {
          "$ref": "#/definitions/ApiCradlePointWifiConfig"
        },
        "MetadataWifiMonitoringConfig": {
          "$ref": "#/definitions/ApiMetadataWifiMonitoringConfig"
        },
        "MonitorWifiConnection": {
          "type": "boolean"
        },
        "MonitorWifiIntervalMillis": {
          "type": "integer",
          "format": "int32"
        },
        "RaiseWifiConnectedEvent": {
          "type": "boolean"
        },
        "RaiseWifiDisconnectedEvent": {
          "type": "boolean"
        },
        "RepeatWifiConnectedEventWhileConnected": {
          "type": "boolean"
        },
        "SnmpWifiConfig": {
          "$ref": "#/definitions/ApiSnmpWifiMonitoringConfig"
        },
        "WifiConnectionMonitoringType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3
          ]
        }
      }
    },
    "CameraMapObjectConfig": {
      "type": "object",
      "properties": {
        "AngleOfView": {
          "type": "number",
          "format": "double"
        },
        "Altitude": {
          "type": "number",
          "format": "double"
        },
        "Distance": {
          "type": "number",
          "format": "double"
        },
        "HardwareOffset": {
          "type": "number",
          "format": "double"
        },
        "IsReversed": {
          "type": "boolean"
        },
        "Latitude": {
          "type": "number",
          "format": "double"
        },
        "LayerId": {
          "type": "string",
          "format": "uuid",
          "example": "00000000-0000-0000-0000-000000000000"
        },
        "Longitude": {
          "type": "number",
          "format": "double"
        },
        "MaxDistance": {
          "type": "number",
          "format": "double"
        },
        "Offset": {
          "type": "number",
          "format": "double"
        },
        "RelativeHeight": {
          "type": "number",
          "format": "double"
        },
        "RelativeWidth": {
          "type": "number",
          "format": "double"
        },
        "Rotation": {
          "type": "number",
          "format": "double"
        },
        "ShowFieldOfView": {
          "type": "boolean"
        },
        "ZIndex": {
          "type": "integer",
          "format": "int32"
        },
        "Zoom": {
          "type": "number",
          "format": "double"
        }
      }
    },
    "VideoUnitConfig": {
      "type": "object",
      "properties": {
        "CommandPort": {
          "type": "integer",
          "format": "int32"
        },
        "DiscoveryPort": {
          "type": "integer",
          "format": "int32"
        },
        "HardwareVersion": {
          "type": "string"
        },
        "IpAddress": {
          "type": "string"
        },
        "Manufacturer": {
          "type": "string"
        },
        "Model": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "UseDefaultLogon": {
          "type": "boolean"
        },
        "Username": {
          "type": "string"
        }
      }
    },
    "ApiMetadataTriggerConfiguration": {
      "type": "object",
      "properties": {
        "NumericCompareValue1": {
          "type": "number",
          "format": "double"
        },
        "NumericCompareValue2": {
          "type": "number",
          "format": "double"
        },
        "NumericComparison": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5,
            6
          ]
        },
        "Regex": {
          "type": "string"
        },
        "TriggerType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        }
      }
    },
    "RestApiClientConfig": {
      "type": "object",
      "properties": {
        "AcceptSelfSignedCertificates": {
          "type": "boolean"
        },
        "GeofencePollingInterval": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Password": {
          "type": "string"
        },
        "PasswordForTemplate": {
          "type": "string",
          "readOnly": true
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "UriBase": {
          "type": "string"
        },
        "UserName": {
          "type": "string"
        }
      }
    },
    "ApiMqttPushDataSourceConfig": {
      "type": "object",
      "properties": {
        "AllowSelfSignedCerts": {
          "type": "boolean"
        },
        "DataInputType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "DataType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5,
            6
          ]
        },
        "IpAddress": {
          "type": "string"
        },
        "NmeaVehicleIdPosition": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2
          ]
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "SourceTimeZone": {
          "type": "object",
          "properties": {}
        },
        "SslProtocol": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4
          ]
        },
        "Topic": {
          "type": "string"
        },
        "TrustedCertRegEx": {
          "type": "string"
        },
        "Username": {
          "type": "string"
        }
      }
    },
    "ApiRestEndpointDataSourceConfig": {
      "type": "object",
      "properties": {
        "AuthenticationHostname": {
          "type": "string"
        },
        "AuthenticationPort": {
          "type": "integer",
          "format": "int32"
        },
        "Endpoints": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApiEndpointConfig"
          }
        },
        "IsHttps": {
          "type": "boolean"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "RequireAuthentication": {
          "type": "boolean"
        }
      }
    },
    "ApiSocketPushDataSourceConfig": {
      "type": "object",
      "properties": {
        "DataInputType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        },
        "DataType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5,
            6
          ]
        },
        "IpAddress": {
          "type": "string"
        },
        "NmeaVehicleIdPosition": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2
          ]
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "ReceiveTimeoutMillis": {
          "type": "integer",
          "format": "int32"
        },
        "SourceTimeZone": {
          "type": "object",
          "properties": {}
        }
      }
    },
    "ApiDubaiPoliceRestDataSourceConfig": {
      "type": "object",
      "properties": {
        "ColorMapping": {
          "$ref": "#/definitions/ApiDubaiPoliceRestDataSourceConfig_ColorMapping"
        }
      }
    },
    "ApiGeoTabDataSourceConfig": {
      "type": "object",
      "properties": {
        "AuthConfig": {
          "$ref": "#/definitions/ApiGeotabAuthConfig"
        },
        "LogRecordFeedConfig": {
          "$ref": "#/definitions/ApiLogRecordFeedConfig"
        },
        "TimeoutSecondsForMyGeotabTasks": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ApiAxiomtekAccelConfig": {
      "type": "object",
      "properties": {
        "Baud": {
          "type": "integer",
          "format": "int32"
        },
        "ComPortName": {
          "type": "string"
        },
        "DataBits": {
          "type": "integer",
          "format": "int32"
        },
        "Handshake": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3
          ]
        },
        "Parity": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4
          ]
        },
        "StopBits": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3
          ]
        }
      }
    },
    "ApiGpsUnitAnalogInputConfig": {
      "type": "object",
      "properties": {
        "HighEventThreshold": {
          "type": "number",
          "format": "double"
        },
        "LowEventThreshold": {
          "type": "number",
          "format": "double"
        },
        "RaiseHighThresholdEvent": {
          "type": "boolean"
        },
        "RaiseLowThresholdEvent": {
          "type": "boolean"
        }
      }
    },
    "ApiGpsUnitDiscreteInputConfig": {
      "type": "object",
      "properties": {
        "InvertState": {
          "type": "boolean"
        },
        "RaiseInputActivatedEvent": {
          "type": "boolean"
        },
        "RaiseInputDeactivatedEvent": {
          "type": "boolean"
        }
      }
    },
    "ApiCradlePointWifiConfig": {
      "type": "object",
      "properties": {
        "AcceptableSsids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "Endpoint": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "IsHttps": {
          "type": "boolean"
        },
        "Password": {
          "type": "string"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "TrustCertsRegex": {
          "type": "string"
        },
        "TrustSelfSignedCerts": {
          "type": "boolean"
        },
        "Username": {
          "type": "string"
        }
      }
    },
    "ApiMetadataWifiMonitoringConfig": {
      "type": "object",
      "properties": {
        "MetadataMatchRules": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApiMetadataBoolConfig"
          }
        },
        "Operator": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1
          ]
        }
      }
    },
    "ApiSnmpWifiMonitoringConfig": {
      "type": "object",
      "properties": {
        "AcceptableSsidList": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "Community": {
          "type": "string"
        },
        "Host": {
          "type": "string"
        },
        "Port": {
          "type": "integer",
          "format": "int32"
        },
        "SnmpVersion": {
          "type": "integer",
          "format": "int32"
        },
        "TableElementOid": {
          "type": "string"
        },
        "TableOid": {
          "type": "string"
        },
        "TimeoutMillis": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ApiEndpointConfig": {
      "type": "object",
      "properties": {
        "DataType": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5,
            6
          ]
        },
        "SourceTimeZone": {
          "type": "object",
          "properties": {}
        },
        "UriPath": {
          "type": "string"
        }
      }
    },
    "ApiGeotabAuthConfig": {
      "type": "object",
      "properties": {
        "Database": {
          "type": "string"
        },
        "Password": {
          "type": "string"
        },
        "Server": {
          "type": "string"
        },
        "User": {
          "type": "string"
        }
      }
    },
    "ApiLogRecordFeedConfig": {
      "type": "object",
      "properties": {
        "EnableLogRecordFeed": {
          "type": "boolean"
        },
        "FeedStartOption": {
          "type": "integer",
          "format": "int32",
          "enum": [
            0,
            1,
            2
          ]
        },
        "FeedStartSpecificTimeUtc": {
          "type": "string",
          "format": "date-time"
        },
        "LogRecordFeedIntervalSeconds": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "ApiMetadataBoolConfig": {
      "type": "object",
      "properties": {
        "FalseValue": {
          "type": "string"
        },
        "Key": {
          "type": "string"
        },
        "TrueValue": {
          "type": "string"
        }
      }
    },
    "ApiDubaiPoliceRestDataSourceConfig_ColorMapping": {
      "type": "object",
      "properties": {
        "OffDuty": {
          "type": "string"
        },
        "Enroute": {
          "type": "string"
        },
        "AtLocation": {
          "type": "string"
        },
        "InStation": {
          "type": "string"
        },
        "BookedByCall": {
          "type": "string"
        },
        "Ready": {
          "type": "string"
        },
        "ToLocation": {
          "type": "string"
        },
        "Informed": {
          "type": "string"
        },
        "ReachedToLoc": {
          "type": "string"
        },
        "ReadyInStation": {
          "type": "string"
        },
        "Offline": {
          "type": "string"
        },
        "Online": {
          "type": "string"
        },
        "Reached": {
          "type": "string"
        },
        "Pause": {
          "type": "string"
        },
        "Unknown": {
          "type": "string"
        }
      }
    }
  }
}