{ "openapi": "3.0.1", "info": { "title": "INRIX Analytics Webservice Template API", "description": "Webservice template to stand up webservices on IQ Backend" }, "tags": [ { "name": "Namespace Management", "description": "APIs for managing intersection namespace subscriptions" } ], "paths": { "/v1/metrics/intersections/availability": { "get": { "operationId": "intersectionAvailability", "parameters": [ { "name": "startDate", "in": "query", "schema": { "type": "string" } }, { "name": "endDate", "in": "query", "schema": { "type": "string" } }, { "name": "intersectionOutputMode", "in": "query", "schema": { "type": "string" } }, { "name": "namespaces", "in": "query", "schema": { "type": "string" } }, { "name": "travelTimeType", "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/UasPrincipalRequired" } } } }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PostMetricResponse" } } } } }, "security": [ { "Bearer Token": [] } ] } }, "/v1/metadata/intersections": { "post": { "operationId": "intersectionMetadata", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/IntersectionMetadataRequest" } } } }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PostMetadataResponse" } } } } }, "security": [ { "Bearer Token": [] } ] } }, "/v1/metrics/intersections": { "post": { "operationId": "intersectionMetrics", "requestBody": { "content": { "*/*": { "schema": { "$ref": "#/components/schemas/MetricRequest" } } } }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PostMetricResponse" } } } } }, "security": [ { "Bearer Token": [] } ] } }, "/v1/namespace/{namespace}": { "delete": { "tags": [ "Namespace Management" ], "summary": "Delete namespace", "description": "Delete a namespace and all its intersection subscription data", "operationId": "deleteNamespace", "parameters": [ { "name": "namespace", "in": "path", "description": "Namespace identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Namespace deleted successfully" }, "400": { "description": "Bad request - invalid namespace" }, "401": { "description": "Unauthorized - invalid or missing token" }, "404": { "description": "Namespace not found" }, "500": { "description": "Internal server error" } }, "security": [ { "Bearer Token": [] } ] }, "patch": { "tags": [ "Namespace Management" ], "summary": "Update namespace", "description": "Update intersection subscription status for a specific namespace", "operationId": "updateNamespace", "parameters": [ { "name": "namespace", "in": "path", "description": "Namespace identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Update request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespaceUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful update", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespaceUpdateResponse" } } } }, "400": { "description": "Bad request - invalid parameters" }, "401": { "description": "Unauthorized - invalid or missing token" }, "500": { "description": "Internal server error" } }, "security": [ { "Bearer Token": [] } ] } }, "/v1/namespace/search": { "post": { "tags": [ "Namespace Management" ], "summary": "Search namespaces", "description": "Search for intersection subscription status across multiple namespaces", "operationId": "searchNamespaces", "requestBody": { "description": "Search request body", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespaceSearchRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespaceSearchResponse" } } } }, "400": { "description": "Bad request - invalid parameters" }, "401": { "description": "Unauthorized - invalid or missing token" }, "500": { "description": "Internal server error" } }, "security": [ { "Bearer Token": [] } ] } } }, "components": { "schemas": { "ColumnHeader": { "type": "object", "properties": { "dimensionHeaderEntries": { "type": "array", "items": { "$ref": "#/components/schemas/ColumnHeaderEntry" } }, "metricHeaderEntries": { "type": "array", "items": { "$ref": "#/components/schemas/ColumnHeaderEntry" } } } }, "ColumnHeaderEntry": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "type": "string" } } }, "MetricData": { "type": "object", "properties": { "nextCursor": { "type": "object", "additionalProperties": { "type": "string" } }, "columnHeader": { "$ref": "#/components/schemas/ColumnHeader" }, "rows": { "type": "array", "items": { "type": "array", "items": { "type": "string" } } } } }, "PostMetricResponse": { "type": "object", "properties": { "createdDate": { "type": "string" }, "responseId": { "type": "string" }, "data": { "$ref": "#/components/schemas/MetricData" } } }, "UasPrincipalRequired": { "type": "object", "properties": { "accessToken": { "type": "string" }, "userId": { "type": "string", "format": "uuid" }, "appId": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "anonymous": { "type": "boolean" } } }, "Crs": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "name", "link" ] }, "properties": { "type": "object", "additionalProperties": { "type": "object" } } } }, "DateRange": { "type": "object", "properties": { "startDate": { "type": "string", "format": "date" }, "endDate": { "type": "string", "format": "date" } } }, "Feature": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GeoJsonObject" }, { "type": "object", "properties": { "properties": { "type": "object", "additionalProperties": { "type": "object" } }, "geometry": { "$ref": "#/components/schemas/GeoJsonObject" }, "id": { "type": "string" } } } ] }, "FeatureCollection": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GeoJsonObject" }, { "type": "object", "properties": { "features": { "type": "array", "items": { "$ref": "#/components/schemas/Feature" } } } } ] }, "FieldName": { "type": "object", "properties": { "name": { "type": "string" } } }, "Filter": { "type": "object", "properties": { "name": { "type": "string" }, "operator": { "type": "string" }, "not": { "type": "boolean" }, "expressions": { "type": "array", "items": { "type": "string" } } } }, "GeoJsonObject": { "required": [ "type" ], "type": "object", "properties": { "crs": { "$ref": "#/components/schemas/Crs" }, "bbox": { "type": "array", "items": { "type": "number", "format": "double" } }, "type": { "type": "string" } }, "discriminator": { "propertyName": "type" } }, "GeoObjectWithRadius": { "type": "object", "properties": { "geometry": { "$ref": "#/components/schemas/GeoJsonObject" }, "radiusInMeters": { "type": "integer", "format": "int32" } } }, "GeometryCollection": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GeoJsonObject" }, { "type": "object", "properties": { "geometries": { "type": "array", "items": { "$ref": "#/components/schemas/GeoJsonObject" } } } } ] }, "IntersectionMetadataRequest": { "type": "object", "properties": { "nextCursor": { "type": "object", "additionalProperties": { "type": "string" } }, "offset": { "type": "integer", "format": "int32" }, "pageSize": { "type": "integer", "format": "int32" }, "dateRanges": { "type": "array", "items": { "$ref": "#/components/schemas/DateRange" } }, "geometry": { "$ref": "#/components/schemas/GeoJsonObject" }, "fields": { "type": "array", "items": { "$ref": "#/components/schemas/FieldName" } }, "fieldFilters": { "type": "array", "items": { "$ref": "#/components/schemas/Filter" } }, "metadata": { "$ref": "#/components/schemas/Metadata" }, "locations": { "type": "array", "items": { "$ref": "#/components/schemas/GeoObjectWithRadius" } }, "includeGeometry": { "type": "boolean" }, "includeMovements": { "type": "boolean" }, "maxRank": { "type": "integer", "format": "int32" } } }, "LineString": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GeoJsonObject" }, { "type": "object", "properties": { "coordinates": { "type": "array", "items": { "$ref": "#/components/schemas/LngLatAlt" } } } } ] }, "LngLatAlt": { "type": "object", "properties": { "longitude": { "type": "number", "format": "double" }, "latitude": { "type": "number", "format": "double" }, "altitude": { "type": "number", "format": "double" }, "additionalElements": { "type": "array", "items": { "type": "number", "format": "double" } } } }, "Location": { "type": "object", "properties": { "country": { "type": "string" }, "state": { "type": "string" } } }, "Metadata": { "type": "object", "properties": { "key": { "type": "string" }, "value": { "type": "object" }, "valueList": { "type": "boolean" } } }, "MultiLineString": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GeoJsonObject" }, { "type": "object", "properties": { "coordinates": { "type": "array", "items": { "type": "array", "items": { "$ref": "#/components/schemas/LngLatAlt" } } } } } ] }, "MultiPoint": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GeoJsonObject" }, { "type": "object", "properties": { "coordinates": { "type": "array", "items": { "$ref": "#/components/schemas/LngLatAlt" } } } } ] }, "MultiPolygon": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GeoJsonObject" }, { "type": "object", "properties": { "coordinates": { "type": "array", "items": { "type": "array", "items": { "type": "array", "items": { "$ref": "#/components/schemas/LngLatAlt" } } } } } } ] }, "Point": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GeoJsonObject" }, { "type": "object", "properties": { "coordinates": { "$ref": "#/components/schemas/LngLatAlt" } } } ] }, "Polygon": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/GeoJsonObject" }, { "type": "object", "properties": { "coordinates": { "type": "array", "items": { "type": "array", "items": { "$ref": "#/components/schemas/LngLatAlt" } } } } } ] }, "CoordinateResponseItem": { "type": "object", "properties": { "lat": { "type": "number", "format": "double" }, "lon": { "type": "number", "format": "double" } } }, "Direction": { "type": "object", "properties": { "name": { "type": "string" }, "direction": { "type": "string" }, "altName": { "type": "array", "items": { "type": "string" } }, "heading": { "type": "integer", "format": "int32" }, "geometry": { "$ref": "#/components/schemas/Geometry" } } }, "Geometry": { "type": "object", "properties": { "type": { "type": "string" }, "coordinates": { "type": "array", "items": { "type": "array", "items": { "type": "number", "format": "double" } } } } }, "LocationResponseItem": { "type": "object", "properties": { "region": { "type": "string" }, "country": { "type": "string" }, "state": { "type": "string" }, "mapVersion": { "type": "string" } } }, "MetadataResponseItem": { "type": "object", "properties": { "intersectionId": { "type": "string" }, "name": { "type": "string" }, "coordinates": { "type": "array", "items": { "$ref": "#/components/schemas/CoordinateResponseItem" } }, "movements": { "type": "array", "items": { "$ref": "#/components/schemas/MovementResponseItem" } } } }, "MovementResponseItem": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "rank": { "type": "integer", "format": "int32" }, "inbound": { "$ref": "#/components/schemas/Direction" }, "outbound": { "$ref": "#/components/schemas/Direction" }, "movementType": { "type": "integer", "format": "int32" }, "turnManeuvers": { "type": "string" }, "turnGroupId": { "type": "string" } } }, "PostMetadataResponse": { "type": "object", "properties": { "createdDate": { "type": "string" }, "responseId": { "type": "string" }, "locations": { "type": "array", "items": { "$ref": "#/components/schemas/LocationResponseItem" } }, "totalCount": { "type": "integer", "format": "int32" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/MetadataResponseItem" } } } }, "DimensionItem": { "type": "object", "properties": { "name": { "type": "string" }, "ranges": { "type": "array", "items": { "$ref": "#/components/schemas/ValueItem" } } } }, "MetricItem": { "type": "object", "properties": { "name": { "type": "string" }, "ranges": { "type": "array", "items": { "$ref": "#/components/schemas/NamedRangeItem" } } } }, "MetricRequest": { "type": "object", "properties": { "nextCursor": { "type": "object", "additionalProperties": { "type": "string" } }, "offset": { "type": "integer", "format": "int32" }, "pageSize": { "type": "integer", "format": "int32" }, "dateRanges": { "type": "array", "items": { "$ref": "#/components/schemas/DateRange" } }, "geometry": { "$ref": "#/components/schemas/GeoJsonObject" }, "dimensions": { "type": "array", "items": { "$ref": "#/components/schemas/DimensionItem" } }, "metrics": { "type": "array", "items": { "$ref": "#/components/schemas/MetricItem" } }, "dimensionFilters": { "type": "array", "items": { "$ref": "#/components/schemas/Filter" } }, "metadata": { "type": "array", "items": { "$ref": "#/components/schemas/Metadata" } }, "orderBys": { "type": "array", "items": { "$ref": "#/components/schemas/OrderBy" } }, "noPaging": { "type": "boolean" } } }, "NamedRangeItem": { "type": "object", "properties": { "name": { "type": "string" }, "startAvgControlDelay": { "type": "number", "format": "double" }, "endAvgControlDelay": { "type": "number", "format": "double" } } }, "OrderBy": { "type": "object", "properties": { "name": { "type": "string" }, "sortOrder": { "type": "string", "enum": [ "ASCENDING", "DESCENDING" ] } } }, "ValueItem": { "type": "object", "properties": { "name": { "type": "string" }, "startTime": { "type": "string" }, "endTime": { "type": "string" } } }, "NamespaceData": { "type": "object", "properties": { "namespace": { "type": "string" }, "mapVersion": { "type": "string" }, "provisioned": { "type": "array", "items": { "type": "string" } }, "pending": { "type": "array", "items": { "type": "string" } }, "reviewRequired": { "type": "array", "items": { "type": "string" } }, "region": { "$ref": "#/components/schemas/Location" } } }, "NamespaceSearchResponse": { "type": "object", "properties": { "createdDate": { "type": "string" }, "responseId": { "type": "string" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/NamespaceData" } } } }, "NamespaceSearchRequest": { "type": "object", "properties": { "namespaces": { "type": "array", "items": { "type": "string" } }, "mapVersion": { "type": "string" }, "region": { "$ref": "#/components/schemas/Location" } } }, "NamespaceUpdateResponse": { "type": "object", "properties": { "createdDate": { "type": "string" }, "responseId": { "type": "string" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/NamespaceData" } }, "message": { "type": "string" } } }, "DeltaOperation": { "type": "object", "properties": { "add": { "type": "array", "items": { "type": "string" } }, "remove": { "type": "array", "items": { "type": "string" } }, "replace": { "type": "array", "items": { "type": "string" } } } }, "NamespaceUpdateRequest": { "type": "object", "properties": { "mapVersion": { "type": "string" }, "provisioned": { "$ref": "#/components/schemas/DeltaOperation" }, "pending": { "$ref": "#/components/schemas/DeltaOperation" }, "reviewRequired": { "$ref": "#/components/schemas/DeltaOperation" }, "region": { "$ref": "#/components/schemas/Location" } } } }, "securitySchemes": { "Bearer Token": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } } } }