From d8117577c32c8e332446e5f4293ebaa3c98ea804 Mon Sep 17 00:00:00 2001
From: binh-dam-ibigroup <56846598+binh-dam-ibigroup@users.noreply.github.com>
Date: Tue, 17 Dec 2024 15:13:49 -0500
Subject: [PATCH] refactor(OtpMiddlewareMain): Reorder controllers.
---
.../middleware/OtpMiddlewareMain.java | 17 +-
.../latest-spark-swagger-output.yaml | 1342 ++++++++---------
2 files changed, 679 insertions(+), 680 deletions(-)
diff --git a/src/main/java/org/opentripplanner/middleware/OtpMiddlewareMain.java b/src/main/java/org/opentripplanner/middleware/OtpMiddlewareMain.java
index 3b34d3bc..b6f9093f 100644
--- a/src/main/java/org/opentripplanner/middleware/OtpMiddlewareMain.java
+++ b/src/main/java/org/opentripplanner/middleware/OtpMiddlewareMain.java
@@ -121,19 +121,18 @@ private static void initializeHttpEndpoints() throws IOException {
.endpoints(() -> List.of(
new AdminUserController(API_PREFIX),
new ApiUserController(API_PREFIX),
+ new CDPFilesController(API_PREFIX),
new CDPUserController(API_PREFIX),
+ new ErrorEventsController(API_PREFIX),
+ new LogController(API_PREFIX),
+ new MonitoredComponentController(API_PREFIX),
new MonitoredTripController(API_PREFIX),
+ new OtpRequestProcessor("/otp", OtpVersion.OTP2),
+ new OtpRequestProcessor("/otp2", OtpVersion.OTP2),
+ new OtpUserController(API_PREFIX),
new TrackedTripController(API_PREFIX),
new TripHistoryController(API_PREFIX),
- new MonitoredComponentController(API_PREFIX),
- new OtpUserController(API_PREFIX),
- new LogController(API_PREFIX),
- new ErrorEventsController(API_PREFIX),
- new CDPFilesController(API_PREFIX),
- new TripSurveyController(API_PREFIX),
- new OtpRequestProcessor("/otp", OtpVersion.OTP2),
- new OtpRequestProcessor("/otp2", OtpVersion.OTP2)
- // Add other endpoints as needed.
+ new TripSurveyController(API_PREFIX)
))
// Spark-swagger auto-generates a swagger document at localhost:4567/doc.yaml.
// (That path is not configurable.)
diff --git a/src/main/resources/latest-spark-swagger-output.yaml b/src/main/resources/latest-spark-swagger-output.yaml
index a211bd6a..3e8f05d5 100644
--- a/src/main/resources/latest-spark-swagger-output.yaml
+++ b/src/main/resources/latest-spark-swagger-output.yaml
@@ -18,31 +18,31 @@ tags:
description: "Interface for querying and managing 'AdminUser' entities."
- name: "api/secure/application"
description: "Interface for querying and managing 'ApiUser' entities."
+- name: "api/secure/connected-data"
+ description: "Interface for listing and downloading CDP files from S3."
- name: "api/secure/cdp"
description: "Interface for querying and managing 'CDPUser' entities."
-- name: "api/secure/monitoredtrip"
- description: "Interface for querying and managing 'MonitoredTrip' entities."
-- name: "api/secure/triprequests"
- description: "Interface for retrieving trip requests."
-- name: "api/secure/monitoredcomponent"
- description: "Interface for querying and managing 'MonitoredComponent' entities."
-- name: "api/secure/user"
- description: "Interface for querying and managing 'OtpUser' entities."
-- name: "api/secure/logs"
- description: "Interface for retrieving API logs from AWS."
- name: "api/admin/bugsnag/eventsummary"
description: "Interface for reporting and retrieving application errors using Bugsnag."
-- name: "api/secure/connected-data"
- description: "Interface for listing and downloading CDP files from S3."
-- name: "api/trip-survey"
- description: "Interface for tracking opened trip surveys following a trip survey\
- \ notification."
+- name: "api/secure/logs"
+ description: "Interface for retrieving API logs from AWS."
+- name: "api/secure/monitoredcomponent"
+ description: "Interface for querying and managing 'MonitoredComponent' entities."
+- name: "api/secure/monitoredtrip"
+ description: "Interface for querying and managing 'MonitoredTrip' entities."
- name: "otp"
description: "Proxy interface for OTP 2 endpoints. Refer to OTP's\
\ API documentation for OTP's supported API resources."
- name: "otp2"
description: "Proxy interface for OTP 2 endpoints. Refer to OTP's\
\ API documentation for OTP's supported API resources."
+- name: "api/secure/user"
+ description: "Interface for querying and managing 'OtpUser' entities."
+- name: "api/secure/triprequests"
+ description: "Interface for retrieving trip requests."
+- name: "api/trip-survey"
+ description: "Interface for tracking opened trip surveys following a trip survey\
+ \ notification."
schemes:
- "https"
paths:
@@ -744,6 +744,62 @@ paths:
description: "An error occurred while performing the request. Contact an\
\ API administrator for more information."
examples: {}
+ /api/secure/connected-data:
+ get:
+ tags:
+ - "api/secure/connected-data"
+ description: "Gets a paginated list of CDP zip files in the configured S3 bucket."
+ produces:
+ - "application/json"
+ parameters:
+ - name: "limit"
+ in: "query"
+ description: "If specified, the maximum number of items to return."
+ required: false
+ type: "string"
+ default: "10"
+ - name: "offset"
+ in: "query"
+ description: "If specified, the number of records to skip/offset."
+ required: false
+ type: "string"
+ default: "0"
+ responses:
+ "200":
+ description: "successful operation"
+ responseSchema:
+ type: "array"
+ items:
+ $ref: "#/definitions/CDPFile"
+ schema:
+ type: "array"
+ items:
+ $ref: "#/definitions/CDPFile"
+ /api/secure/connected-data/download:
+ get:
+ tags:
+ - "api/secure/connected-data"
+ description: "Generates a download link for a specified object within the CDP\
+ \ bucket."
+ produces:
+ - "application/json"
+ parameters:
+ - name: "/download"
+ in: "query"
+ description: "The key of the object to generate a link for."
+ required: true
+ type: "string"
+ responses:
+ "200":
+ description: "successful operation"
+ responseSchema:
+ type: "array"
+ items:
+ $ref: "#/definitions/URL"
+ schema:
+ type: "array"
+ items:
+ $ref: "#/definitions/URL"
/api/secure/cdp/fromtoken:
get:
tags:
@@ -1034,54 +1090,83 @@ paths:
description: "An error occurred while performing the request. Contact an\
\ API administrator for more information."
examples: {}
- /api/secure/monitoredtrip/checkitinerary:
- post:
+ /api/admin/bugsnag/eventsummary:
+ get:
tags:
- - "api/secure/monitoredtrip"
- description: "Returns the itinerary existence check results for a monitored\
- \ trip."
+ - "api/admin/bugsnag/eventsummary"
+ description: "Gets a paginated list of the latest Bugsnag event summaries."
produces:
- "application/json"
parameters:
- - in: "body"
- name: "body"
- description: "Body object description"
- required: true
- schema:
- $ref: "#/definitions/MonitoredTrip"
+ - name: "limit"
+ in: "query"
+ description: "If specified, the maximum number of items to return."
+ required: false
+ type: "string"
+ default: "10"
+ - name: "offset"
+ in: "query"
+ description: "If specified, the number of records to skip/offset."
+ required: false
+ type: "string"
+ default: "0"
responses:
"200":
- description: "Successful operation"
- examples: {}
+ description: "successful operation"
responseSchema:
- $ref: "#/definitions/ItineraryExistence"
+ type: "array"
+ items:
+ $ref: "#/definitions/BugsnagEvent"
schema:
- $ref: "#/definitions/ItineraryExistence"
- "400":
- description: "The request was not formed properly (e.g., some required parameters\
- \ may be missing). See the details of the returned response to determine\
- \ the exact issue."
- examples: {}
- "401":
- description: "The server was not able to authenticate the request. This\
- \ can happen if authentication headers are missing or malformed, or the\
- \ authentication server cannot be reached."
- examples: {}
- "403":
- description: "The requesting user is not allowed to perform the request."
- examples: {}
- "404":
- description: "The requested item was not found."
- examples: {}
- "500":
- description: "An error occurred while performing the request. Contact an\
- \ API administrator for more information."
- examples: {}
- /api/secure/monitoredtrip:
+ type: "array"
+ items:
+ $ref: "#/definitions/BugsnagEvent"
+ /api/secure/logs:
get:
tags:
- - "api/secure/monitoredtrip"
- description: "Gets a paginated list of all 'MonitoredTrip' entities."
+ - "api/secure/logs"
+ description: "Gets a list of all API usage logs."
+ produces:
+ - "application/json"
+ parameters:
+ - name: "keyId"
+ in: "query"
+ description: "If specified, restricts the search to the specified AWS API\
+ \ key ID."
+ required: false
+ type: "string"
+ - name: "startDate"
+ in: "query"
+ description: "If specified, the earliest date (format yyyy-MM-dd) for which\
+ \ usage logs are retrieved."
+ required: false
+ type: "string"
+ default: "30 days prior to the current date"
+ pattern: "yyyy-MM-dd"
+ - name: "endDate"
+ in: "query"
+ description: "If specified, the latest date (format yyyy-MM-dd) for which\
+ \ usage logs are retrieved."
+ required: false
+ type: "string"
+ default: "The current date"
+ pattern: "yyyy-MM-dd"
+ responses:
+ "200":
+ description: "successful operation"
+ responseSchema:
+ type: "array"
+ items:
+ $ref: "#/definitions/ApiUsageResult"
+ schema:
+ type: "array"
+ items:
+ $ref: "#/definitions/ApiUsageResult"
+ /api/secure/monitoredcomponent:
+ get:
+ tags:
+ - "api/secure/monitoredcomponent"
+ description: "Gets a paginated list of all 'MonitoredComponent' entities."
produces:
- "application/json"
parameters:
@@ -1111,8 +1196,8 @@ paths:
$ref: "#/definitions/ResponseList"
post:
tags:
- - "api/secure/monitoredtrip"
- description: "Creates a 'MonitoredTrip' entity."
+ - "api/secure/monitoredcomponent"
+ description: "Creates a 'MonitoredComponent' entity."
consumes:
- "application/json"
produces:
@@ -1123,15 +1208,15 @@ paths:
description: "Body object description"
required: true
schema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
responses:
"200":
description: "Successful operation"
examples: {}
responseSchema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
schema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
"400":
description: "The request was not formed properly (e.g., some required parameters\
\ may be missing). See the details of the returned response to determine\
@@ -1152,12 +1237,12 @@ paths:
description: "An error occurred while performing the request. Contact an\
\ API administrator for more information."
examples: {}
- /api/secure/monitoredtrip/{id}:
+ /api/secure/monitoredcomponent/{id}:
get:
tags:
- - "api/secure/monitoredtrip"
- description: "Returns the 'MonitoredTrip' entity with the specified id, or 404\
- \ if not found."
+ - "api/secure/monitoredcomponent"
+ description: "Returns the 'MonitoredComponent' entity with the specified id,\
+ \ or 404 if not found."
produces:
- "application/json"
parameters:
@@ -1171,9 +1256,9 @@ paths:
description: "Successful operation"
examples: {}
responseSchema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
schema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
"400":
description: "The request was not formed properly (e.g., some required parameters\
\ may be missing). See the details of the returned response to determine\
@@ -1196,8 +1281,8 @@ paths:
examples: {}
put:
tags:
- - "api/secure/monitoredtrip"
- description: "Updates and returns the 'MonitoredTrip' entity with the specified\
+ - "api/secure/monitoredcomponent"
+ description: "Updates and returns the 'MonitoredComponent' entity with the specified\
\ id, or 404 if not found."
consumes:
- "application/json"
@@ -1214,15 +1299,15 @@ paths:
description: "Body object description"
required: true
schema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
responses:
"200":
description: "Successful operation"
examples: {}
responseSchema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
schema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
"400":
description: "The request was not formed properly (e.g., some required parameters\
\ may be missing). See the details of the returned response to determine\
@@ -1245,9 +1330,9 @@ paths:
examples: {}
delete:
tags:
- - "api/secure/monitoredtrip"
- description: "Deletes the 'MonitoredTrip' entity with the specified id if it\
- \ exists."
+ - "api/secure/monitoredcomponent"
+ description: "Deletes the 'MonitoredComponent' entity with the specified id\
+ \ if it exists."
produces:
- "application/json"
parameters:
@@ -1261,9 +1346,9 @@ paths:
description: "Successful operation"
examples: {}
responseSchema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
schema:
- $ref: "#/definitions/MonitoredTrip"
+ $ref: "#/definitions/MonitoredComponent"
"400":
description: "The request was not formed properly (e.g., some required parameters\
\ may be missing). See the details of the returned response to determine\
@@ -1284,11 +1369,12 @@ paths:
description: "An error occurred while performing the request. Contact an\
\ API administrator for more information."
examples: {}
- /api/secure/monitoredtrip/starttracking:
+ /api/secure/monitoredtrip/checkitinerary:
post:
tags:
- "api/secure/monitoredtrip"
- description: "Initiates the tracking of a monitored trip."
+ description: "Returns the itinerary existence check results for a monitored\
+ \ trip."
produces:
- "application/json"
parameters:
@@ -1297,151 +1383,40 @@ paths:
description: "Body object description"
required: true
schema:
- $ref: "#/definitions/StartTrackingPayload"
+ $ref: "#/definitions/MonitoredTrip"
responses:
"200":
- description: "successful operation"
+ description: "Successful operation"
+ examples: {}
responseSchema:
- $ref: "#/definitions/TrackingResponse"
+ $ref: "#/definitions/ItineraryExistence"
schema:
- $ref: "#/definitions/TrackingResponse"
- /api/secure/monitoredtrip/updatetracking:
- post:
- tags:
- - "api/secure/monitoredtrip"
- description: "Provides tracking updates on a monitored trip."
- produces:
- - "application/json"
- parameters:
- - in: "body"
- name: "body"
- description: "Body object description"
- required: true
- schema:
- $ref: "#/definitions/UpdatedTrackingPayload"
- responses:
- "200":
- description: "successful operation"
- responseSchema:
- $ref: "#/definitions/TrackingResponse"
- schema:
- $ref: "#/definitions/TrackingResponse"
- /api/secure/monitoredtrip/track:
- post:
- tags:
- - "api/secure/monitoredtrip"
- description: "Starts or updates tracking on a monitored trip."
- produces:
- - "application/json"
- parameters:
- - in: "body"
- name: "body"
- description: "Body object description"
- required: true
- schema:
- $ref: "#/definitions/TrackPayload"
- responses:
- "200":
- description: "successful operation"
- responseSchema:
- $ref: "#/definitions/TrackingResponse"
- schema:
- $ref: "#/definitions/TrackingResponse"
- /api/secure/monitoredtrip/endtracking:
- post:
- tags:
- - "api/secure/monitoredtrip"
- description: "Terminates the tracking of a monitored trip by the user."
- produces:
- - "application/json"
- parameters:
- - in: "body"
- name: "body"
- description: "Body object description"
- required: true
- schema:
- $ref: "#/definitions/EndTrackingPayload"
- responses:
- "200":
- description: "successful operation"
- responseSchema:
- $ref: "#/definitions/EndTrackingResponse"
- schema:
- $ref: "#/definitions/EndTrackingResponse"
- /api/secure/monitoredtrip/forciblyendtracking:
- post:
- tags:
- - "api/secure/monitoredtrip"
- description: "Forcibly terminates tracking of a monitored trip by trip ID."
- produces:
- - "application/json"
- parameters:
- - in: "body"
- name: "body"
- description: "Body object description"
- required: true
- schema:
- $ref: "#/definitions/ForceEndTrackingPayload"
- responses:
- "200":
- description: "successful operation"
- responseSchema:
- $ref: "#/definitions/EndTrackingResponse"
- schema:
- $ref: "#/definitions/EndTrackingResponse"
- /api/secure/triprequests:
- get:
- tags:
- - "api/secure/triprequests"
- description: "Gets a paginated list of the most recent trip requests for a user."
- produces:
- - "application/json"
- parameters:
- - name: "userId"
- in: "query"
- description: "The OTP user for which to retrieve trip requests."
- required: true
- type: "string"
- - name: "limit"
- in: "query"
- description: "If specified, the maximum number of items to return."
- required: false
- type: "string"
- default: "10"
- - name: "offset"
- in: "query"
- description: "If specified, the number of records to skip/offset."
- required: false
- type: "string"
- default: "0"
- - name: "fromDate"
- in: "query"
- description: "If specified, the earliest date (format yyyy-MM-dd) for which\
- \ trip requests are retrieved."
- required: false
- type: "string"
- default: "The current date"
- pattern: "yyyy-MM-dd"
- - name: "toDate"
- in: "query"
- description: "If specified, the latest date (format yyyy-MM-dd) for which\
- \ trip requests are retrieved."
- required: false
- type: "string"
- default: "The current date"
- pattern: "yyyy-MM-dd"
- responses:
- "200":
- description: "successful operation"
- responseSchema:
- $ref: "#/definitions/TripRequest"
- schema:
- $ref: "#/definitions/TripRequest"
- /api/secure/monitoredcomponent:
+ $ref: "#/definitions/ItineraryExistence"
+ "400":
+ description: "The request was not formed properly (e.g., some required parameters\
+ \ may be missing). See the details of the returned response to determine\
+ \ the exact issue."
+ examples: {}
+ "401":
+ description: "The server was not able to authenticate the request. This\
+ \ can happen if authentication headers are missing or malformed, or the\
+ \ authentication server cannot be reached."
+ examples: {}
+ "403":
+ description: "The requesting user is not allowed to perform the request."
+ examples: {}
+ "404":
+ description: "The requested item was not found."
+ examples: {}
+ "500":
+ description: "An error occurred while performing the request. Contact an\
+ \ API administrator for more information."
+ examples: {}
+ /api/secure/monitoredtrip:
get:
tags:
- - "api/secure/monitoredcomponent"
- description: "Gets a paginated list of all 'MonitoredComponent' entities."
+ - "api/secure/monitoredtrip"
+ description: "Gets a paginated list of all 'MonitoredTrip' entities."
produces:
- "application/json"
parameters:
@@ -1471,8 +1446,8 @@ paths:
$ref: "#/definitions/ResponseList"
post:
tags:
- - "api/secure/monitoredcomponent"
- description: "Creates a 'MonitoredComponent' entity."
+ - "api/secure/monitoredtrip"
+ description: "Creates a 'MonitoredTrip' entity."
consumes:
- "application/json"
produces:
@@ -1483,15 +1458,15 @@ paths:
description: "Body object description"
required: true
schema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
responses:
"200":
description: "Successful operation"
examples: {}
responseSchema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
schema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
"400":
description: "The request was not formed properly (e.g., some required parameters\
\ may be missing). See the details of the returned response to determine\
@@ -1512,12 +1487,12 @@ paths:
description: "An error occurred while performing the request. Contact an\
\ API administrator for more information."
examples: {}
- /api/secure/monitoredcomponent/{id}:
+ /api/secure/monitoredtrip/{id}:
get:
tags:
- - "api/secure/monitoredcomponent"
- description: "Returns the 'MonitoredComponent' entity with the specified id,\
- \ or 404 if not found."
+ - "api/secure/monitoredtrip"
+ description: "Returns the 'MonitoredTrip' entity with the specified id, or 404\
+ \ if not found."
produces:
- "application/json"
parameters:
@@ -1531,9 +1506,9 @@ paths:
description: "Successful operation"
examples: {}
responseSchema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
schema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
"400":
description: "The request was not formed properly (e.g., some required parameters\
\ may be missing). See the details of the returned response to determine\
@@ -1556,8 +1531,8 @@ paths:
examples: {}
put:
tags:
- - "api/secure/monitoredcomponent"
- description: "Updates and returns the 'MonitoredComponent' entity with the specified\
+ - "api/secure/monitoredtrip"
+ description: "Updates and returns the 'MonitoredTrip' entity with the specified\
\ id, or 404 if not found."
consumes:
- "application/json"
@@ -1574,15 +1549,15 @@ paths:
description: "Body object description"
required: true
schema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
responses:
"200":
description: "Successful operation"
examples: {}
responseSchema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
schema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
"400":
description: "The request was not formed properly (e.g., some required parameters\
\ may be missing). See the details of the returned response to determine\
@@ -1605,9 +1580,9 @@ paths:
examples: {}
delete:
tags:
- - "api/secure/monitoredcomponent"
- description: "Deletes the 'MonitoredComponent' entity with the specified id\
- \ if it exists."
+ - "api/secure/monitoredtrip"
+ description: "Deletes the 'MonitoredTrip' entity with the specified id if it\
+ \ exists."
produces:
- "application/json"
parameters:
@@ -1621,9 +1596,9 @@ paths:
description: "Successful operation"
examples: {}
responseSchema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
schema:
- $ref: "#/definitions/MonitoredComponent"
+ $ref: "#/definitions/MonitoredTrip"
"400":
description: "The request was not formed properly (e.g., some required parameters\
\ may be missing). See the details of the returned response to determine\
@@ -1644,50 +1619,122 @@ paths:
description: "An error occurred while performing the request. Contact an\
\ API administrator for more information."
examples: {}
- /api/secure/user/acceptdependent:
+ /otp/*:
get:
tags:
- - "api/secure/user"
- description: "Accept a dependent request."
- parameters: []
+ - "otp"
+ description: "Forwards any GET request to OTP 2. Refer to OTP's\
+ \ API documentation for OTP's supported API resources."
+ produces:
+ - "application/json"
+ - "application/xml"
+ parameters:
+ - name: "userId"
+ in: "query"
+ description: "If a third-party application is making a trip plan request on\
+ \ behalf of an end user (OtpUser), the user id must be specified."
+ required: false
+ type: "string"
responses:
"200":
- description: "Successful operation"
- examples: {}
- responseSchema:
- $ref: "#/definitions/OtpUser"
- schema:
- $ref: "#/definitions/OtpUser"
- "400":
- description: "The request was not formed properly (e.g., some required parameters\
- \ may be missing). See the details of the returned response to determine\
- \ the exact issue."
- examples: {}
- "401":
- description: "The server was not able to authenticate the request. This\
- \ can happen if authentication headers are missing or malformed, or the\
- \ authentication server cannot be reached."
- examples: {}
- "403":
- description: "The requesting user is not allowed to perform the request."
- examples: {}
- "404":
- description: "The requested item was not found."
- examples: {}
- "500":
- description: "An error occurred while performing the request. Contact an\
- \ API administrator for more information."
- examples: {}
- /api/secure/user/getdependentmobilityprofile:
- get:
+ description: "successful operation"
+ post:
tags:
- - "api/secure/user"
- description: "Retrieve the mobility profile for each valid dependent user id\
- \ provided."
- parameters: []
+ - "otp"
+ description: "Forwards any POST request to OTP 2. Refer to OTP's\
+ \ API documentation for OTP's supported API resources."
+ produces:
+ - "application/json"
+ parameters:
+ - name: "userId"
+ in: "query"
+ description: "If a third-party application is making a trip plan request on\
+ \ behalf of an end user (OtpUser), the user id must be specified."
+ required: false
+ type: "string"
responses:
"200":
- description: "Successful operation"
+ description: "successful operation"
+ /otp2/*:
+ get:
+ tags:
+ - "otp2"
+ description: "Forwards any GET request to OTP 2. Refer to OTP's\
+ \ API documentation for OTP's supported API resources."
+ produces:
+ - "application/json"
+ - "application/xml"
+ parameters:
+ - name: "userId"
+ in: "query"
+ description: "If a third-party application is making a trip plan request on\
+ \ behalf of an end user (OtpUser), the user id must be specified."
+ required: false
+ type: "string"
+ responses:
+ "200":
+ description: "successful operation"
+ post:
+ tags:
+ - "otp2"
+ description: "Forwards any POST request to OTP 2. Refer to OTP's\
+ \ API documentation for OTP's supported API resources."
+ produces:
+ - "application/json"
+ parameters:
+ - name: "userId"
+ in: "query"
+ description: "If a third-party application is making a trip plan request on\
+ \ behalf of an end user (OtpUser), the user id must be specified."
+ required: false
+ type: "string"
+ responses:
+ "200":
+ description: "successful operation"
+ /api/secure/user/acceptdependent:
+ get:
+ tags:
+ - "api/secure/user"
+ description: "Accept a dependent request."
+ parameters: []
+ responses:
+ "200":
+ description: "Successful operation"
+ examples: {}
+ responseSchema:
+ $ref: "#/definitions/OtpUser"
+ schema:
+ $ref: "#/definitions/OtpUser"
+ "400":
+ description: "The request was not formed properly (e.g., some required parameters\
+ \ may be missing). See the details of the returned response to determine\
+ \ the exact issue."
+ examples: {}
+ "401":
+ description: "The server was not able to authenticate the request. This\
+ \ can happen if authentication headers are missing or malformed, or the\
+ \ authentication server cannot be reached."
+ examples: {}
+ "403":
+ description: "The requesting user is not allowed to perform the request."
+ examples: {}
+ "404":
+ description: "The requested item was not found."
+ examples: {}
+ "500":
+ description: "An error occurred while performing the request. Contact an\
+ \ API administrator for more information."
+ examples: {}
+ /api/secure/user/getdependentmobilityprofile:
+ get:
+ tags:
+ - "api/secure/user"
+ description: "Retrieve the mobility profile for each valid dependent user id\
+ \ provided."
+ parameters: []
+ responses:
+ "200":
+ description: "Successful operation"
examples: {}
responseSchema:
$ref: "#/definitions/MobilityProfileLite"
@@ -2049,227 +2096,180 @@ paths:
description: "An error occurred while performing the request. Contact an\
\ API administrator for more information."
examples: {}
- /api/secure/logs:
- get:
+ /api/secure/monitoredtrip/starttracking:
+ post:
tags:
- - "api/secure/logs"
- description: "Gets a list of all API usage logs."
+ - "api/secure/monitoredtrip"
+ description: "Initiates the tracking of a monitored trip."
produces:
- "application/json"
parameters:
- - name: "keyId"
- in: "query"
- description: "If specified, restricts the search to the specified AWS API\
- \ key ID."
- required: false
- type: "string"
- - name: "startDate"
- in: "query"
- description: "If specified, the earliest date (format yyyy-MM-dd) for which\
- \ usage logs are retrieved."
- required: false
- type: "string"
- default: "30 days prior to the current date"
- pattern: "yyyy-MM-dd"
- - name: "endDate"
- in: "query"
- description: "If specified, the latest date (format yyyy-MM-dd) for which\
- \ usage logs are retrieved."
- required: false
- type: "string"
- default: "The current date"
- pattern: "yyyy-MM-dd"
+ - in: "body"
+ name: "body"
+ description: "Body object description"
+ required: true
+ schema:
+ $ref: "#/definitions/StartTrackingPayload"
responses:
"200":
description: "successful operation"
responseSchema:
- type: "array"
- items:
- $ref: "#/definitions/ApiUsageResult"
+ $ref: "#/definitions/TrackingResponse"
schema:
- type: "array"
- items:
- $ref: "#/definitions/ApiUsageResult"
- /api/admin/bugsnag/eventsummary:
- get:
+ $ref: "#/definitions/TrackingResponse"
+ /api/secure/monitoredtrip/updatetracking:
+ post:
tags:
- - "api/admin/bugsnag/eventsummary"
- description: "Gets a paginated list of the latest Bugsnag event summaries."
+ - "api/secure/monitoredtrip"
+ description: "Provides tracking updates on a monitored trip."
produces:
- "application/json"
parameters:
- - name: "limit"
- in: "query"
- description: "If specified, the maximum number of items to return."
- required: false
- type: "string"
- default: "10"
- - name: "offset"
- in: "query"
- description: "If specified, the number of records to skip/offset."
- required: false
- type: "string"
- default: "0"
+ - in: "body"
+ name: "body"
+ description: "Body object description"
+ required: true
+ schema:
+ $ref: "#/definitions/UpdatedTrackingPayload"
responses:
"200":
description: "successful operation"
responseSchema:
- type: "array"
- items:
- $ref: "#/definitions/BugsnagEvent"
+ $ref: "#/definitions/TrackingResponse"
schema:
- type: "array"
- items:
- $ref: "#/definitions/BugsnagEvent"
- /api/secure/connected-data:
- get:
+ $ref: "#/definitions/TrackingResponse"
+ /api/secure/monitoredtrip/track:
+ post:
tags:
- - "api/secure/connected-data"
- description: "Gets a paginated list of CDP zip files in the configured S3 bucket."
+ - "api/secure/monitoredtrip"
+ description: "Starts or updates tracking on a monitored trip."
produces:
- "application/json"
parameters:
- - name: "limit"
- in: "query"
- description: "If specified, the maximum number of items to return."
- required: false
- type: "string"
- default: "10"
- - name: "offset"
- in: "query"
- description: "If specified, the number of records to skip/offset."
- required: false
- type: "string"
- default: "0"
+ - in: "body"
+ name: "body"
+ description: "Body object description"
+ required: true
+ schema:
+ $ref: "#/definitions/TrackPayload"
responses:
"200":
description: "successful operation"
responseSchema:
- type: "array"
- items:
- $ref: "#/definitions/CDPFile"
+ $ref: "#/definitions/TrackingResponse"
schema:
- type: "array"
- items:
- $ref: "#/definitions/CDPFile"
- /api/secure/connected-data/download:
- get:
+ $ref: "#/definitions/TrackingResponse"
+ /api/secure/monitoredtrip/endtracking:
+ post:
tags:
- - "api/secure/connected-data"
- description: "Generates a download link for a specified object within the CDP\
- \ bucket."
+ - "api/secure/monitoredtrip"
+ description: "Terminates the tracking of a monitored trip by the user."
produces:
- "application/json"
parameters:
- - name: "/download"
- in: "query"
- description: "The key of the object to generate a link for."
+ - in: "body"
+ name: "body"
+ description: "Body object description"
required: true
- type: "string"
+ schema:
+ $ref: "#/definitions/EndTrackingPayload"
responses:
"200":
description: "successful operation"
responseSchema:
- type: "array"
- items:
- $ref: "#/definitions/URL"
+ $ref: "#/definitions/EndTrackingResponse"
schema:
- type: "array"
- items:
- $ref: "#/definitions/URL"
- /api/trip-survey/open:
- get:
+ $ref: "#/definitions/EndTrackingResponse"
+ /api/secure/monitoredtrip/forciblyendtracking:
+ post:
tags:
- - "api/trip-survey"
- description: "Generates a tracking survey link for a specified user, trip, notification\
- \ ids."
+ - "api/secure/monitoredtrip"
+ description: "Forcibly terminates tracking of a monitored trip by trip ID."
+ produces:
+ - "application/json"
parameters:
- - name: "user_id"
- in: "query"
- description: "The id of the OtpUser that this notification applies to."
- required: true
- type: "string"
- - name: "trip_id"
- in: "query"
- description: "The id of the MonitoredTrip that this notification applies to."
- required: true
- type: "string"
- - name: "notification_id"
- in: "query"
- description: "The id of the notification that this notification applies to."
+ - in: "body"
+ name: "body"
+ description: "Body object description"
required: true
- type: "string"
+ schema:
+ $ref: "#/definitions/ForceEndTrackingPayload"
responses:
"200":
description: "successful operation"
- /otp/*:
+ responseSchema:
+ $ref: "#/definitions/EndTrackingResponse"
+ schema:
+ $ref: "#/definitions/EndTrackingResponse"
+ /api/secure/triprequests:
get:
tags:
- - "otp"
- description: "Forwards any GET request to OTP 2. Refer to OTP's\
- \ API documentation for OTP's supported API resources."
+ - "api/secure/triprequests"
+ description: "Gets a paginated list of the most recent trip requests for a user."
produces:
- "application/json"
- - "application/xml"
parameters:
- name: "userId"
in: "query"
- description: "If a third-party application is making a trip plan request on\
- \ behalf of an end user (OtpUser), the user id must be specified."
+ description: "The OTP user for which to retrieve trip requests."
+ required: true
+ type: "string"
+ - name: "limit"
+ in: "query"
+ description: "If specified, the maximum number of items to return."
required: false
type: "string"
- responses:
- "200":
- description: "successful operation"
- post:
- tags:
- - "otp"
- description: "Forwards any POST request to OTP 2. Refer to OTP's\
- \ API documentation for OTP's supported API resources."
- produces:
- - "application/json"
- parameters:
- - name: "userId"
+ default: "10"
+ - name: "offset"
in: "query"
- description: "If a third-party application is making a trip plan request on\
- \ behalf of an end user (OtpUser), the user id must be specified."
+ description: "If specified, the number of records to skip/offset."
required: false
type: "string"
- responses:
- "200":
- description: "successful operation"
- /otp2/*:
- get:
- tags:
- - "otp2"
- description: "Forwards any GET request to OTP 2. Refer to OTP's\
- \ API documentation for OTP's supported API resources."
- produces:
- - "application/json"
- - "application/xml"
- parameters:
- - name: "userId"
+ default: "0"
+ - name: "fromDate"
in: "query"
- description: "If a third-party application is making a trip plan request on\
- \ behalf of an end user (OtpUser), the user id must be specified."
+ description: "If specified, the earliest date (format yyyy-MM-dd) for which\
+ \ trip requests are retrieved."
+ required: false
+ type: "string"
+ default: "The current date"
+ pattern: "yyyy-MM-dd"
+ - name: "toDate"
+ in: "query"
+ description: "If specified, the latest date (format yyyy-MM-dd) for which\
+ \ trip requests are retrieved."
required: false
type: "string"
+ default: "The current date"
+ pattern: "yyyy-MM-dd"
responses:
"200":
description: "successful operation"
- post:
+ responseSchema:
+ $ref: "#/definitions/TripRequest"
+ schema:
+ $ref: "#/definitions/TripRequest"
+ /api/trip-survey/open:
+ get:
tags:
- - "otp2"
- description: "Forwards any POST request to OTP 2. Refer to OTP's\
- \ API documentation for OTP's supported API resources."
- produces:
- - "application/json"
+ - "api/trip-survey"
+ description: "Generates a tracking survey link for a specified user, trip, notification\
+ \ ids."
parameters:
- - name: "userId"
+ - name: "user_id"
in: "query"
- description: "If a third-party application is making a trip plan request on\
- \ behalf of an end user (OtpUser), the user id must be specified."
- required: false
+ description: "The id of the OtpUser that this notification applies to."
+ required: true
+ type: "string"
+ - name: "trip_id"
+ in: "query"
+ description: "The id of the MonitoredTrip that this notification applies to."
+ required: true
+ type: "string"
+ - name: "notification_id"
+ in: "query"
+ description: "The id of the notification that this notification applies to."
+ required: true
type: "string"
responses:
"200":
@@ -2359,6 +2359,47 @@ definitions:
type: "boolean"
name:
type: "string"
+ CDPFile:
+ type: "object"
+ properties:
+ key:
+ type: "string"
+ name:
+ type: "string"
+ size:
+ type: "integer"
+ format: "int64"
+ URL:
+ type: "object"
+ properties:
+ protocol:
+ type: "string"
+ host:
+ type: "string"
+ port:
+ type: "integer"
+ format: "int32"
+ file:
+ type: "string"
+ query:
+ type: "string"
+ authority:
+ type: "string"
+ path:
+ type: "string"
+ userInfo:
+ type: "string"
+ ref:
+ type: "string"
+ hostAddress:
+ $ref: "#/definitions/InetAddress"
+ handler:
+ $ref: "#/definitions/URLStreamHandler"
+ hashCode:
+ type: "integer"
+ format: "int32"
+ tempState:
+ $ref: "#/definitions/UrlDeserializedState"
CDPUser:
type: "object"
properties:
@@ -2366,6 +2407,69 @@ definitions:
type: "string"
S3DownloadTimes:
$ref: "#/definitions/Map"
+ App:
+ type: "object"
+ properties:
+ releaseStage:
+ type: "string"
+ BugsnagEvent:
+ type: "object"
+ properties:
+ eventDataId:
+ type: "string"
+ projectId:
+ type: "string"
+ errorId:
+ type: "string"
+ receivedAt:
+ type: "string"
+ format: "date"
+ exceptions:
+ type: "array"
+ items:
+ $ref: "#/definitions/EventException"
+ severity:
+ type: "string"
+ context:
+ type: "string"
+ unhandled:
+ type: "boolean"
+ app:
+ $ref: "#/definitions/App"
+ EventException:
+ type: "object"
+ properties:
+ errorClass:
+ type: "string"
+ message:
+ type: "string"
+ GetUsageResult:
+ type: "object"
+ properties:
+ usagePlanId:
+ type: "string"
+ startDate:
+ type: "string"
+ endDate:
+ type: "string"
+ position:
+ type: "string"
+ items:
+ $ref: "#/definitions/Map"
+ ApiUsageResult:
+ type: "object"
+ properties:
+ result:
+ $ref: "#/definitions/GetUsageResult"
+ apiUsers:
+ $ref: "#/definitions/Map"
+ MonitoredComponent:
+ type: "object"
+ properties:
+ bugsnagProjectId:
+ type: "string"
+ name:
+ type: "string"
TripStop:
type: "object"
properties:
@@ -3019,200 +3123,33 @@ definitions:
type: "string"
address:
type: "string"
- StartTrackingPayload:
+ VerificationResult:
type: "object"
properties:
- location:
- $ref: "#/definitions/TrackingLocation"
- tripId:
+ sid:
type: "string"
- TrackingLocation:
+ status:
+ type: "string"
+ valid:
+ type: "boolean"
+ UserLocation:
type: "object"
properties:
- bearing:
- type: "integer"
- format: "int32"
- lat:
- type: "number"
- format: "double"
- lon:
- type: "number"
- format: "double"
- speed:
- type: "integer"
- format: "int32"
- timestamp:
+ address:
type: "string"
- format: "date"
- tripStatus:
+ icon:
type: "string"
- enum:
- - "ON_SCHEDULE"
- - "BEHIND_SCHEDULE"
- - "AHEAD_OF_SCHEDULE"
- - "ENDED"
- - "DEVIATED"
- - "COMPLETED"
- locationAccuracy:
+ lat:
type: "number"
format: "double"
- deviationMeters:
+ lon:
type: "number"
format: "double"
- TrackingResponse:
- type: "object"
- properties:
- frequencySeconds:
- type: "integer"
- format: "int32"
- instruction:
- type: "string"
- journeyId:
- type: "string"
- tripStatus:
+ name:
type: "string"
- message:
+ type:
type: "string"
- UpdatedTrackingPayload:
- type: "object"
- properties:
- journeyId:
- type: "string"
- locations:
- type: "array"
- items:
- $ref: "#/definitions/TrackingLocation"
- TrackPayload:
- type: "object"
- properties:
- locations:
- type: "array"
- items:
- $ref: "#/definitions/TrackingLocation"
- tripId:
- type: "string"
- EndTrackingPayload:
- type: "object"
- properties:
- journeyId:
- type: "string"
- EndTrackingResponse:
- type: "object"
- properties:
- instruction:
- type: "string"
- tripStatus:
- type: "string"
- message:
- type: "string"
- ForceEndTrackingPayload:
- type: "object"
- properties:
- tripId:
- type: "string"
- TripRequest:
- type: "object"
- properties:
- userId:
- type: "string"
- batchId:
- type: "string"
- fromPlace:
- type: "string"
- toPlace:
- type: "string"
- otp2QueryParams:
- $ref: "#/definitions/QueryVariables"
- QueryVariables:
- type: "object"
- properties:
- arriveBy:
- type: "boolean"
- banned:
- $ref: "#/definitions/RoutesAndTrips"
- bikeReluctance:
- type: "number"
- format: "float"
- carReluctance:
- type: "number"
- format: "float"
- date:
- type: "string"
- fromPlace:
- type: "string"
- mobilityProfile:
- type: "string"
- modes:
- type: "array"
- items:
- $ref: "#/definitions/TransportMode"
- numItineraries:
- type: "integer"
- format: "int32"
- preferred:
- $ref: "#/definitions/RoutesAndTrips"
- time:
- type: "string"
- toPlace:
- type: "string"
- unpreferred:
- $ref: "#/definitions/RoutesAndTrips"
- walkReluctance:
- type: "number"
- format: "float"
- walkSpeed:
- type: "number"
- format: "float"
- wheelchair:
- type: "boolean"
- RoutesAndTrips:
- type: "object"
- properties:
- routes:
- type: "string"
- trips:
- type: "string"
- TransportMode:
- type: "object"
- properties:
- mode:
- type: "string"
- qualifier:
- type: "string"
- MonitoredComponent:
- type: "object"
- properties:
- bugsnagProjectId:
- type: "string"
- name:
- type: "string"
- VerificationResult:
- type: "object"
- properties:
- sid:
- type: "string"
- status:
- type: "string"
- valid:
- type: "boolean"
- UserLocation:
- type: "object"
- properties:
- address:
- type: "string"
- icon:
- type: "string"
- lat:
- type: "number"
- format: "double"
- lon:
- type: "number"
- format: "double"
- name:
- type: "string"
- type:
- type: "string"
- OtpUser:
+ OtpUser:
type: "object"
properties:
accessibilityRoutingByDefault:
@@ -3293,103 +3230,166 @@ definitions:
format: "date"
journeyId:
type: "string"
- GetUsageResult:
+ StartTrackingPayload:
type: "object"
properties:
- usagePlanId:
- type: "string"
- startDate:
- type: "string"
- endDate:
- type: "string"
- position:
+ location:
+ $ref: "#/definitions/TrackingLocation"
+ tripId:
type: "string"
- items:
- $ref: "#/definitions/Map"
- ApiUsageResult:
- type: "object"
- properties:
- result:
- $ref: "#/definitions/GetUsageResult"
- apiUsers:
- $ref: "#/definitions/Map"
- App:
+ TrackingLocation:
type: "object"
properties:
- releaseStage:
+ bearing:
+ type: "integer"
+ format: "int32"
+ lat:
+ type: "number"
+ format: "double"
+ lon:
+ type: "number"
+ format: "double"
+ speed:
+ type: "integer"
+ format: "int32"
+ timestamp:
type: "string"
- BugsnagEvent:
+ format: "date"
+ tripStatus:
+ type: "string"
+ enum:
+ - "ON_SCHEDULE"
+ - "BEHIND_SCHEDULE"
+ - "AHEAD_OF_SCHEDULE"
+ - "ENDED"
+ - "DEVIATED"
+ - "COMPLETED"
+ locationAccuracy:
+ type: "number"
+ format: "double"
+ deviationMeters:
+ type: "number"
+ format: "double"
+ TrackingResponse:
type: "object"
properties:
- eventDataId:
+ frequencySeconds:
+ type: "integer"
+ format: "int32"
+ instruction:
type: "string"
- projectId:
+ journeyId:
type: "string"
- errorId:
+ tripStatus:
type: "string"
- receivedAt:
+ message:
type: "string"
- format: "date"
- exceptions:
+ UpdatedTrackingPayload:
+ type: "object"
+ properties:
+ journeyId:
+ type: "string"
+ locations:
type: "array"
items:
- $ref: "#/definitions/EventException"
- severity:
+ $ref: "#/definitions/TrackingLocation"
+ TrackPayload:
+ type: "object"
+ properties:
+ locations:
+ type: "array"
+ items:
+ $ref: "#/definitions/TrackingLocation"
+ tripId:
type: "string"
- context:
+ EndTrackingPayload:
+ type: "object"
+ properties:
+ journeyId:
type: "string"
- unhandled:
- type: "boolean"
- app:
- $ref: "#/definitions/App"
- EventException:
+ EndTrackingResponse:
type: "object"
properties:
- errorClass:
+ instruction:
+ type: "string"
+ tripStatus:
type: "string"
message:
type: "string"
- CDPFile:
+ ForceEndTrackingPayload:
type: "object"
properties:
- key:
+ tripId:
type: "string"
- name:
+ TripRequest:
+ type: "object"
+ properties:
+ userId:
type: "string"
- size:
- type: "integer"
- format: "int64"
- URL:
+ batchId:
+ type: "string"
+ fromPlace:
+ type: "string"
+ toPlace:
+ type: "string"
+ otp2QueryParams:
+ $ref: "#/definitions/QueryVariables"
+ QueryVariables:
type: "object"
properties:
- protocol:
+ arriveBy:
+ type: "boolean"
+ banned:
+ $ref: "#/definitions/RoutesAndTrips"
+ bikeReluctance:
+ type: "number"
+ format: "float"
+ carReluctance:
+ type: "number"
+ format: "float"
+ date:
type: "string"
- host:
+ fromPlace:
type: "string"
- port:
+ mobilityProfile:
+ type: "string"
+ modes:
+ type: "array"
+ items:
+ $ref: "#/definitions/TransportMode"
+ numItineraries:
type: "integer"
format: "int32"
- file:
+ preferred:
+ $ref: "#/definitions/RoutesAndTrips"
+ time:
type: "string"
- query:
+ toPlace:
type: "string"
- authority:
+ unpreferred:
+ $ref: "#/definitions/RoutesAndTrips"
+ walkReluctance:
+ type: "number"
+ format: "float"
+ walkSpeed:
+ type: "number"
+ format: "float"
+ wheelchair:
+ type: "boolean"
+ RoutesAndTrips:
+ type: "object"
+ properties:
+ routes:
type: "string"
- path:
+ trips:
type: "string"
- userInfo:
+ TransportMode:
+ type: "object"
+ properties:
+ mode:
type: "string"
- ref:
+ qualifier:
type: "string"
- hostAddress:
- $ref: "#/definitions/InetAddress"
- handler:
- $ref: "#/definitions/URLStreamHandler"
- hashCode:
- type: "integer"
- format: "int32"
- tempState:
- $ref: "#/definitions/UrlDeserializedState"
externalDocs:
description: ""
url: ""