openapi: 3.2.0 info: title: Logius Subscriptions API version: 0.1.5 license: name: EUPL 1.2 url: https://opensource.org/licenses/EUPL-1.2 description: 'Operations tagged subscriptions across 2 of this provider''s published API definitions: logius-notificatieservices-openapi.yml, logius-notificatieservices-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: /api/v1 security: - JWT-Claims: [] tags: - name: Subscriptions paths: /subscriptions: get: operationId: subscriptions_list summary: List subscriptions description: Returns a list with information about all subscriptions. responses: '200': description: OK headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/json: schema: required: - count - results type: object properties: count: type: integer next: type: string format: uri previous: type: string format: uri results: type: array items: $ref: '#/components/schemas/Subscription' '400': description: Bad request headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' '401': description: Unauthorized headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '406': description: Not acceptable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '410': description: Gone headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '415': description: Unsupported media type headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '429': description: Too many requests headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '501': description: Not Implemented headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '503': description: Service Unavailable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' tags: - Subscriptions security: - JWT-Claims: - (events.publish | events.consume) post: operationId: subscriptions_post summary: Subscribe description: Subscribe to receive events. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SubscriptionRequest' responses: '201': description: Created headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' Location: schema: type: string format: uri description: Uri to the created instance. content: application/json: schema: $ref: '#/components/schemas/Subscription' '400': description: Bad request headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' '401': description: Unauthorized headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '406': description: Not acceptable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '410': description: Gone headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '415': description: Unsupported media type headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '429': description: Too many requests headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '501': description: Not Implemented headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '503': description: Service Unavailable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' tags: - Subscriptions security: - JWT-Claims: - events.consume servers: - url: /api/v1 /subscriptions/{uuid}: get: operationId: subscription_get summary: Request subscription info description: Returns information about the specified subscription. parameters: - in: path name: uuid description: Uuid of the subscription required: true schema: type: string format: uuid responses: '200': description: OK headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/json: schema: $ref: '#/components/schemas/Subscription' '400': description: Bad request headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' '401': description: Unauthorized headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not found headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '406': description: Not acceptable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '410': description: Gone headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '412': description: Precondition failed headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '415': description: Unsupported media type headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '429': description: Too many requests headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '501': description: Not Implemented headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '503': description: Service Unavailable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' tags: - Subscriptions security: - JWT-Claims: - (events.publish | events.consume) put: operationId: subscription_put summary: Update subscription description: Update the specified subscription by replacing all properties. parameters: - in: path name: uuid required: true schema: type: string description: Uuid of the subscription requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Subscription' responses: '200': description: OK headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/json: schema: $ref: '#/components/schemas/Subscription' '400': description: Bad request headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' '401': description: Unauthorized headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not found headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '406': description: Not acceptable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '410': description: Gone headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '415': description: Unsupported media type headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '429': description: Too many requests headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '501': description: Not Implemented headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '503': description: Service Unavailable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' tags: - Subscriptions security: - JWT-Claims: - events.consume patch: operationId: subscription_patch summary: Patch subscription description: Update the specified subscription by replacing the modified properties. parameters: - in: path name: uuid required: true schema: type: string description: Uuid of the subscription requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Subscription' responses: '200': description: OK headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/json: schema: $ref: '#/components/schemas/Subscription' '400': description: Bad request headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' '401': description: Unauthorized headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not found headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '406': description: Not acceptable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '410': description: Gone headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '415': description: Unsupported media type headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '429': description: Too many requests headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '501': description: Not Implemented headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '503': description: Service Unavailable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' tags: - Subscriptions security: - JWT-Claims: - events.consume delete: operationId: subscription_delete summary: Delete subscription description: Delete the specified subscription. parameters: - in: path name: uuid required: true schema: type: string description: Uuid of the subscription responses: '204': description: No content headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' '401': description: Unauthorized headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not found headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '406': description: Not acceptable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '409': description: Conflict headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '410': description: Gone headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '415': description: Unsupported media type headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '429': description: Too many requests headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '501': description: Not Implemented headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '503': description: Service Unavailable headers: API-version: schema: type: string description: 'Version of the API. For example: 1.2.1.' content: application/problem+json: schema: $ref: '#/components/schemas/Error' tags: - Subscriptions security: - JWT-Claims: - events.consume servers: - url: /api/v1 components: schemas: RefreshTokenCredential: type: object description: An access token credential with a refresh token. allOf: - $ref: '#/components/schemas/AccessTokenCredential' - type: object properties: refreshToken: description: REQUIRED. An refresh token credential used to acquire access tokens. type: string refreshTokenEndpoint: type: string format: uri description: REQUIRED. A URL at which the refresh token can be traded for an access token. required: - refreshToken - refreshTokenEndpoint SubscriptionRequest: properties: protocol: $ref: '#/components/schemas/Protocol' protocolSettings: oneOf: - $ref: '#/components/schemas/HTTPSettings' sink: type: string format: url description: REQUIRED. The address to which events shall be delivered using the selected protocol. example: https://endpoint.example.com/webhook sinkCredential: oneOf: - $ref: '#/components/schemas/AccessTokenCredential' - $ref: '#/components/schemas/RefreshTokenCredential' source: type: string format: urn description: OPTIONAL. Source to which the subscription applies. May be implied by the request address. example: urn:nld:oin:00000001234567890000:systeem:Zaaksysteem domain: type: string format: reverse-dns description: OPTIONAL. Domain to which the subscription applies. example: nl.vng.zaken types: description: CloudEvent types eligible to be delivered by this subscription type: array items: type: string filters: description: This filter evaluates to 'true' if all contained filters are 'true' type: array items: title: Filter entry oneOf: - $ref: '#/components/schemas/Filter' - $ref: '#/components/schemas/AllFilter' - $ref: '#/components/schemas/AnyFilter' - $ref: '#/components/schemas/NotFilter' - $ref: '#/components/schemas/ExactFilter' - $ref: '#/components/schemas/PrefixFilter' - $ref: '#/components/schemas/SuffixFilter' example: - prefix: type: nl.vng.zgw.zaken. - exact: nl.vng.zgw.zaken.bronorganisatie: '224557609' nl.vng.zgw.zaken.vertrouwelijkheidaanduiding: openbaar config: description: OPTIONAL. Implementation-specific configuration parameters needed by the subscription manager for acquiring events. type: object additionalProperties: type: string subscriberReference: description: OPTIONAL. Events that are send to the subscriber will contain this reference. The subscriber can use the reference for internal routing of the event. type: string example: 1285c6bc-1b54-48d8-96e2-c55a3f970c39 required: - sink - protocol SinkCredential: type: object properties: credentialType: type: string enum: - ACCESSTOKEN - REFRESHTOKEN description: The type of the credential. additionalProperties: false AnyFilter: allOf: - $ref: '#/components/schemas/Filter' - type: object description: any filter properties: any: description: This filter evaluates to 'true' if any contained filters are 'true' type: array minItems: 1 items: title: Filter entry oneOf: - $ref: '#/components/schemas/Filter' - $ref: '#/components/schemas/AllFilter' - $ref: '#/components/schemas/AnyFilter' - $ref: '#/components/schemas/NotFilter' - $ref: '#/components/schemas/ExactFilter' - $ref: '#/components/schemas/PrefixFilter' - $ref: '#/components/schemas/SuffixFilter' additionalProperties: false CloudEventsAttribute: type: object description: CloudEvents defined attributes. additionalProperties: type: string properties: id: type: string description: Identifies the event. source: type: string description: Identifies the context in which an event happened. specversion: type: string description: The version of the CloudEvents specification which the event uses. type: type: string description: Describes the type of event related to the originating occurrence. datacontenttype: type: string description: Content type of the data value. dataschema: type: string description: Identifies the schema that data adheres to. subject: type: string description: Describes the subject of the event in the context of the event producer. time: type: string description: Timestamp of when the occurrence happened. Error: required: - code - title - status - detail - instance type: object properties: type: title: Type description: URI referentie naar het type Error, bedoeld voor developers type: string code: title: Code description: Systeemcode die het type Error aangeeft type: string minLength: 1 title: title: Title description: Generieke titel voor het type Error type: string minLength: 1 status: title: Status description: De HTTP status code type: integer detail: title: Detail description: Extra informatie bij de Error, indien beschikbaar type: string minLength: 1 instance: title: Instance description: URI met referentie naar dit specifiek voorkomen van de Error. Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld. type: string minLength: 1 Protocol: type: string enum: - HTTP description: REQUIRED. Identifier of a delivery protocol. example: HTTP NotFilter: allOf: - $ref: '#/components/schemas/Filter' - type: object description: not filter properties: not: type: object oneOf: - $ref: '#/components/schemas/Filter' - $ref: '#/components/schemas/AllFilter' - $ref: '#/components/schemas/AnyFilter' - $ref: '#/components/schemas/NotFilter' - $ref: '#/components/schemas/ExactFilter' - $ref: '#/components/schemas/PrefixFilter' - $ref: '#/components/schemas/SuffixFilter' additionalProperties: false FieldValidationError: required: - name - code - reason type: object properties: name: title: Name description: Naam van het veld met ongeldige gegevens type: string minLength: 1 code: title: Code description: Systeemcode die het type Error aangeeft type: string minLength: 1 reason: title: Reason description: Uitleg wat er precies Error is met de gegevens type: string minLength: 1 AccessTokenCredential: type: object description: An access token credential. allOf: - $ref: '#/components/schemas/SinkCredential' - properties: accessToken: description: REQUIRED. An access token is a previously acquired token granting access to the target resource. type: string accessTokenExpiresUtc: type: string format: date-time description: RECOMMENDED. An absolute UTC instant at which the token shall be considered expired. accessTokenType: description: OPTIONAL. )Type of the access token (See https://tools.ietf.org/html/rfc6749#section-7.1). type: string default: bearer required: - accessToken - accessTokenExpiresUtc Filter: title: Filter description: A filter from a selection of multiple filter types and dialects type: object additionalProperties: true HTTPSettings: type: object allOf: - $ref: '#/components/schemas/ProtocolSettings' - properties: headers: type: object additionalProperties: type: string method: type: string enum: - POST example: POST PrefixFilter: allOf: - $ref: '#/components/schemas/Filter' - type: object title: prefix filter description: This filter evaluates to 'true' if the 'value' is a prefix of the value of the indicated CloudEvents context attribute properties: prefix: $ref: '#/components/schemas/CloudEventsAttribute' additionalProperties: false ProtocolSettings: type: object additionalProperties: false ExactFilter: allOf: - $ref: '#/components/schemas/Filter' - type: object title: exact filter description: This filter evaluates to 'true' if the 'value' exactly matches the value of the indicated CloudEvents context attribute properties: exact: $ref: '#/components/schemas/CloudEventsAttribute' additionalProperties: false AllFilter: allOf: - $ref: '#/components/schemas/Filter' - type: object description: all filter properties: all: description: This filter evaluates to 'true' if all contained filters are 'true' type: array minItems: 1 items: title: Filter entry oneOf: - $ref: '#/components/schemas/Filter' - $ref: '#/components/schemas/AllFilter' - $ref: '#/components/schemas/AnyFilter' - $ref: '#/components/schemas/NotFilter' - $ref: '#/components/schemas/ExactFilter' - $ref: '#/components/schemas/PrefixFilter' - $ref: '#/components/schemas/SuffixFilter' additionalProperties: false ValidationError: required: - code - title - status - detail - instance - invalidParams type: object properties: type: title: Type description: URI referentie naar het type Error, bedoeld voor developers type: string code: title: Code description: Systeemcode die het type Error aangeeft type: string minLength: 1 title: title: Title description: Generieke titel voor het type Error type: string minLength: 1 status: title: Status description: De HTTP status code type: integer detail: title: Detail description: Extra informatie bij de Error, indien beschikbaar type: string minLength: 1 instance: title: Instance description: URI met referentie naar dit specifiek voorkomen van de Error. Deze kan gebruikt worden in combinatie met server logs, bijvoorbeeld. type: string minLength: 1 invalidParams: type: array items: $ref: '#/components/schemas/FieldValidationError' Subscription: type: object title: Subscription allOf: - $ref: '#/components/schemas/SubscriptionRequest' - type: object properties: url: title: URL description: URL reference to this resource. This link is generated automatically. type: string format: uri maxLength: 2042 minLength: 1 readOnly: true example: https://example.com id: type: string format: uuid description: REQUIRED. The unique identifier of the subscription in the scope of the subscription manager. example: a2de4777-1160-4562-a996-b79d27b30c99 required: - url - id - sink - protocol SuffixFilter: allOf: - $ref: '#/components/schemas/Filter' - type: object title: suffix filter description: This filter evaluates to 'true' if the 'value' is a suffix of the value of the indicated CloudEvents context attribute properties: suffix: $ref: '#/components/schemas/CloudEventsAttribute' additionalProperties: false securitySchemes: JWT-Claims: bearerFormat: JWT scheme: bearer type: http x-refined-from: - logius-notificatieservices-openapi.yml - logius-notificatieservices-openapi.yml