openapi: 3.0.0 info: contact: email: support@getconvoy.io name: Convoy Support url: https://getconvoy.io/docs description: Convoy is a fast and secure webhooks proxy. This document contains datastore's API specification. license: name: Mozilla Public License 2.0 url: https://www.mozilla.org/en-US/MPL/2.0/ termsOfService: https://getconvoy.io/terms title: Convoy API Reference version: 26.3.5 servers: - url: https://us.getconvoy.cloud/api description: US Region - url: https://eu.getconvoy.cloud/api description: EU Region paths: /v1/projects/{projectID}/endpoints: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - in: query name: direction schema: enum: - next - prev type: string x-enum-varnames: - Next - Prev - description: A pagination cursor to fetch the next page of a list example: 01H0JA5MEES38RRK3HTEJC647K in: query name: next_page_cursor schema: type: string - description: The owner ID of the endpoint example: 01H0JA5MEES38RRK3HTEJC647K in: query name: ownerId schema: type: string - description: The number of items to return per page example: 20 in: query name: perPage schema: type: integer - description: A pagination cursor to fetch the previous page of a list example: 01H0JATTVCXZK8FRDX1M1JN3QY in: query name: prev_page_cursor schema: type: string - description: The name of the endpoint example: endpoint-1 in: query name: q schema: type: string - description: Sort order, values are `ASC` or `DESC`, defaults to `DESC` example: ASC | DESC in: query name: sort schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: allOf: - $ref: '#/components/schemas/models.PagedResponse' - properties: content: items: $ref: '#/components/schemas/models.EndpointResponse' type: array type: object type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Endpoints description: This endpoint fetches an endpoints operationId: GetEndpoints summary: List All Endpoints post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EndpointResponse' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Endpoints description: This endpoint creates an endpoint operationId: CreateEndpoint requestBody: content: application/json: schema: $ref: '#/components/schemas/models.CreateEndpoint' description: Endpoint Details required: true summary: Create an Endpoint /v1/projects/{projectID}/endpoints/oauth2/test: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.TestOAuth2Response' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Endpoints description: This endpoint tests the OAuth2 connection by attempting to exchange a token operationId: TestOAuth2Connection requestBody: content: application/json: schema: $ref: '#/components/schemas/models.TestOAuth2Request' description: OAuth2 Configuration required: true summary: Test OAuth2 Connection /v1/projects/{projectID}/endpoints/{endpointID}: delete: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Endpoint ID in: path name: endpointID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Endpoints description: This endpoint deletes an endpoint operationId: DeleteEndpoint summary: Delete Endpoint get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Endpoint ID in: path name: endpointID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EndpointResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Endpoints description: This endpoint fetches an endpoint operationId: GetEndpoint summary: Retrieve Endpoint put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Endpoint ID in: path name: endpointID required: true schema: type: string responses: '202': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EndpointResponse' type: object description: Accepted '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Endpoints description: This endpoint updates an endpoint operationId: UpdateEndpoint requestBody: content: application/json: schema: $ref: '#/components/schemas/models.UpdateEndpoint' description: Endpoint Details required: true summary: Update an Endpoint /v1/projects/{projectID}/endpoints/{endpointID}/activate: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Endpoint ID in: path name: endpointID required: true schema: type: string responses: '202': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EndpointResponse' type: object description: Accepted '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Endpoints description: Activated an inactive endpoint operationId: ActivateEndpoint summary: Activate Endpoint /v1/projects/{projectID}/endpoints/{endpointID}/expire_secret: put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Endpoint ID in: path name: endpointID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EndpointResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Endpoints description: This endpoint expires and re-generates the endpoint secret. operationId: ExpireSecret requestBody: content: application/json: schema: $ref: '#/components/schemas/models.ExpireSecret' description: Expire Secret Body Parameters required: true summary: Roll Endpoint Secret /v1/projects/{projectID}/endpoints/{endpointID}/pause: put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Endpoint ID in: path name: endpointID required: true schema: type: string responses: '202': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EndpointResponse' type: object description: Accepted '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Endpoints description: Toggles an endpoint's status between active and paused states operationId: PauseEndpoint summary: Pause Endpoint /v1/projects/{projectID}/event-types: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: items: $ref: '#/components/schemas/models.EventTypeResponse' type: array type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - EventTypes description: This endpoint fetches the project's event types operationId: GetEventTypes summary: Retrieves a Project's Event Types post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EventTypeResponse' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - EventTypes description: This endpoint creates an event type operationId: CreateEventType requestBody: content: application/json: schema: $ref: '#/components/schemas/models.CreateEventType' description: Event Type Details required: true summary: Create an Event Type /v1/projects/{projectID}/event-types/import: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: items: $ref: '#/components/schemas/models.EventTypeResponse' type: array type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - EventTypes description: This endpoint imports event types from an OpenAPI specification operationId: ImportOpenApiSpec requestBody: content: application/json: schema: $ref: '#/components/schemas/models.ImportOpenAPISpec' description: OpenAPI specification required: true summary: Import Event Types From OpenAPI Spec /v1/projects/{projectID}/event-types/{eventTypeId}: put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EventTypeResponse' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - EventTypes description: This endpoint updates an event type operationId: UpdateEventType requestBody: content: application/json: schema: $ref: '#/components/schemas/models.UpdateEventType' description: Event Type Details required: true summary: Updates an Event Type /v1/projects/{projectID}/event-types/{eventTypeId}/deprecate: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Event Type ID in: path name: eventTypeId required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EventTypeResponse' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - EventTypes description: This endpoint deprecates an event type operationId: DeprecateEventType summary: Deprecates an Event Type /v1/projects/{projectID}/eventdeliveries: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - in: query name: direction schema: enum: - next - prev type: string x-enum-varnames: - Next - Prev - description: The end date example: '2008-05-02T15:04:05' in: query name: endDate schema: type: string - description: A list of endpoint IDs to filter by in: query name: endpointId schema: items: type: string type: array style: form - description: Event ID to filter by in: query name: eventId schema: type: string - description: EventType to filter by in: query name: event_type schema: type: string - description: IdempotencyKey to filter by in: query name: idempotencyKey schema: type: string - description: A pagination cursor to fetch the next page of a list example: 01H0JA5MEES38RRK3HTEJC647K in: query name: next_page_cursor schema: type: string - description: The number of items to return per page example: 20 in: query name: perPage schema: type: integer - description: A pagination cursor to fetch the previous page of a list example: 01H0JATTVCXZK8FRDX1M1JN3QY in: query name: prev_page_cursor schema: type: string - description: Sort order, values are `ASC` or `DESC`, defaults to `DESC` example: ASC | DESC in: query name: sort schema: type: string - description: The start date example: '2006-01-02T15:04:05' in: query name: startDate schema: type: string - description: A list of event delivery statuses to filter by in: query name: status schema: items: type: string type: array style: form - description: SubscriptionID to filter by in: query name: subscriptionId schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: allOf: - $ref: '#/components/schemas/models.PagedResponse' - properties: content: items: $ref: '#/components/schemas/models.EventDeliveryResponse' type: array type: object type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Event Deliveries description: This endpoint retrieves all event deliveries paginated. operationId: GetEventDeliveriesPaged summary: List All Event Deliveries /v1/projects/{projectID}/eventdeliveries/batchretry: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - in: query name: direction schema: enum: - next - prev type: string x-enum-varnames: - Next - Prev - description: The end date example: '2008-05-02T15:04:05' in: query name: endDate schema: type: string - description: A list of endpoint IDs to filter by in: query name: endpointId schema: items: type: string type: array style: form - description: Event ID to filter by in: query name: eventId schema: type: string - description: EventType to filter by in: query name: event_type schema: type: string - description: IdempotencyKey to filter by in: query name: idempotencyKey schema: type: string - description: A pagination cursor to fetch the next page of a list example: 01H0JA5MEES38RRK3HTEJC647K in: query name: next_page_cursor schema: type: string - description: The number of items to return per page example: 20 in: query name: perPage schema: type: integer - description: A pagination cursor to fetch the previous page of a list example: 01H0JATTVCXZK8FRDX1M1JN3QY in: query name: prev_page_cursor schema: type: string - description: Sort order, values are `ASC` or `DESC`, defaults to `DESC` example: ASC | DESC in: query name: sort schema: type: string - description: The start date example: '2006-01-02T15:04:05' in: query name: startDate schema: type: string - description: A list of event delivery statuses to filter by in: query name: status schema: items: type: string type: array style: form - description: SubscriptionID to filter by in: query name: subscriptionId schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Event Deliveries description: This endpoint batch retries multiple event deliveries at once. operationId: BatchRetryEventDelivery summary: Batch Retry Event Delivery /v1/projects/{projectID}/eventdeliveries/forceresend: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Event Deliveries description: This endpoint enables you retry a previously successful event delivery operationId: ForceResendEventDeliveries requestBody: content: application/json: schema: $ref: '#/components/schemas/models.IDs' description: event delivery ids required: true summary: Force Retry Event Delivery /v1/projects/{projectID}/eventdeliveries/{eventDeliveryID}: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: event delivery id in: path name: eventDeliveryID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EventDeliveryResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Event Deliveries description: This endpoint fetches an event delivery. operationId: GetEventDelivery summary: Retrieve an Event Delivery /v1/projects/{projectID}/eventdeliveries/{eventDeliveryID}/deliveryattempts: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: event delivery id in: path name: eventDeliveryID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: items: $ref: '#/components/schemas/datastore.DeliveryAttempt' type: array type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Delivery Attempts description: This endpoint fetches an app message's delivery attempts operationId: GetDeliveryAttempts summary: List Delivery Attempts /v1/projects/{projectID}/eventdeliveries/{eventDeliveryID}/deliveryattempts/{deliveryAttemptID}: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: event delivery id in: path name: eventDeliveryID required: true schema: type: string - description: delivery attempt id in: path name: deliveryAttemptID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/datastore.DeliveryAttempt' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Delivery Attempts description: This endpoint fetches an app event delivery attempt operationId: GetDeliveryAttempt summary: Retrieve a Delivery Attempt /v1/projects/{projectID}/eventdeliveries/{eventDeliveryID}/resend: put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: event delivery id in: path name: eventDeliveryID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EventDeliveryResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Event Deliveries description: This endpoint retries an event delivery. operationId: ResendEventDelivery summary: Retry Event Delivery /v1/projects/{projectID}/events: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - in: query name: direction schema: enum: - next - prev type: string x-enum-varnames: - Next - Prev - description: The end date example: '2008-05-02T15:04:05' in: query name: endDate schema: type: string - description: A list of endpoint ids to filter by in: query name: endpointId schema: items: type: string type: array style: form - description: IdempotencyKey to filter by in: query name: idempotencyKey schema: type: string - description: A pagination cursor to fetch the next page of a list example: 01H0JA5MEES38RRK3HTEJC647K in: query name: next_page_cursor schema: type: string - description: The number of items to return per page example: 20 in: query name: perPage schema: type: integer - description: A pagination cursor to fetch the previous page of a list example: 01H0JATTVCXZK8FRDX1M1JN3QY in: query name: prev_page_cursor schema: type: string - description: Any arbitrary value to filter the events payload in: query name: query schema: type: string - description: Sort order, values are `ASC` or `DESC`, defaults to `DESC` example: ASC | DESC in: query name: sort schema: type: string - description: A list of Source IDs to filter the events by. in: query name: sourceId schema: items: type: string type: array style: form - description: The start date example: '2006-01-02T15:04:05' in: query name: startDate schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: allOf: - $ref: '#/components/schemas/models.PagedResponse' - properties: content: items: $ref: '#/components/schemas/models.EventResponse' type: array type: object type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Events description: This endpoint fetches app events with pagination operationId: GetEventsPaged summary: List All Events post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Events description: This endpoint creates an endpoint event operationId: CreateEndpointEvent requestBody: content: application/json: schema: $ref: '#/components/schemas/models.CreateEvent' description: Event Details required: true summary: Create an Event /v1/projects/{projectID}/events/batchreplay: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - in: query name: direction schema: enum: - next - prev type: string x-enum-varnames: - Next - Prev - description: The end date example: '2008-05-02T15:04:05' in: query name: endDate schema: type: string - description: A list of endpoint ids to filter by in: query name: endpointId schema: items: type: string type: array style: form - description: IdempotencyKey to filter by in: query name: idempotencyKey schema: type: string - description: A pagination cursor to fetch the next page of a list example: 01H0JA5MEES38RRK3HTEJC647K in: query name: next_page_cursor schema: type: string - description: The number of items to return per page example: 20 in: query name: perPage schema: type: integer - description: A pagination cursor to fetch the previous page of a list example: 01H0JATTVCXZK8FRDX1M1JN3QY in: query name: prev_page_cursor schema: type: string - description: Any arbitrary value to filter the events payload in: query name: query schema: type: string - description: Sort order, values are `ASC` or `DESC`, defaults to `DESC` example: ASC | DESC in: query name: sort schema: type: string - description: A list of Source IDs to filter the events by. in: query name: sourceId schema: items: type: string type: array style: form - description: The start date example: '2006-01-02T15:04:05' in: query name: startDate schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: type: string type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Events description: This endpoint replays multiple events at once. operationId: BatchReplayEvents summary: Batch Replay Events /v1/projects/{projectID}/events/broadcast: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EventResponse' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Events description: This endpoint creates a event that is broadcast to every endpoint whose subscription matches the given event type. operationId: CreateBroadcastEvent requestBody: content: application/json: schema: $ref: '#/components/schemas/models.BroadcastEvent' description: Broadcast Event Details required: true summary: Create a Broadcast Event /v1/projects/{projectID}/events/dynamic: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: $ref: '#/components/schemas/handlers.Stub' description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Events description: This endpoint does not require creating endpoint and subscriptions ahead of time. Instead, you supply the endpoint and the payload, and Convoy delivers the events operationId: CreateDynamicEvent requestBody: content: application/json: schema: $ref: '#/components/schemas/models.DynamicEvent' description: Event Details required: true summary: Dynamic Events /v1/projects/{projectID}/events/fanout: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Events description: This endpoint uses the owner_id to fan out an event to multiple endpoints. operationId: CreateEndpointFanoutEvent requestBody: content: application/json: schema: $ref: '#/components/schemas/models.FanoutEvent' description: Event Details required: true summary: Fan Out an Event /v1/projects/{projectID}/events/{eventID}: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: event id in: path name: eventID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EventResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Events description: This endpoint retrieves an event operationId: GetEndpointEvent summary: Retrieve an Event /v1/projects/{projectID}/events/{eventID}/replay: put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: event id in: path name: eventID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.EventResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Events description: This endpoint replays an event afresh assuming it is a new event. operationId: ReplayEndpointEvent summary: Replay Event /v1/projects/{projectID}/meta-events: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - in: query name: direction schema: enum: - next - prev type: string x-enum-varnames: - Next - Prev - description: The end date example: '2008-05-02T15:04:05' in: query name: endDate schema: type: string - description: A pagination cursor to fetch the next page of a list example: 01H0JA5MEES38RRK3HTEJC647K in: query name: next_page_cursor schema: type: string - description: The number of items to return per page example: 20 in: query name: perPage schema: type: integer - description: A pagination cursor to fetch the previous page of a list example: 01H0JATTVCXZK8FRDX1M1JN3QY in: query name: prev_page_cursor schema: type: string - description: Sort order, values are `ASC` or `DESC`, defaults to `DESC` example: ASC | DESC in: query name: sort schema: type: string - description: The start date example: '2006-01-02T15:04:05' in: query name: startDate schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: allOf: - $ref: '#/components/schemas/models.PagedResponse' - properties: content: items: $ref: '#/components/schemas/models.MetaEventResponse' type: array type: object type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Meta Events description: This endpoint fetches meta events with pagination operationId: GetMetaEventsPaged summary: List All Meta Events /v1/projects/{projectID}/meta-events/{metaEventID}: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: meta event id in: path name: metaEventID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.MetaEventResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Meta Events description: This endpoint retrieves a meta event operationId: GetMetaEvent summary: Retrieve a Meta Event /v1/projects/{projectID}/meta-events/{metaEventID}/resend: put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: meta event id in: path name: metaEventID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.MetaEventResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Meta Events description: This endpoint retries a meta event operationId: ResendMetaEvent summary: Retry Meta Event /v1/projects/{projectID}/onboard: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Validate without creating in: query name: dry_run schema: type: boolean responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.BulkOnboardDryRunResponse' type: object description: OK '202': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.BulkOnboardAcceptedResponse' type: object description: Accepted '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Onboard description: This endpoint accepts a CSV file or JSON body to bulk-create endpoints with subscriptions operationId: BulkOnboard requestBody: content: application/octet-stream: schema: format: binary type: string description: Onboard Details (JSON) summary: Bulk Onboard Endpoints with Subscriptions /v1/projects/{projectID}/portal-links: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - in: query name: direction schema: enum: - next - prev type: string x-enum-varnames: - Next - Prev - description: A pagination cursor to fetch the next page of a list example: 01H0JA5MEES38RRK3HTEJC647K in: query name: next_page_cursor schema: type: string - description: The owner ID of the endpoint example: 01H0JA5MEES38RRK3HTEJC647K in: query name: ownerId schema: type: string - description: The number of items to return per page example: 20 in: query name: perPage schema: type: integer - description: A pagination cursor to fetch the previous page of a list example: 01H0JATTVCXZK8FRDX1M1JN3QY in: query name: prev_page_cursor schema: type: string - description: The name of the endpoint example: endpoint-1 in: query name: q schema: type: string - description: Sort order, values are `ASC` or `DESC`, defaults to `DESC` example: ASC | DESC in: query name: sort schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: allOf: - $ref: '#/components/schemas/models.PagedResponse' - properties: content: items: $ref: '#/components/schemas/datastore.PortalLinkResponse' type: array type: object type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Portal Links description: This endpoint fetches multiple portal links operationId: LoadPortalLinksPaged summary: List All Portal Links post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/datastore.PortalLinkResponse' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Portal Links description: This endpoint creates a portal link operationId: CreatePortalLink requestBody: content: application/json: schema: $ref: '#/components/schemas/datastore.CreatePortalLinkRequest' description: Portal Link Details required: true summary: Create a Portal Link /v1/projects/{projectID}/portal-links/{portalLinkID}: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: portal link id in: path name: portalLinkID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/datastore.PortalLinkResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Portal Links description: This endpoint retrieves a portal link by its id. operationId: GetPortalLink summary: Retrieve a Portal Link put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: portal link id in: path name: portalLinkID required: true schema: type: string responses: '202': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/datastore.PortalLinkResponse' type: object description: Accepted '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Portal Links description: This endpoint updates a portal link operationId: UpdatePortalLink requestBody: content: application/json: schema: $ref: '#/components/schemas/datastore.UpdatePortalLinkRequest' description: Portal Link Details required: true summary: Update a Portal Link /v1/projects/{projectID}/portal-links/{portalLinkID}/refresh_token: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: portal link id in: path name: portalLinkID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: type: string type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Portal Links description: This endpoint retrieves a portal link auth token operationId: RefreshPortalLinkAuthToken summary: Get a Portal Link Auth Token /v1/projects/{projectID}/portal-links/{portalLinkID}/revoke: put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: portal link id in: path name: portalLinkID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Portal Links description: This endpoint revokes a portal link operationId: RevokePortalLink summary: Revoke a Portal Link /v1/projects/{projectID}/sources: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - in: query name: direction schema: enum: - next - prev type: string x-enum-varnames: - Next - Prev - description: A pagination cursor to fetch the next page of a list example: 01H0JA5MEES38RRK3HTEJC647K in: query name: next_page_cursor schema: type: string - description: The number of items to return per page example: 20 in: query name: perPage schema: type: integer - description: A pagination cursor to fetch the previous page of a list example: 01H0JATTVCXZK8FRDX1M1JN3QY in: query name: prev_page_cursor schema: type: string - description: The custom source provider e.g. twitter, shopify example: twitter in: query name: provider schema: type: string - description: Sort order, values are `ASC` or `DESC`, defaults to `DESC` example: ASC | DESC in: query name: sort schema: type: string - description: The source type e.g. http, pub_sub example: http in: query name: type schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: allOf: - $ref: '#/components/schemas/models.PagedResponse' - properties: content: items: $ref: '#/components/schemas/models.SourceResponse' type: array type: object type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Sources description: This endpoint fetches multiple sources operationId: LoadSourcesPaged summary: List All Sources post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.SourceResponse' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Sources description: This endpoint creates a source operationId: CreateSource requestBody: content: application/json: schema: $ref: '#/components/schemas/models.CreateSource' description: Source Details required: true summary: Create a Source /v1/projects/{projectID}/sources/test_function: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.FunctionResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Subscriptions description: This endpoint validates that a filter will match a certain payload structure. requestBody: content: application/json: schema: $ref: '#/components/schemas/models.FunctionRequest' description: Function Details required: true summary: Validate Source Function /v1/projects/{projectID}/sources/{sourceID}: delete: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: source id in: path name: sourceID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Sources description: This endpoint deletes a source operationId: DeleteSource summary: Delete a Source get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Source ID in: path name: sourceID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.SourceResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Sources description: This endpoint retrieves a source by its id operationId: GetSource summary: Retrieve a Source put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: source id in: path name: sourceID required: true schema: type: string responses: '202': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.SourceResponse' type: object description: Accepted '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Sources description: This endpoint updates a source operationId: UpdateSource requestBody: content: application/json: schema: $ref: '#/components/schemas/models.UpdateSource' description: Source Details required: true summary: Update a Source /v1/projects/{projectID}/subscriptions: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - in: query name: direction schema: enum: - next - prev type: string x-enum-varnames: - Next - Prev - description: A list of endpointIDs to filter by in: query name: endpointId schema: items: type: string type: array style: form - description: Subscription name to filter by in: query name: name schema: type: string - description: A pagination cursor to fetch the next page of a list example: 01H0JA5MEES38RRK3HTEJC647K in: query name: next_page_cursor schema: type: string - description: The number of items to return per page example: 20 in: query name: perPage schema: type: integer - description: A pagination cursor to fetch the previous page of a list example: 01H0JATTVCXZK8FRDX1M1JN3QY in: query name: prev_page_cursor schema: type: string - description: Sort order, values are `ASC` or `DESC`, defaults to `DESC` example: ASC | DESC in: query name: sort schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: allOf: - $ref: '#/components/schemas/models.PagedResponse' - properties: content: items: $ref: '#/components/schemas/models.SubscriptionResponse' type: array type: object type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Subscriptions description: This endpoint fetches all the subscriptions operationId: GetSubscriptions summary: List All Subscriptions post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.SubscriptionResponse' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Subscriptions description: This endpoint creates a subscriptions operationId: CreateSubscription requestBody: content: application/json: schema: $ref: '#/components/schemas/models.CreateSubscription' description: Subscription details required: true summary: Create a Subscription /v1/projects/{projectID}/subscriptions/test_filter: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: type: boolean type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Subscriptions description: This endpoint validates that a filter will match a certain payload structure. operationId: TestSubscriptionFilter requestBody: content: application/json: schema: $ref: '#/components/schemas/models.TestFilter' description: Filter Details required: true summary: Validate Subscription Filter /v1/projects/{projectID}/subscriptions/test_function: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.FunctionResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Subscriptions description: This endpoint test runs a transform function against a payload. operationId: TestSubscriptionFunction requestBody: content: application/json: schema: $ref: '#/components/schemas/models.FunctionRequest' description: Function Details required: true summary: Test a Subscription Function /v1/projects/{projectID}/subscriptions/{subscriptionID}: delete: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: subscription id in: path name: subscriptionID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Subscriptions description: This endpoint deletes a subscription operationId: DeleteSubscription summary: Delete Subscription get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: subscription id in: path name: subscriptionID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.SubscriptionResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Subscriptions description: This endpoint retrieves a single subscription operationId: GetSubscription summary: Retrieve a Subscription put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: subscription id in: path name: subscriptionID required: true schema: type: string responses: '202': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.SubscriptionResponse' type: object description: Accepted '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Subscriptions description: This endpoint updates a subscription operationId: UpdateSubscription requestBody: content: application/json: schema: $ref: '#/components/schemas/models.UpdateSubscription' description: Subscription Details required: true summary: Update a Subscription /v1/projects/{projectID}/subscriptions/{subscriptionID}/filters: get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Subscription ID in: path name: subscriptionID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: items: $ref: '#/components/schemas/models.FilterResponse' type: array type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Filters description: This endpoint fetches all filters for a subscription operationId: GetFilters summary: List All Filters post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Subscription ID in: path name: subscriptionID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.FilterResponse' type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Filters description: This endpoint creates a new filter for a subscription operationId: CreateFilter requestBody: content: application/json: schema: $ref: '#/components/schemas/models.CreateFilterRequest' description: Filter to create required: true summary: Create a New Filter /v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/bulk: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Subscription ID in: path name: subscriptionID required: true schema: type: string responses: '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: items: $ref: '#/components/schemas/models.FilterResponse' type: array type: object description: Created '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Filters description: This endpoint creates multiple filters for a subscription operationId: BulkCreateFilters requestBody: content: application/json: schema: items: $ref: '#/components/schemas/models.CreateFilterRequest' type: array description: Filters to create required: true summary: Create Multiple Subscription Filters /v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/bulk_update: put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Subscription ID in: path name: subscriptionID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: items: $ref: '#/components/schemas/models.FilterResponse' type: array type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Filters description: This endpoint updates multiple filters for a subscription operationId: BulkUpdateFilters requestBody: content: application/json: schema: items: $ref: '#/components/schemas/models.BulkUpdateFilterRequest' type: array description: Filters to update required: true summary: Update Multiple Subscription Filters /v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/test/{eventType}: post: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Subscription ID in: path name: subscriptionID required: true schema: type: string - description: Event Type in: path name: eventType required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.TestFilterResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Filters description: This endpoint tests a filter against a payload operationId: TestFilter requestBody: content: application/json: schema: $ref: '#/components/schemas/models.TestFilterRequest' description: Payload to test required: true summary: Test a Filter /v1/projects/{projectID}/subscriptions/{subscriptionID}/filters/{filterID}: delete: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Subscription ID in: path name: subscriptionID required: true schema: type: string - description: Filter ID in: path name: filterID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Filters description: This endpoint deletes a filter operationId: DeleteFilter summary: Delete a Filter get: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Subscription ID in: path name: subscriptionID required: true schema: type: string - description: Filter ID in: path name: filterID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.FilterResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Filters description: This endpoint retrieves a single filter operationId: GetFilter summary: Get a Filter put: parameters: - description: Project ID in: path name: projectID required: true schema: type: string - description: Subscription ID in: path name: subscriptionID required: true schema: type: string - description: Filter ID in: path name: filterID required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/models.FilterResponse' type: object description: OK '400': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Bad Request '401': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Unauthorized '404': content: application/json: schema: allOf: - $ref: '#/components/schemas/util.ServerResponse' - properties: data: $ref: '#/components/schemas/handlers.Stub' type: object description: Not Found security: - ApiKeyAuth: [] tags: - Filters description: This endpoint updates an existing filter operationId: UpdateFilter requestBody: content: application/json: schema: $ref: '#/components/schemas/models.UpdateFilterRequest' description: Updated filter required: true summary: Update a Filter components: requestBodies: models.FunctionRequest: content: application/json: schema: $ref: '#/components/schemas/models.FunctionRequest' description: Function Details required: true schemas: datastore.AlertConfiguration: properties: count: type: integer threshold: type: string type: object datastore.AmqpCredentials: properties: password: type: string user: type: string type: object datastore.AmqpPubSubConfig: properties: host: type: string auth: $ref: '#/components/schemas/datastore.AmqpCredentials' bindedExchange: type: string deadLetterExchange: type: string port: type: string queue: type: string routingKey: type: string schema: type: string vhost: type: string type: object datastore.ApiKey: properties: header_name: type: string header_value: type: string type: object datastore.BasicAuth: properties: password: type: string username: type: string type: object datastore.CLIMetadata: properties: event_type: type: string source_id: type: string type: object datastore.CreatePortalLinkRequest: properties: auth_type: type: string can_manage_endpoint: description: Specify whether endpoint management can be done through the Portal Link UI type: boolean endpoints: description: 'Deprecated IDs of endpoints in this portal link' items: type: string type: array name: description: Portal Link Name type: string owner_id: description: OwnerID, the portal link will inherit all the endpoints with this owner ID type: string type: object datastore.CustomResponse: properties: body: type: string content_type: type: string type: object datastore.DeliveryAttempt: properties: api_version: type: string created_at: type: string deleted_at: type: string endpoint_id: type: string error: type: string http_status: type: string ip_address: type: string method: type: string msg_id: type: string project_id: type: string request_http_header: $ref: '#/components/schemas/datastore.HttpHeader' response_data: type: string response_http_header: $ref: '#/components/schemas/datastore.HttpHeader' status: type: boolean uid: type: string updated_at: type: string url: type: string type: object datastore.DeliveryMode: enum: - at_least_once - at_most_once type: string x-enum-varnames: - AtLeastOnceDeliveryMode - AtMostOnceDeliveryMode datastore.Device: properties: created_at: type: string deleted_at: type: string endpoint_id: type: string host_name: type: string last_seen_at: type: string project_id: type: string status: $ref: '#/components/schemas/datastore.DeviceStatus' uid: type: string updated_at: type: string type: object datastore.DeviceStatus: enum: - offline - online - disabled type: string x-enum-varnames: - DeviceStatusOffline - DeviceStatusOnline - DeviceStatusDisabled datastore.EncodingType: enum: - base64 - hex type: string x-enum-varnames: - Base64Encoding - HexEncoding datastore.Endpoint: properties: advanced_signatures: type: boolean authentication: $ref: '#/components/schemas/datastore.EndpointAuthentication' content_type: type: string created_at: type: string deleted_at: type: string description: type: string events: type: integer failure_rate: type: number http_timeout: type: integer mtls_client_cert: allOf: - $ref: '#/components/schemas/datastore.MtlsClientCert' description: mTLS client certificate configuration name: type: string owner_id: type: string project_id: type: string rate_limit: type: integer rate_limit_duration: type: integer secrets: items: $ref: '#/components/schemas/datastore.Secret' type: array slack_webhook_url: type: string status: $ref: '#/components/schemas/datastore.EndpointStatus' support_email: type: string uid: type: string updated_at: type: string url: type: string type: object datastore.EndpointAuthentication: properties: api_key: $ref: '#/components/schemas/datastore.ApiKey' basic_auth: $ref: '#/components/schemas/datastore.BasicAuth' oauth2: $ref: '#/components/schemas/datastore.OAuth2' type: $ref: '#/components/schemas/datastore.EndpointAuthenticationType' type: object datastore.EndpointAuthenticationType: enum: - api_key - oauth2 - basic_auth type: string x-enum-varnames: - APIKeyAuthentication - OAuth2Authentication - BasicAuthentication datastore.EndpointStatus: enum: - active - inactive - paused type: string x-enum-varnames: - ActiveEndpointStatus - InactiveEndpointStatus - PausedEndpointStatus datastore.Event: properties: acknowledged_at: type: string app_id: description: Deprecated type: string created_at: type: string data: description: 'Data is an arbitrary JSON value that gets sent as the body of the webhook to the endpoints' items: type: integer type: array deleted_at: type: string endpoint_metadata: items: $ref: '#/components/schemas/datastore.Endpoint' type: array endpoints: items: type: string type: array event_type: type: string headers: $ref: '#/components/schemas/httpheader.HTTPHeader' idempotency_key: type: string is_duplicate_event: type: boolean metadata: type: string project_id: type: string raw: type: string source_id: type: string source_metadata: $ref: '#/components/schemas/datastore.Source' status: $ref: '#/components/schemas/datastore.EventStatus' uid: type: string updated_at: type: string url_query_params: type: string type: object datastore.EventDeliveryStatus: enum: - Scheduled - Processing - Discarded - Failure - Success - Retry type: string x-enum-varnames: - ScheduledEventStatus - ProcessingEventStatus - DiscardedEventStatus - FailureEventStatus - SuccessEventStatus - RetryEventStatus datastore.EventStatus: enum: - Processing - Failure - Success - Retry - Pending type: string x-enum-varnames: - ProcessingStatus - FailureStatus - SuccessStatus - RetryStatus - PendingStatus datastore.FilterConfiguration: properties: event_types: items: type: string type: array filter: $ref: '#/components/schemas/datastore.FilterSchema' type: object datastore.FilterSchema: properties: body: $ref: '#/components/schemas/datastore.M' headers: $ref: '#/components/schemas/datastore.M' is_flattened: type: boolean type: object datastore.GooglePubSubConfig: properties: project_id: type: string service_account: items: type: integer type: array subscription_id: type: string type: object datastore.HMac: properties: encoding: $ref: '#/components/schemas/datastore.EncodingType' hash: type: string header: type: string secret: type: string type: object datastore.HttpHeader: additionalProperties: type: string type: object datastore.KafkaAuth: properties: hash: type: string password: type: string tls: type: boolean type: type: string username: type: string type: object datastore.KafkaPubSubConfig: properties: auth: $ref: '#/components/schemas/datastore.KafkaAuth' brokers: items: type: string type: array consumer_group_id: type: string topic_name: type: string type: object datastore.M: additionalProperties: true type: object datastore.MetaEventAttempt: properties: request_http_header: $ref: '#/components/schemas/datastore.HttpHeader' response_data: type: string response_http_header: $ref: '#/components/schemas/datastore.HttpHeader' type: object datastore.Metadata: properties: data: description: Data to be sent to endpoint. items: type: integer type: array interval_seconds: type: integer max_retry_seconds: type: integer next_send_time: type: string num_trials: description: 'NumTrials: number of times we have tried to deliver this Event to an application' type: integer raw: type: string retry_limit: type: integer strategy: $ref: '#/components/schemas/datastore.StrategyProvider' type: object datastore.MtlsClientCert: properties: client_cert: description: ClientCert is the client certificate PEM string type: string client_key: description: ClientKey is the client private key PEM string type: string type: object datastore.OAuth2: properties: audience: type: string authentication_type: $ref: '#/components/schemas/datastore.OAuth2AuthenticationType' client_id: type: string client_secret: description: Encrypted at rest type: string expiry_time_unit: allOf: - $ref: '#/components/schemas/datastore.OAuth2ExpiryTimeUnit' description: Expiry time unit (seconds, milliseconds, minutes, hours) field_mapping: allOf: - $ref: '#/components/schemas/datastore.OAuth2FieldMapping' description: Field mapping for flexible token response parsing grant_type: type: string issuer: type: string scope: type: string signing_algorithm: type: string signing_key: allOf: - $ref: '#/components/schemas/datastore.OAuth2SigningKey' description: Encrypted at rest subject: type: string url: type: string type: object datastore.OAuth2AuthenticationType: enum: - shared_secret - client_assertion type: string x-enum-varnames: - SharedSecretAuth - ClientAssertionAuth datastore.OAuth2ExpiryTimeUnit: enum: - seconds - milliseconds - minutes - hours type: string x-enum-varnames: - ExpiryTimeUnitSeconds - ExpiryTimeUnitMilliseconds - ExpiryTimeUnitMinutes - ExpiryTimeUnitHours datastore.OAuth2FieldMapping: properties: access_token: description: Field name for access token (e.g., "accessToken", "access_token", "token") type: string expires_in: description: Field name for expiry time (e.g., "expiresIn", "expires_in", "expiresAt") type: string token_type: description: Field name for token type (e.g., "tokenType", "token_type") type: string type: object datastore.OAuth2SigningKey: properties: crv: description: EC (Elliptic Curve) key fields type: string d: description: Private key (EC only) type: string dp: description: RSA first factor CRT exponent (RSA private key only) type: string dq: description: RSA second factor CRT exponent (RSA private key only) type: string e: description: RSA public exponent (RSA only) type: string kid: description: Key ID type: string kty: description: 'Key type: "EC" or "RSA"' type: string n: description: RSA key fields type: string p: description: RSA first prime factor (RSA private key only) type: string q: description: RSA second prime factor (RSA private key only) type: string qi: description: RSA first CRT coefficient (RSA private key only) type: string x: description: X coordinate (EC only) type: string y: description: Y coordinate (EC only) type: string type: object datastore.PageDirection: enum: - next - prev type: string x-enum-varnames: - Next - Prev datastore.PaginationData: properties: has_next_page: type: boolean has_prev_page: type: boolean next_page_cursor: type: string per_page: type: integer prev_page_cursor: type: string type: object datastore.PortalAuthType: enum: - refresh_token - static_token type: string x-enum-varnames: - PortalAuthTypeRefreshToken - PortalAuthTypeStaticToken datastore.PortalLinkResponse: properties: auth_key: type: string auth_type: $ref: '#/components/schemas/datastore.PortalAuthType' can_manage_endpoint: type: boolean created_at: type: string deleted_at: type: string endpoint_count: type: integer endpoints: items: type: string type: array endpoints_metadata: items: $ref: '#/components/schemas/datastore.Endpoint' type: array name: type: string owner_id: type: string project_id: type: string token: type: string uid: type: string updated_at: type: string url: type: string type: object datastore.ProviderConfig: properties: twitter: $ref: '#/components/schemas/datastore.TwitterProviderConfig' type: object datastore.PubSubConfig: properties: amqp: $ref: '#/components/schemas/datastore.AmqpPubSubConfig' google: $ref: '#/components/schemas/datastore.GooglePubSubConfig' kafka: $ref: '#/components/schemas/datastore.KafkaPubSubConfig' sqs: $ref: '#/components/schemas/datastore.SQSPubSubConfig' type: $ref: '#/components/schemas/datastore.PubSubType' workers: type: integer type: object datastore.PubSubType: enum: - sqs - google - kafka - amqp type: string x-enum-varnames: - SqsPubSub - GooglePubSub - KafkaPubSub - AmqpPubSub datastore.RateLimitConfiguration: properties: count: type: integer duration: type: integer type: object datastore.RetryConfiguration: properties: duration: type: integer retry_count: type: integer type: $ref: '#/components/schemas/datastore.StrategyProvider' type: object datastore.SQSPubSubConfig: properties: access_key_id: type: string default_region: type: string endpoint: description: 'Optional: for LocalStack testing' type: string queue_name: type: string secret_key: type: string type: object datastore.Secret: properties: created_at: type: string deleted_at: type: string expires_at: type: string uid: type: string updated_at: type: string value: type: string type: object datastore.Source: properties: body_function: type: string created_at: type: string custom_response: $ref: '#/components/schemas/datastore.CustomResponse' deleted_at: type: string forward_headers: items: type: string type: array header_function: type: string idempotency_keys: items: type: string type: array is_disabled: type: boolean mask_id: type: string name: type: string project_id: type: string provider: $ref: '#/components/schemas/datastore.SourceProvider' provider_config: $ref: '#/components/schemas/datastore.ProviderConfig' pub_sub: $ref: '#/components/schemas/datastore.PubSubConfig' type: $ref: '#/components/schemas/datastore.SourceType' uid: type: string updated_at: type: string url: type: string verifier: $ref: '#/components/schemas/datastore.VerifierConfig' type: object datastore.SourceProvider: enum: - github - twitter - shopify type: string x-enum-varnames: - GithubSourceProvider - TwitterSourceProvider - ShopifySourceProvider datastore.SourceType: enum: - http - rest_api - pub_sub - db_change_stream type: string x-enum-varnames: - HTTPSource - RestApiSource - PubSubSource - DBChangeStream datastore.StrategyProvider: enum: - linear - exponential type: string x-enum-varnames: - LinearStrategyProvider - ExponentialStrategyProvider datastore.SubscriptionType: enum: - cli - api type: string x-enum-varnames: - SubscriptionTypeCLI - SubscriptionTypeAPI datastore.TwitterProviderConfig: properties: crc_verified_at: type: string type: object datastore.UpdatePortalLinkRequest: properties: auth_type: type: string can_manage_endpoint: description: Specify whether endpoint management can be done through the Portal Link UI type: boolean endpoints: description: 'Deprecated IDs of endpoints in this portal link' items: type: string type: array name: description: Portal Link Name type: string owner_id: description: OwnerID, the portal link will inherit all the endpoints with this owner ID type: string type: object datastore.VerifierConfig: properties: api_key: $ref: '#/components/schemas/datastore.ApiKey' basic_auth: $ref: '#/components/schemas/datastore.BasicAuth' hmac: $ref: '#/components/schemas/datastore.HMac' type: $ref: '#/components/schemas/datastore.VerifierType' type: object datastore.VerifierType: enum: - noop - hmac - basic_auth - api_key type: string x-enum-varnames: - NoopVerifier - HMacVerifier - BasicAuthVerifier - APIKeyVerifier handlers.Stub: type: object httpheader.HTTPHeader: additionalProperties: items: type: string type: array type: object models.AlertConfiguration: properties: count: description: Count type: integer threshold: description: Threshold type: string type: object models.AmqpAuth: properties: password: type: string user: type: string type: object models.AmqpExchange: properties: exchange: type: string routingKey: type: string type: object models.AmqpPubSubconfig: properties: host: type: string auth: $ref: '#/components/schemas/models.AmqpAuth' bindExchange: $ref: '#/components/schemas/models.AmqpExchange' deadLetterExchange: type: string port: type: string queue: type: string schema: type: string vhost: type: string type: object models.ApiKey: properties: header_name: type: string header_value: type: string required: - header_name - header_value type: object models.BasicAuth: properties: password: type: string username: type: string required: - password - username type: object models.BroadcastEvent: properties: acknowledged_at: type: string custom_headers: additionalProperties: type: string description: Specifies custom headers you want convoy to add when the event is dispatched to your endpoint type: object data: description: 'Data is an arbitrary JSON value that gets sent as the body of the webhook to the endpoints' type: object event_type: description: Event Type is used for filtering and debugging e.g invoice.paid type: string idempotency_key: description: Specify a key for event deduplication type: string type: object models.BulkOnboardAcceptedResponse: properties: batch_count: type: integer message: type: string total_items: type: integer type: object models.BulkOnboardDryRunResponse: properties: errors: items: $ref: '#/components/schemas/models.OnboardValidationError' type: array total_rows: type: integer valid_count: type: integer type: object models.BulkOnboardRequest: properties: items: items: $ref: '#/components/schemas/models.OnboardItem' type: array type: object models.BulkUpdateFilterRequest: properties: body: additionalProperties: true type: object event_type: type: string headers: additionalProperties: true type: object uid: type: string required: - uid type: object models.CreateEndpoint: properties: advanced_signatures: description: 'Convoy supports two [signature formats](https://getconvoy.io/docs/product-manual/signatures) -- simple or advanced. If left unspecified, we default to false.' type: boolean appID: description: Deprecated but necessary for backward compatibility type: string authentication: allOf: - $ref: '#/components/schemas/models.EndpointAuthentication' description: 'This is used to define any custom authentication required by the endpoint. This shouldn''t be needed often because webhook endpoints usually should be exposed to the internet.' content_type: description: Content type for the endpoint. Defaults to application/json if not specified. type: string description: description: 'Human-readable description of the endpoint. Think of this as metadata describing the endpoint' type: string http_timeout: description: Define endpoint http timeout in seconds. type: integer is_disabled: description: This is used to manually enable/disable the endpoint. type: boolean mtls_client_cert: allOf: - $ref: '#/components/schemas/models.MtlsClientCert' description: mTLS client certificate configuration for the endpoint name: description: Endpoint name. type: string owner_id: description: 'The OwnerID is used to group more than one endpoint together to achieve [fanout](https://getconvoy.io/docs/manual/endpoints#Endpoint%20Owner%20ID)' type: string rate_limit: description: 'Rate limit is the total number of requests to be sent to an endpoint in the time duration specified in RateLimitDuration' type: integer rate_limit_duration: description: Rate limit duration specifies the time range for the rate limit. type: integer secret: description: Endpoint's webhook secret. If not provided, Convoy autogenerates one for the endpoint. type: string slack_webhook_url: description: 'Slack webhook URL is an alternative method to support email where endpoint developers can receive failure notifications on a slack channel.' type: string support_email: description: 'Endpoint developers support email. This is used for communicating endpoint state changes. You should always turn this on when disabling endpoints are enabled.' type: string url: description: 'URL is the endpoint''s URL prefixed with https. non-https urls are currently not supported.' type: string type: object models.CreateEvent: properties: app_id: description: Deprecated but necessary for backward compatibility. type: string custom_headers: additionalProperties: type: string description: Specifies custom headers you want convoy to add when the event is dispatched to your endpoint type: object data: description: 'Data is an arbitrary JSON value that gets sent as the body of the webhook to the endpoints' type: object endpoint_id: description: Specifies the endpoint to send this event to. type: string event_type: description: Event Type is used for filtering and debugging e.g invoice.paid type: string idempotency_key: description: Specify a key for event deduplication type: string type: object models.CreateEventType: properties: category: description: Category is a product-specific grouping for the event type type: string description: description: Description is used to describe what the event type does type: string json_schema: additionalProperties: true description: JSONSchema is the JSON structure of the event type type: object name: description: Name is the event type name. E.g., invoice.created type: string type: object models.CreateFilterRequest: properties: body: allOf: - $ref: '#/components/schemas/datastore.M' description: Body matching criteria (optional) event_type: description: Type of event this filter applies to (required) type: string headers: allOf: - $ref: '#/components/schemas/datastore.M' description: Header matching criteria (optional) required: - event_type type: object models.CreateSource: properties: body_function: description: 'Function is a javascript function used to mutate the payload immediately after ingesting an event' type: string custom_response: allOf: - $ref: '#/components/schemas/models.CustomResponse' description: 'Custom response is used to define a custom response for incoming webhooks project sources only.' header_function: description: 'Function is a javascript function used to mutate the headers immediately after ingesting an event' type: string idempotency_keys: description: 'IdempotencyKeys are used to specify parts of a webhook request to uniquely identify the event in an incoming webhooks project.' items: type: string type: array name: description: Source name. type: string provider: allOf: - $ref: '#/components/schemas/datastore.SourceProvider' description: Use this to specify one of our predefined source types. pub_sub: allOf: - $ref: '#/components/schemas/models.PubSubConfig' description: 'PubSub are used to specify message broker sources for outgoing webhooks projects.' type: allOf: - $ref: '#/components/schemas/datastore.SourceType' description: Source Type. verifier: allOf: - $ref: '#/components/schemas/models.VerifierConfig' description: 'Verifiers are used to verify webhook events ingested in incoming webhooks projects. If set, type is required and match the verifier type object you choose.' type: object models.CreateSubscription: properties: alert_config: allOf: - $ref: '#/components/schemas/models.AlertConfiguration' description: Alert configuration app_id: description: Deprecated but necessary for backward compatibility type: string delivery_mode: allOf: - $ref: '#/components/schemas/datastore.DeliveryMode' description: Delivery mode configuration endpoint_id: description: Destination endpoint ID type: string filter_config: allOf: - $ref: '#/components/schemas/models.FilterConfiguration' description: Filter configuration function: description: 'Convoy supports mutating your request payload using a js function. Use this field to specify a `transform` function for this purpose. See this[https://docs.getconvoy.io/product-manual/subscriptions#functions] for more' type: string name: description: Subscription Nme type: string rate_limit_config: allOf: - $ref: '#/components/schemas/models.RateLimitConfiguration' description: Rate limit configuration source_id: description: Source Id type: string type: object models.CustomResponse: properties: body: type: string content_type: type: string type: object models.DynamicEvent: properties: custom_headers: additionalProperties: type: string description: Specifies custom headers you want convoy to add when the event is dispatched to your endpoint type: object data: description: 'Data is an arbitrary JSON value that gets sent as the body of the webhook to the endpoints' type: object event_type: description: Event Type is used for filtering and debugging e.g invoice.paid type: string event_types: description: A list of event types for the subscription filter config items: type: string type: array idempotency_key: description: Specify a key for event deduplication type: string secret: description: Endpoint's webhook secret. If not provided, Convoy autogenerates one for the endpoint. type: string url: description: 'URL is the endpoint''s URL prefixed with https. non-https urls are currently not supported.' type: string type: object models.EndpointAuthentication: properties: api_key: $ref: '#/components/schemas/models.ApiKey' basic_auth: $ref: '#/components/schemas/models.BasicAuth' oauth2: $ref: '#/components/schemas/models.OAuth2' type: $ref: '#/components/schemas/datastore.EndpointAuthenticationType' type: object models.EndpointResponse: properties: advanced_signatures: type: boolean authentication: $ref: '#/components/schemas/datastore.EndpointAuthentication' content_type: type: string created_at: type: string deleted_at: type: string description: type: string events: type: integer failure_rate: type: number http_timeout: type: integer mtls_client_cert: allOf: - $ref: '#/components/schemas/datastore.MtlsClientCert' description: mTLS client certificate configuration name: type: string owner_id: type: string project_id: type: string rate_limit: type: integer rate_limit_duration: type: integer secrets: items: $ref: '#/components/schemas/datastore.Secret' type: array slack_webhook_url: type: string status: $ref: '#/components/schemas/datastore.EndpointStatus' support_email: type: string uid: type: string updated_at: type: string url: type: string type: object models.EventDeliveryResponse: properties: acknowledged_at: type: string cli_metadata: $ref: '#/components/schemas/datastore.CLIMetadata' created_at: type: string deleted_at: type: string delivery_mode: $ref: '#/components/schemas/datastore.DeliveryMode' description: type: string device_id: type: string device_metadata: $ref: '#/components/schemas/datastore.Device' endpoint_id: type: string endpoint_metadata: $ref: '#/components/schemas/datastore.Endpoint' event_id: type: string event_metadata: $ref: '#/components/schemas/datastore.Event' event_type: type: string headers: $ref: '#/components/schemas/httpheader.HTTPHeader' idempotency_key: type: string latency: description: 'Deprecated: Latency is deprecated.' type: string latency_seconds: type: number metadata: $ref: '#/components/schemas/datastore.Metadata' project_id: type: string source_metadata: $ref: '#/components/schemas/datastore.Source' status: $ref: '#/components/schemas/datastore.EventDeliveryStatus' subscription_id: type: string uid: type: string updated_at: type: string url_query_params: type: string type: object models.EventResponse: properties: acknowledged_at: type: string app_id: description: Deprecated type: string created_at: type: string data: description: 'Data is an arbitrary JSON value that gets sent as the body of the webhook to the endpoints' items: type: integer type: array deleted_at: type: string endpoint_metadata: items: $ref: '#/components/schemas/datastore.Endpoint' type: array endpoints: items: type: string type: array event_type: type: string headers: $ref: '#/components/schemas/httpheader.HTTPHeader' idempotency_key: type: string is_duplicate_event: type: boolean metadata: type: string project_id: type: string raw: type: string source_id: type: string source_metadata: $ref: '#/components/schemas/datastore.Source' status: $ref: '#/components/schemas/datastore.EventStatus' uid: type: string updated_at: type: string url_query_params: type: string type: object models.EventTypeResponse: properties: category: type: string deprecated_at: type: string description: type: string json_schema: items: type: integer type: array name: type: string uid: type: string type: object models.ExpireSecret: properties: expiration: description: 'Amount of time to wait before expiring the old endpoint secret. If AdvancedSignatures is turned on for the project, signatures for both secrets will be generated up until the old signature is expired.' type: integer secret: description: New Endpoint secret value. type: string type: object models.FS: properties: body: $ref: '#/components/schemas/datastore.M' headers: $ref: '#/components/schemas/datastore.M' type: object models.FanoutEvent: properties: custom_headers: additionalProperties: type: string description: Specifies custom headers you want convoy to add when the event is dispatched to your endpoint type: object data: description: 'Data is an arbitrary JSON value that gets sent as the body of the webhook to the endpoints' type: object event_type: description: Event Type is used for filtering and debugging e.g invoice.paid type: string idempotency_key: description: Specify a key for event deduplication type: string owner_id: description: Used for fanout, sends this event to all endpoints with this OwnerID. type: string type: object models.FilterConfiguration: properties: event_types: description: List of event types that the subscription should match items: type: string type: array filter: allOf: - $ref: '#/components/schemas/models.FS' description: Body & Header filters type: object models.FilterResponse: properties: body: $ref: '#/components/schemas/datastore.M' event_type: type: string headers: $ref: '#/components/schemas/datastore.M' raw_body: $ref: '#/components/schemas/datastore.M' raw_headers: $ref: '#/components/schemas/datastore.M' subscription_id: type: string uid: type: string type: object models.FilterSchema: properties: body: {} header: {} type: object models.FunctionRequest: properties: function: type: string payload: additionalProperties: {} type: object type: type: string type: object models.FunctionResponse: properties: log: items: type: string type: array payload: {} type: object models.GooglePubSubConfig: properties: project_id: type: string service_account: items: type: integer type: array subscription_id: type: string type: object models.HMac: properties: encoding: $ref: '#/components/schemas/datastore.EncodingType' hash: type: string header: type: string secret: type: string required: - encoding - hash - header - secret type: object models.IDs: properties: ids: description: A list of event delivery IDs to forcefully resend. items: type: string type: array type: object models.ImportOpenAPISpec: properties: spec: type: string type: object models.KafkaAuth: properties: hash: type: string password: type: string tls: type: boolean type: type: string username: type: string type: object models.KafkaPubSubConfig: properties: auth: $ref: '#/components/schemas/models.KafkaAuth' brokers: items: type: string type: array consumer_group_id: type: string topic_name: type: string type: object models.MetaEventResponse: properties: attempt: $ref: '#/components/schemas/datastore.MetaEventAttempt' created_at: type: string deleted_at: type: string event_type: type: string metadata: $ref: '#/components/schemas/datastore.Metadata' project_id: type: string status: $ref: '#/components/schemas/datastore.EventDeliveryStatus' uid: type: string updated_at: type: string type: object models.MtlsClientCert: properties: client_cert: description: ClientCert is the client certificate PEM string type: string client_key: description: ClientKey is the client private key PEM string type: string type: object models.OAuth2: properties: audience: type: string authentication_type: type: string client_id: type: string client_secret: type: string expiry_time_unit: description: Expiry time unit (seconds, milliseconds, minutes, hours) type: string field_mapping: allOf: - $ref: '#/components/schemas/models.OAuth2FieldMapping' description: Field mapping for flexible token response parsing grant_type: type: string issuer: type: string scope: type: string signing_algorithm: type: string signing_key: $ref: '#/components/schemas/models.OAuth2SigningKey' subject: type: string url: type: string type: object models.OAuth2FieldMapping: properties: access_token: description: Field name for access token (e.g., "accessToken", "access_token", "token") type: string expires_in: description: Field name for expiry time (e.g., "expiresIn", "expires_in", "expiresAt") type: string token_type: description: Field name for token type (e.g., "tokenType", "token_type") type: string type: object models.OAuth2SigningKey: properties: crv: description: EC (Elliptic Curve) key fields type: string d: description: Private key (EC) or private exponent (RSA) type: string dp: description: RSA first factor CRT exponent (RSA private key only) type: string dq: description: RSA second factor CRT exponent (RSA private key only) type: string e: description: RSA public exponent (RSA only) type: string kid: description: Key ID type: string kty: description: 'Key type: "EC" or "RSA"' type: string n: description: RSA key fields type: string p: description: RSA first prime factor (RSA private key only) type: string q: description: RSA second prime factor (RSA private key only) type: string qi: description: RSA first CRT coefficient (RSA private key only) type: string x: description: X coordinate (EC only) type: string y: description: Y coordinate (EC only) type: string type: object models.OnboardItem: properties: auth_password: type: string auth_username: type: string event_type: type: string name: type: string url: type: string type: object models.OnboardValidationError: properties: field: type: string message: type: string row: type: integer type: object models.PagedResponse: properties: content: {} pagination: allOf: - $ref: '#/components/schemas/datastore.PaginationData' nullable: true type: object models.PubSubConfig: properties: amqp: $ref: '#/components/schemas/models.AmqpPubSubconfig' google: $ref: '#/components/schemas/models.GooglePubSubConfig' kafka: $ref: '#/components/schemas/models.KafkaPubSubConfig' sqs: $ref: '#/components/schemas/models.SQSPubSubConfig' type: $ref: '#/components/schemas/datastore.PubSubType' workers: type: integer type: object models.RateLimitConfiguration: properties: count: type: integer duration: type: integer type: object models.RetryConfiguration: properties: duration: description: Used to specify a valid Go time duration e.g 10s, 1h3m for how long to wait between event delivery retries type: string interval_seconds: description: Used to specify a time in seconds for how long to wait between event delivery retries, type: integer retry_count: description: Used to specify the max number of retries type: integer type: allOf: - $ref: '#/components/schemas/datastore.StrategyProvider' description: Retry Strategy type type: object models.SQSPubSubConfig: properties: access_key_id: type: string default_region: type: string queue_name: type: string secret_key: type: string type: object models.SourceResponse: properties: body_function: type: string created_at: type: string custom_response: $ref: '#/components/schemas/datastore.CustomResponse' deleted_at: type: string forward_headers: items: type: string type: array header_function: type: string idempotency_keys: items: type: string type: array is_disabled: type: boolean mask_id: type: string name: type: string project_id: type: string provider: $ref: '#/components/schemas/datastore.SourceProvider' provider_config: $ref: '#/components/schemas/datastore.ProviderConfig' pub_sub: $ref: '#/components/schemas/datastore.PubSubConfig' type: $ref: '#/components/schemas/datastore.SourceType' uid: type: string updated_at: type: string url: type: string verifier: $ref: '#/components/schemas/datastore.VerifierConfig' type: object models.SubscriptionResponse: properties: alert_config: allOf: - $ref: '#/components/schemas/datastore.AlertConfiguration' description: subscription config created_at: type: string deleted_at: type: string delivery_mode: $ref: '#/components/schemas/datastore.DeliveryMode' device_metadata: $ref: '#/components/schemas/datastore.Device' endpoint_metadata: $ref: '#/components/schemas/datastore.Endpoint' filter_config: $ref: '#/components/schemas/datastore.FilterConfiguration' function: type: string name: type: string project_id: type: string rate_limit_config: $ref: '#/components/schemas/datastore.RateLimitConfiguration' retry_config: $ref: '#/components/schemas/datastore.RetryConfiguration' source_metadata: $ref: '#/components/schemas/datastore.Source' type: $ref: '#/components/schemas/datastore.SubscriptionType' uid: type: string updated_at: type: string type: object models.TestFilter: properties: request: allOf: - $ref: '#/components/schemas/models.FilterSchema' description: Same Request & Headers schema: allOf: - $ref: '#/components/schemas/models.FilterSchema' description: Sample test schema type: object models.TestFilterRequest: properties: payload: description: Sample payload to test against the filter (required) required: - payload type: object models.TestFilterResponse: properties: is_match: description: Whether the payload matches the filter criteria type: boolean type: object models.TestOAuth2Request: properties: oauth2: $ref: '#/components/schemas/models.OAuth2' type: object models.TestOAuth2Response: properties: access_token: type: string error: type: string expires_at: type: string message: type: string success: type: boolean token_type: type: string type: object models.UpdateCustomResponse: properties: body: nullable: true type: string content_type: nullable: true type: string type: object models.UpdateEndpoint: properties: advanced_signatures: description: 'Convoy supports two [signature formats](https://getconvoy.io/docs/product-manual/signatures) -- simple or advanced. If left unspecified, we default to false.' type: boolean authentication: allOf: - $ref: '#/components/schemas/models.EndpointAuthentication' description: 'This is used to define any custom authentication required by the endpoint. This shouldn''t be needed often because webhook endpoints usually should be exposed to the internet.' content_type: description: Content type for the endpoint. Defaults to application/json if not specified. type: string description: description: 'Human-readable description of the endpoint. Think of this as metadata describing the endpoint' type: string http_timeout: description: Define endpoint http timeout in seconds. type: integer is_disabled: description: This is used to manually enable/disable the endpoint. type: boolean mtls_client_cert: allOf: - $ref: '#/components/schemas/models.MtlsClientCert' description: mTLS client certificate configuration for the endpoint name: type: string owner_id: description: 'The OwnerID is used to group more than one endpoint together to achieve [fanout](https://getconvoy.io/docs/manual/endpoints#Endpoint%20Owner%20ID)' type: string rate_limit: description: 'Rate limit is the total number of requests to be sent to an endpoint in the time duration specified in RateLimitDuration' type: integer rate_limit_duration: description: Rate limit duration specifies the time range for the rate limit. type: integer secret: description: Endpoint's webhook secret. If not provided, Convoy autogenerates one for the endpoint. type: string slack_webhook_url: description: 'Slack webhook URL is an alternative method to support email where endpoint developers can receive failure notifications on a slack channel.' type: string support_email: description: 'Endpoint developers support email. This is used for communicating endpoint state changes. You should always turn this on when disabling endpoints are enabled.' type: string url: description: 'URL is the endpoint''s URL prefixed with https. non-https urls are currently not supported.' type: string type: object models.UpdateEventType: properties: category: description: Category is a product-specific grouping for the event type type: string description: description: Description is used to describe what the event type does type: string json_schema: additionalProperties: true description: JSONSchema is the JSON structure of the event type type: object type: object models.UpdateFilterRequest: properties: body: allOf: - $ref: '#/components/schemas/datastore.M' description: Body matching criteria (optional) event_type: description: Type of event this filter applies to (optional) type: string headers: allOf: - $ref: '#/components/schemas/datastore.M' description: Header matching criteria (optional) is_flattened: description: Whether the filter uses flattened JSON paths (optional) type: boolean type: object models.UpdateSource: properties: body_function: description: 'Function is a javascript function used to mutate the payload immediately after ingesting an event' type: string custom_response: allOf: - $ref: '#/components/schemas/models.UpdateCustomResponse' description: 'Custom response is used to define a custom response for incoming webhooks project sources only.' forward_headers: description: Soecfy header you want convoy to save from the ingest request and forward to your endpoints when the event is dispatched. items: type: string type: array header_function: description: 'Function is a javascript function used to mutate the headers immediately after ingesting an event' type: string idempotency_keys: description: 'IdempotencyKeys are used to specify parts of a webhook request to uniquely identify the event in an incoming webhooks project.' items: type: string type: array is_disabled: description: This is used to manually enable/disable the source. type: boolean name: description: Source name. type: string pub_sub: allOf: - $ref: '#/components/schemas/models.PubSubConfig' description: 'PubSub are used to specify message broker sources for outgoing webhooks projects, you only need to specify this when the source type is `pub_sub`.' type: allOf: - $ref: '#/components/schemas/datastore.SourceType' description: Source Type. verifier: allOf: - $ref: '#/components/schemas/models.VerifierConfig' description: 'Verifiers are used to verify webhook events ingested in incoming webhooks projects. If set, type is required and match the verifier type object you choose.' type: object models.UpdateSubscription: properties: alert_config: allOf: - $ref: '#/components/schemas/models.AlertConfiguration' description: Alert configuration app_id: description: Deprecated but necessary for backward compatibility type: string delivery_mode: allOf: - $ref: '#/components/schemas/datastore.DeliveryMode' description: Delivery mode configuration endpoint_id: description: Destination endpoint ID type: string filter_config: allOf: - $ref: '#/components/schemas/models.FilterConfiguration' description: Filter configuration function: description: 'Convoy supports mutating your request payload using a js function. Use this field to specify a `transform` function for this purpose. See this[https://docs.getconvoy.io/product-manual/subscriptions#functions] for more' type: string name: description: Subscription Nme type: string rate_limit_config: allOf: - $ref: '#/components/schemas/models.RateLimitConfiguration' description: Rate limit configuration retry_config: allOf: - $ref: '#/components/schemas/models.RetryConfiguration' description: Retry configuration source_id: description: Source Id type: string type: object models.VerifierConfig: properties: api_key: $ref: '#/components/schemas/models.ApiKey' basic_auth: $ref: '#/components/schemas/models.BasicAuth' hmac: $ref: '#/components/schemas/models.HMac' type: $ref: '#/components/schemas/datastore.VerifierType' required: - type type: object util.ServerResponse: properties: message: type: string status: type: boolean type: object securitySchemes: ApiKeyAuth: in: header name: Authorization type: apiKey tags: - description: Subscription related APIs name: Subscriptions - description: Endpoint related APIs name: Endpoints - description: Event related APIs name: Events - description: Source related APIs name: Sources - description: EventDelivery related APIs name: Event Deliveries - description: Delivery Attempt related APIs name: Delivery Attempts - description: Portal Links related APIs name: Portal Links - description: Meta Events related APIs name: Meta Events - description: Event Types related APIs name: EventTypes - description: Filters related APIs name: Filters - description: Onboard related APIs name: Onboard