{
  "openapi": "3.0.4",
  "info": {
    "title": "Signicat Events Management",
    "version": "v1",
    "description": "- **Base URL**: `https://api.signicat.com/events-management/`\n- **Documentation**: See the [Events](/docs/events/) developer documentation.\n- **Support**: [Create a support ticket](https://dashboard.signicat.com/contact-us/tickets/) in the Signicat Dashboard.\n\n# Introduction\n\nThe Events Management API enables you to process events generated by Signicat services.\n\nBy creating a *Subscription*, you can have events pushed to your service whenever something interesting happens in a Signicat service. See each service's documentation for detailed information on which events are interesting to you and how to use them.\n\nThis API is part of our management APIs, which allow you to programmatically manage configurations that are typically handled in the Signicat Dashboard.\n\nThis REST API uses the OAuth 2.0 protocol for authorisation. All request and response bodies are formatted in JSON.",
    "contact": "",
    "license": "",
    "termsOfService": ""
  },
  "servers": [
    {
      "url": "https://api.signicat.com/events-management"
    }
  ],
  "tags": [
    {
      "name": "Overview",
      "description": "The Events Management service is the entry point into processing events generated by our services. By creating a *Subscription* you can have events pushed to your service whenever something interesting happens in a Signicat service. See each service's documentation for detailed information on which events are interesting to you and how to use them.\n\n## Events\n\nThe following table provides an overview of all events accessible through the events service.\n\n| Event | Description |\n|-----------|-------|\n| certificate-management:csr.permanentlyDeleted | A CSR has been permanently deleted. |\n| certificate-management:csr.patched | The CSR has been patched. |\n| reuseid:passkey.state.change | Sent whenever a passkey's state has been changed |\n| certificate-management:certificate.deleted | A certificate has been soft-deleted. |\n| passkeys:passkey.delete | Sent whenever a passkey has been deleted |\n| reuseid:device.account-recovery.state.change | Sent whenever an account recovery is updated or deleted. |\n| reuseid:passkey.authentication.completed | Sent whenever a passkey authentication result is ready. |\n| mint-api:create_event | Gets triggered every time a flow is created. |\n| mobileid:account-recovery.state.change | Sent whenever an account recovery is updated or deleted. |\n| mint-api:save_event | Gets triggered every time a flow is saved. |\n| signature-api:session.document.presented | Sent whenever a document is presented to a recipient |\n| hydra-api:file_deleted | Gets triggered every time a file was successfully deleted. |\n| mint-api:delete_event | Gets triggered every time a flow is deleted. |\n| auth-solution:connection.created | Sent whenever a connection (OAuth/OIDC client) is created. |\n| mobileid:device.state.change | Sent whenever a device state is changed from device. |\n| certificate-management:csr.restored | A soft-deleted CSR has been restored. |\n| ownidp:user.deleted | Sent when user is removed from the application |\n| auth-solution:connection.deleted | Sent whenever a connection (OAuth/OIDC client) is deleted. |\n| authentication-api:session.success | The session was successfull. |\n| reuseid:device.authentication.completed | Sent whenever a mobileid authentication result is ready. |\n| authentication-api:session.abort | The session was aborted. |\n| communication-api:sms.failed | Sent whenever an sms sending fails permanently |\n| hydra-api:file_added | Gets triggered every time a new file was successfully uploaded. |\n| mint-api:publish_event | Gets triggered every time a flow is published. |\n| authentication-api:session.error | The session resulted in an error. |\n| signature-api:order.expired | Sent whenever a sign order is expired |\n| signature-api:order.completed | Sent whenever a sign order is considered completed |\n| signature-api:recipient.completed | Sent whenever a recipient of the order (typically a signer) has completed their work |\n| signature-api:order.deleted | Sent whenever a sign order is deleted |\n| hydra-api:file_hydrated | Gets triggered every time a file was hydrated with data provided to it. |\n| mobileid:authentication.completed | Sent whenever a mobileid authentication result is ready. |\n| certificate-management:certificate.restored | A soft-deleted certificate has been restored. |\n| ownidp:user.creation.started | Sent when invitation/registration flow starts. |\n| signature-api:order.canceled | Sent whenever a sign order is canceled via API |\n| hydra-api:file_received | Gets triggered every time a file was requested. |\n| reuseid:device.registration.completed | Sent whenever a mobileid registration result is ready. |\n| reuseid:device.state.change | Sent whenever a device state is changed from device. |\n| certificate-management:certificate.expiring | Certificate will expire in the next 30d |\n| communication-api:email.sent | Sent whenever an email has been sent |\n| account-api:organization.deleted | Sent whenever an organization is marked for permanent deletion. |\n| auth-solution:connection.updated | Sent whenever a connection (OAuth/OIDC client) is updated. |\n| account-api:account.enabled | Sent whenever an account is enabled. Is not sent when a new account is created. |\n| reuseid:passkey.registration.completed | Sent whenever a passkey registration result is ready. |\n| account-api:account.deleted | Sent whenever an account is marked for permanent deletion. |\n| communication-api:email.failed | Sent whenever an email sending fails permanently |\n| ownidp:membership.created | Sent when a membership is created |\n| signature-api:session.started | Sent whenever a new sign session is started by recipient |\n| mint:journey.finished | Sent whenever a journey is finished. |\n| passkeys:registration.completed | Sent whenever a passkey registration result is ready. |\n| signature:signing-session.document.presented | Sent when a document has been presented |\n| form:form.rendered | Sent whenever a form is rendered. |\n| signature:signing-session.completed | Sent when a signing session is completed |\n| mint:journey.faulted | Sent whenever a journey is faulted. |\n| mobileid:signature.completed | Sent whenever a mobileid signature result is ready. |\n| reuseid:device.signature.completed | Sent whenever a mobileid signature result is ready. |\n| signature:package.completed | Sent when a packaging task has been completed |\n| form:form.submitted | Sent whenever a form is submitted. |\n| certificate-management:owner.permanentlyDeleted | An Owner has been permanently deleted. |\n| account-api:account.created | Sent whenever an account is created. |\n| signature:signing-session.rejected | Sent when a signing session is rejected |\n| mint:journey.cancelled | Sent whenever a journey is cancelled. |\n| ownidp:user.updated | Sent when different update operations were done on the subject |\n| signature:signing-session.ready | Sent when signing session state is set to ready |\n| signature:package.failed | Sent when a packaging task has failed |\n| mobileid:passport-scan.readid.completed | Sent whenever a mobileid passport scan result is ready. |\n| assure-api:process.complete | Whenever an notification is sent |\n| certificate-management:csr.generated | A new CSR has been generated. |\n| certificate-management:certificate.uploaded | A new certificate has been uploaded. |\n| certificate-management:owner.deleted | An Owner has been soft-deleted. |\n| ownidp:membership.updated | Sent when a membership is updated |\n| signature:signing-session.started | Sent when a signing session is started |\n| certificate-management:owner.restored | A soft-deleted owner has been restored. |\n| account-api:organization.created | Sent whenever an organization is created. |\n| certificate-management:csr.deleted | A CSR has been soft-deleted. |\n| certificate-management:certificate.patched | A certificate has been patched. |\n| signature-api:order.tobedeleted | Sent whenever a sign order is about to be deleted |\n| reuseid:device.account-recovery.completed | Sent whenever an account recovery is completed. |\n| signature-api:order.created | Sent whenever a new sign order is created |\n| certificate-management:keypair.uploaded | A new KeyPair has been uploaded. |\n| global-config-server:configuration.expiring | Sent whenever a configuration is about to expire in the next 30d. |\n| ownidp:user.creation.completed | Sent when invitation/registration finishes. |\n| communication-api:email.delivered | Sent whenever an email is delivered |\n| assure-api:webid.zip.file.ready | Notify when a WebID zip file is ready to download |\n| info-monitor-queue:changes.created | Changes have been created in monitor. |\n| ownidp:membership.deleted | Sent when a membership is removed |\n| account-api:account.soft-delete-changed | Sent whenever an account's soft deletion state is changed. |\n| communication-api:sms.sent | Sent whenever an sms has been sent |\n| ownidp:user.disabled | Sent when user is disabled |\n| communication-api:sms.delivered | Sent whenever an sms is delivered |\n| communication-api:email.opened | Sent whenever an email is opened |\n| secure-share:recipient.created | Sent whenever a recipient is created. |\n| secure-share:share.created | Sent whenever a share is created. |\n| secure-share:recipient.deleted | Sent whenever a recipient is deleted. |\n| secure-share:share.updated | Sent whenever a share is updated. |\n| mobileid:account-recovery.completed | Sent whenever an account recovery is completed. |\n| global-config-server:configuration.expired | Sent whenever a configuration is expired. |\n| secure-share:file.uploaded | Sent whenever a file is uploaded. |\n| secure-share:share.deleted | Sent whenever a share is deleted. |\n| secure-share:file.deleted | Sent whenever a file is deleted. |\n| certificate-management:certificate.permanentlyDelete | A certificate has been permanently deleted. |\n| account-api:account.disabled | Sent whenever an account is temporarily disabled. |\n| secure-share:recipient.updated | Sent whenever a recipient is updated. |\n| secure-share:file.downloaded-all | Sent whenever all files are downloaded. |\n| secure-share:file.downloaded | Sent whenever a file is downloaded. |\n| passkeys:authentication.completed | Sent whenever a passkey authentication result is ready. |\n| mobileid:registration.completed | Sent whenever a mobileid registration result is ready. |\n\n"
    },
    {
      "name": "DeliveryLogs"
    },
    {
      "name": "Events"
    },
    {
      "name": "Metadata",
      "description": "Metadata endpoints provide information that are useful to services and user interfaces integrating with the Event Management Service."
    },
    {
      "name": "Subscriptions",
      "description": "Subscriptions are used to listen to events generated by Signicat services. Different types of subscriptions are available, allowing your application to listen to events in the way best suited for you.\n\n## Subscription types\n\n### Azure Service Bus\n\nBy creating a subscription of type `AzureServiceBus` we can push events directly to your Azure Service Bus queue.\n\n**Configuration:**\nLocate your Service Bus in the Azure Portal. On the tab named \"Shared Access Policies\", add a policy named \"Signicat\" which has the `Send` claim and no other claims. Use the connection string from this shared access policy when creating your subscription.\n\n### Google Pub/Sub\n\nBy creating a subscription of type `GooglePubSub` we can push events directly to your Google Pub Sub topic.\n\n**Configuration:**\nLocate Service accounts in Google Cloud console under IAM and admin. Create a new service account or use existing. Click manage keys under actions and add a key using type json. Copy the contents of the file into the credential parameter when creating your subscription.\n\n### Webhooks\n\nBy creating a subscription of type `Webhook` we can push events directly to your application using HTTP requests.\n\n"
    }
  ],
  "paths": {
    "/delivery-logs": {
      "get": {
        "tags": [
          "DeliveryLogs"
        ],
        "summary": "Query delivery logs",
        "operationId": "query_delivery_logs",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "query",
            "description": "If specified, will retrieve only log items for this subscription",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "success",
            "in": "query",
            "description": "If specified, will retrieve only log items with this success property",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor used for pagination",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Array_SubscriptionEventDeliveryAttempt"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Array_SubscriptionEventDeliveryAttempt"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/delivery-logs/{id}": {
      "get": {
        "tags": [
          "DeliveryLogs"
        ],
        "summary": "Retrieve delivery log item",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEventDeliveryAttempt"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionEventDeliveryAttempt"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/delivery-logs/{id}/replay": {
      "post": {
        "tags": [
          "DeliveryLogs"
        ],
        "summary": "Replay event delivery",
        "description": "Attempts to deliver this event again",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReplayResponse"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ReplayResponse"
                }
              }
            }
          }
        }
      }
    },
    "/events": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "List events",
        "description": "The `event` query parameter may be used to search for a specific event, or a group of events relating to the same service.\nExamples:\n* Single event: `communication-api:email.delivered`\n* All events from the communication service: `communication-api:*`",
        "operationId": "list_events",
        "parameters": [
          {
            "name": "before",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "tail",
            "in": "query",
            "description": "If true, the next page URL will retrieve the latest events instead of earlier events. Not compatible with <see paramref=\"before\" />",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Pagination token",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_EventLogItem"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_EventLogItem"
                }
              }
            }
          }
        }
      }
    },
    "/events/{id}": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Retrieve event",
        "operationId": "get_event",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventLogItem"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/EventLogItem"
                }
              }
            }
          }
        }
      }
    },
    "/metadata/event-definitions": {
      "get": {
        "tags": [
          "Metadata"
        ],
        "summary": "Retrieve event definitions",
        "description": "Returns a list of all events that may be subscribed to.",
        "operationId": "list_event_definitions",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Array_EventDefinitionListItem"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Array_EventDefinitionListItem"
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "List subscriptions",
        "description": "Lists all subscriptions owned by the specified account or organization.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_SubscriptionListItem"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_SubscriptionListItem"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Create subscription",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SubscriptionCreate"
                  }
                ]
              },
              "example": {
                "name": "My Subscription",
                "ownerId": null,
                "type": "Webhook",
                "typeConfiguration": {
                  "webhook": {
                    "target": "https://my-company.com/callbacks"
                  }
                },
                "eventNameFilter": [
                  "account-api:account.created",
                  "communication-api:*"
                ],
                "tagFilter": [],
                "includeInternalEvents": null,
                "isGlobalSubscription": null,
                "messageAuthentication": {
                  "authenticationType": "HmacSha256",
                  "hmacSha256": {
                    "secret": "E*wl1K87LYnUoZSm"
                  }
                },
                "expiresAt": null
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionGet"
                },
                "example": {
                  "id": "s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "name": "My Subscription",
                  "active": true,
                  "url": "https://api.signicat.com/events-management/subscriptions/s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "ownerId": "a-spge-RzcZFs2Z5Kfd5T6mbTPM",
                  "type": "Webhook",
                  "eventNameFilter": [
                    "account-api:account.created",
                    "communication-api:*"
                  ],
                  "tagFilter": [],
                  "typeConfiguration": {
                    "webhook": {
                      "target": "https://my-company.com/callbacks"
                    }
                  },
                  "expiresAt": null,
                  "createdAt": null,
                  "includeInternalEvents": null,
                  "isGlobalSubscription": null,
                  "messageAuthentication": {
                    "authenticationType": "HmacSha256",
                    "hmacSha256": {
                      "secret": "E*wl1K87LYnUoZSm"
                    }
                  }
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionGet"
                },
                "example": {
                  "id": "s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "name": "My Subscription",
                  "active": true,
                  "url": "https://api.signicat.com/events-management/subscriptions/s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "ownerId": "a-spge-RzcZFs2Z5Kfd5T6mbTPM",
                  "type": "Webhook",
                  "eventNameFilter": [
                    "account-api:account.created",
                    "communication-api:*"
                  ],
                  "tagFilter": [],
                  "typeConfiguration": {
                    "webhook": {
                      "target": "https://my-company.com/callbacks"
                    }
                  },
                  "expiresAt": null,
                  "createdAt": null,
                  "includeInternalEvents": null,
                  "isGlobalSubscription": null,
                  "messageAuthentication": {
                    "authenticationType": "HmacSha256",
                    "hmacSha256": {
                      "secret": "E*wl1K87LYnUoZSm"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Retrieve subscription",
        "description": "A subscription can be created on an organization or an account.\nA subscription will subscribe to events on the organization or account on which it exists.\nYou can specify which organization or account to create the subscription on by appending the query parameter `?signicat-organizationId=[your-id]` or `?signicat-accountId=[your-id]`",
        "operationId": "retrieve_subscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionGet"
                },
                "example": {
                  "id": "s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "name": "My Subscription",
                  "active": true,
                  "url": "https://api.signicat.com/events-management/subscriptions/s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "ownerId": "a-spge-RzcZFs2Z5Kfd5T6mbTPM",
                  "type": "Webhook",
                  "eventNameFilter": [
                    "account-api:account.created",
                    "communication-api:*"
                  ],
                  "tagFilter": [],
                  "typeConfiguration": {
                    "webhook": {
                      "target": "https://my-company.com/callbacks"
                    }
                  },
                  "expiresAt": null,
                  "createdAt": null,
                  "includeInternalEvents": null,
                  "isGlobalSubscription": null,
                  "messageAuthentication": {
                    "authenticationType": "HmacSha256",
                    "hmacSha256": {
                      "secret": "E*wl1K87LYnUoZSm"
                    }
                  }
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionGet"
                },
                "example": {
                  "id": "s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "name": "My Subscription",
                  "active": true,
                  "url": "https://api.signicat.com/events-management/subscriptions/s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "ownerId": "a-spge-RzcZFs2Z5Kfd5T6mbTPM",
                  "type": "Webhook",
                  "eventNameFilter": [
                    "account-api:account.created",
                    "communication-api:*"
                  ],
                  "tagFilter": [],
                  "typeConfiguration": {
                    "webhook": {
                      "target": "https://my-company.com/callbacks"
                    }
                  },
                  "expiresAt": null,
                  "createdAt": null,
                  "includeInternalEvents": null,
                  "isGlobalSubscription": null,
                  "messageAuthentication": {
                    "authenticationType": "HmacSha256",
                    "hmacSha256": {
                      "secret": "E*wl1K87LYnUoZSm"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Update subscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SubscriptionUpdate"
                  }
                ]
              },
              "example": {
                "name": "My Subscription",
                "active": true,
                "type": "Webhook",
                "eventNameFilter": [
                  "account-api:account.created",
                  "communication-api:*"
                ],
                "tagFilter": [],
                "typeConfiguration": {
                  "webhook": {
                    "target": "https://my-company.com/callbacks"
                  }
                },
                "messageAuthentication": {
                  "authenticationType": "HmacSha256",
                  "hmacSha256": {
                    "secret": "E*wl1K87LYnUoZSm"
                  }
                },
                "expiresAt": null,
                "includeInternalEvents": null
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionGet"
                },
                "example": {
                  "id": "s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "name": "My Subscription",
                  "active": true,
                  "url": "https://api.signicat.com/events-management/subscriptions/s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "ownerId": "a-spge-RzcZFs2Z5Kfd5T6mbTPM",
                  "type": "Webhook",
                  "eventNameFilter": [
                    "account-api:account.created",
                    "communication-api:*"
                  ],
                  "tagFilter": [],
                  "typeConfiguration": {
                    "webhook": {
                      "target": "https://my-company.com/callbacks"
                    }
                  },
                  "expiresAt": null,
                  "createdAt": null,
                  "includeInternalEvents": null,
                  "isGlobalSubscription": null,
                  "messageAuthentication": {
                    "authenticationType": "HmacSha256",
                    "hmacSha256": {
                      "secret": "E*wl1K87LYnUoZSm"
                    }
                  }
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionGet"
                },
                "example": {
                  "id": "s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "name": "My Subscription",
                  "active": true,
                  "url": "https://api.signicat.com/events-management/subscriptions/s-a-spge-RzcZFs2Z5Kfd5T6mbTPM-mIdjC",
                  "ownerId": "a-spge-RzcZFs2Z5Kfd5T6mbTPM",
                  "type": "Webhook",
                  "eventNameFilter": [
                    "account-api:account.created",
                    "communication-api:*"
                  ],
                  "tagFilter": [],
                  "typeConfiguration": {
                    "webhook": {
                      "target": "https://my-company.com/callbacks"
                    }
                  },
                  "expiresAt": null,
                  "createdAt": null,
                  "includeInternalEvents": null,
                  "isGlobalSubscription": null,
                  "messageAuthentication": {
                    "authenticationType": "HmacSha256",
                    "hmacSha256": {
                      "secret": "E*wl1K87LYnUoZSm"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Delete subscription",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/send-mock-event": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Send mock event",
        "description": "Attempts to deliver a mocked event to the subscription. Note that the delivery is an asynchronous operation.\nThe resulting `deliveryAttemptId` value can be used to poll the delivery logs for the corresponding delivery attempt log item.",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MockRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MockResponse"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/MockResponse"
                }
              }
            }
          }
        },
        "x-signicat-auth": {
          "quotaIds": [
            "events:mock_events_per_account_per_minute"
          ]
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Array_EventDefinitionListItem": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventDefinitionListItem"
            },
            "description": "The contents of the current page."
          }
        },
        "additionalProperties": false
      },
      "Array_EventDefinitionListItemDtoInternal": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventDefinitionListItemDtoInternal"
            },
            "description": "The contents of the current page."
          }
        },
        "additionalProperties": false
      },
      "Array_SubscriptionEventDeliveryAttempt": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionEventDeliveryAttempt"
            },
            "description": "The contents of the current page."
          }
        },
        "additionalProperties": false
      },
      "AzureServiceBusConfigurationCreate": {
        "required": [
          "connectionString",
          "queueName"
        ],
        "type": "object",
        "properties": {
          "connectionString": {
            "maxLength": 1024,
            "minLength": 1,
            "pattern": "^\\S+$",
            "type": "string"
          },
          "queueName": {
            "maxLength": 1024,
            "minLength": 1,
            "pattern": "^\\S+$",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AzureServiceBusConfigurationRead": {
        "required": [
          "endpoint",
          "queueName",
          "sharedAccessKeyName"
        ],
        "type": "object",
        "properties": {
          "queueName": {
            "minLength": 1,
            "type": "string"
          },
          "endpoint": {
            "minLength": 1,
            "type": "string"
          },
          "sharedAccessKeyName": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "AzureServiceBusConfigurationUpdate": {
        "required": [
          "queueName"
        ],
        "type": "object",
        "properties": {
          "connectionString": {
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^\\S+$",
            "type": "string"
          },
          "queueName": {
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^\\S+$",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "Event": {
        "required": [
          "accountId",
          "eventData",
          "eventName",
          "expiresAt",
          "id",
          "organizationId",
          "sender",
          "tags",
          "timestamp"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of the event"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp of when the event was generated",
            "format": "date-time"
          },
          "sender": {
            "type": "string",
            "description": "ID of the sending service"
          },
          "eventName": {
            "type": "string",
            "description": "Name of the event, unique per sender"
          },
          "eventData": {
            "description": "Arbitrary event data"
          },
          "accountId": {
            "type": "string",
            "description": "The target Account ID",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The target Organization ID",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "description": "The event's expiration tim",
            "format": "date-time",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The event's tags",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The event data"
      },
      "EventDefinitionListItem": {
        "type": "object",
        "properties": {
          "event": {
            "type": "string",
            "description": "Event type",
            "example": "account-api:account.created"
          },
          "description": {
            "type": "string",
            "description": "Description of event"
          },
          "payloadSchema": {
            "nullable": true
          },
          "isAccountEvent": {
            "type": "boolean",
            "description": "Whether the event can be subscribed to on accounts"
          },
          "isOrganizationEvent": {
            "type": "boolean",
            "description": "Whether the event can be subscribed to on organizations"
          }
        },
        "additionalProperties": false
      },
      "EventDefinitionListItemDtoInternal": {
        "type": "object",
        "properties": {
          "event": {
            "type": "string",
            "description": "Event type",
            "example": "account-api:account.created"
          },
          "description": {
            "type": "string",
            "description": "Description of event"
          },
          "payloadSchema": {
            "nullable": true
          },
          "isAccountEvent": {
            "type": "boolean",
            "description": "Whether the event can be subscribed to on accounts"
          },
          "isOrganizationEvent": {
            "type": "boolean",
            "description": "Whether the event can be subscribed to on organizations"
          },
          "visibleToCustomers": {
            "type": "boolean",
            "description": "Whether the event is visible to customers, e.g. customers can subscribe to it."
          }
        },
        "additionalProperties": false
      },
      "EventLogItem": {
        "required": [
          "event",
          "id",
          "replayUrl",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID for this event log item"
          },
          "event": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Event"
              }
            ],
            "description": "The raw event data"
          },
          "url": {
            "type": "string",
            "description": "API Url to retrieve Event object."
          },
          "replayUrl": {
            "type": "string",
            "description": "API Url to replay Event object."
          }
        },
        "additionalProperties": false
      },
      "GooglePubSubConfigurationCreate": {
        "required": [
          "credential",
          "topicName"
        ],
        "type": "object",
        "properties": {
          "topicName": {
            "minLength": 1,
            "pattern": "^projects/[a-z0-9-]{4,30}/topics/(?!goog)[A-Za-z0-9-+_.%~]{3,255}$",
            "type": "string"
          },
          "credential": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GooglePubSubConfigurationRead": {
        "required": [
          "topicName"
        ],
        "type": "object",
        "properties": {
          "topicName": {
            "minLength": 1,
            "type": "string"
          },
          "serviceAccount": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GooglePubSubConfigurationUpdate": {
        "required": [
          "topicName"
        ],
        "type": "object",
        "properties": {
          "topicName": {
            "minLength": 1,
            "pattern": "^projects/[a-z0-9-]{4,30}/topics/(?!goog)[A-Za-z0-9-+_.%~]{3,255}$",
            "type": "string"
          },
          "credential": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "HmacSha256AuthenticationOptions": {
        "type": "object",
        "properties": {
          "secret": {
            "maxLength": 64,
            "minLength": 16,
            "pattern": "^\\S+$",
            "type": "string",
            "description": "Secret used for HmacSha256 authentication.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageAuthenticationOptions": {
        "type": "object",
        "properties": {
          "authenticationType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MessageAuthenticationType"
              }
            ],
            "description": "Which authentication method to use for events. Defaults to None."
          },
          "hmacSha256": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HmacSha256AuthenticationOptions"
              }
            ],
            "description": "Options for HmacSha256 authentication. Required when `AuthenticationType` equals `HmacSha256`.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageAuthenticationType": {
        "enum": [
          "None",
          "HmacSha256"
        ],
        "type": "string"
      },
      "MintSubscriptionConfigurationCreate": {
        "required": [
          "workflowDefinitionId"
        ],
        "type": "object",
        "properties": {
          "workflowDefinitionId": {
            "type": "string"
          },
          "workflowDefinitionAccountId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MintSubscriptionConfigurationRead": {
        "required": [
          "workflowDefinitionAccountId",
          "workflowDefinitionId"
        ],
        "type": "object",
        "properties": {
          "workflowDefinitionId": {
            "maxLength": 64,
            "minLength": 0,
            "pattern": "^\\S+$",
            "type": "string"
          },
          "workflowDefinitionAccountId": {
            "maxLength": 64,
            "minLength": 0,
            "pattern": "^\\S+$",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "MintSubscriptionConfigurationUpdate": {
        "type": "object",
        "properties": {
          "workflowDefinitionId": {
            "type": "string",
            "nullable": true
          },
          "workflowDefinitionAccountId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MockRequest": {
        "required": [
          "event"
        ],
        "type": "object",
        "properties": {
          "event": {
            "minLength": 1,
            "pattern": "^[^\\:]+\\:[^\\:]+$",
            "type": "string",
            "description": "Type of event to mock"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Arbitrary tags to add to the event",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MockResponse": {
        "required": [
          "deliveryAttemptId",
          "eventId"
        ],
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "ID of the mocked event"
          },
          "deliveryAttemptId": {
            "type": "string",
            "description": "Delivery Attempt ID of the mocked event"
          }
        },
        "additionalProperties": false
      },
      "Page_EventLogItem": {
        "required": [
          "data",
          "next"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventLogItem"
            },
            "description": "The contents of the current page."
          },
          "next": {
            "type": "string",
            "description": "URL to the next page, if more data may be available.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Page_SubscriptionListItem": {
        "required": [
          "data",
          "next"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionListItem"
            },
            "description": "The contents of the current page."
          },
          "next": {
            "type": "string",
            "description": "URL to the next page, if more data may be available.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReplayResponse": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SubscriptionCreate": {
        "required": [
          "name",
          "type",
          "typeConfiguration"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 64,
            "minLength": 3,
            "type": "string"
          },
          "type": {
            "maxLength": 64,
            "minLength": 3,
            "enum": [
              "GooglePubSub",
              "Mint",
              "Webhook",
              "AzureServiceBus"
            ],
            "type": "string"
          },
          "typeConfiguration": {},
          "eventNameFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "tagFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "messageAuthentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MessageAuthenticationOptions"
              }
            ],
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionEventDeliveryAttempt": {
        "required": [
          "subscriptionId",
          "subscriptionName",
          "subscriptionType"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID for this delivery attempt",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "When the delivery was attempted",
            "format": "date-time",
            "nullable": true
          },
          "success": {
            "type": "boolean",
            "description": "Whether the delivery was successful",
            "nullable": true
          },
          "event": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Event"
              }
            ],
            "description": "The raw event data being delivered",
            "nullable": true
          },
          "attempt": {
            "type": "integer",
            "description": "How many attempts to deliver the event prior to this attempt",
            "format": "int32",
            "nullable": true
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "nullable": true
            },
            "description": "Additional properties depending upon the subscription type and error",
            "nullable": true
          },
          "errorMessage": {
            "type": "string",
            "description": "The error message for the delivery attempt, if any",
            "nullable": true
          },
          "subscriptionId": {
            "type": "string",
            "description": "ID of the subscription the event was delivered to"
          },
          "subscriptionType": {
            "type": "string",
            "description": "Type of the subscription the event was delivered to"
          },
          "subscriptionName": {
            "type": "string",
            "description": "Name of the subscription the event was delivered to"
          }
        },
        "additionalProperties": false
      },
      "SubscriptionGet": {
        "required": [
          "active",
          "eventNameFilter",
          "id",
          "messageAuthentication",
          "name",
          "ownerId",
          "tagFilter",
          "type",
          "typeConfiguration",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "active": {
            "type": "boolean",
            "nullable": true
          },
          "url": {
            "type": "string"
          },
          "ownerId": {
            "type": "string"
          },
          "type": {
            "enum": [
              "GooglePubSub",
              "Mint",
              "Webhook",
              "AzureServiceBus"
            ],
            "type": "string"
          },
          "eventNameFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "tagFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "typeConfiguration": {
            "properties": {
              "googlePubSub": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/GooglePubSubConfigurationRead"
                  }
                ],
                "description": "Only present when `type` equals `GooglePubSub`."
              },
              "mint": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MintSubscriptionConfigurationRead"
                  }
                ],
                "description": "Only present when `type` equals `Mint`."
              },
              "webhook": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/WebhookConfigurationRead"
                  }
                ],
                "description": "Only present when `type` equals `Webhook`."
              },
              "azureServiceBus": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AzureServiceBusConfigurationRead"
                  }
                ],
                "description": "Only present when `type` equals `AzureServiceBus`."
              }
            }
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "messageAuthentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MessageAuthenticationOptions"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionListItem": {
        "required": [
          "active",
          "eventNameFilter",
          "id",
          "name",
          "ownerId",
          "tagFilter",
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "active": {
            "type": "boolean",
            "nullable": true
          },
          "url": {
            "type": "string"
          },
          "ownerId": {
            "type": "string"
          },
          "eventNameFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "tagFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "type": {
            "enum": [
              "GooglePubSub",
              "Mint",
              "Webhook",
              "AzureServiceBus"
            ],
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionUpdate": {
        "required": [
          "type",
          "typeConfiguration"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 64,
            "minLength": 3,
            "type": "string",
            "nullable": true
          },
          "active": {
            "type": "boolean",
            "nullable": true
          },
          "type": {
            "maxLength": 64,
            "minLength": 3,
            "enum": [
              "GooglePubSub",
              "Mint",
              "Webhook",
              "AzureServiceBus"
            ],
            "type": "string",
            "description": "The type of subscription. This value may not be changed."
          },
          "eventNameFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "tagFilter": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "typeConfiguration": {
            "properties": {
              "googlePubSub": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/GooglePubSubConfigurationUpdate"
                  }
                ],
                "description": "Required when `type` equals `GooglePubSub`, otherwise ignored."
              },
              "mint": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MintSubscriptionConfigurationUpdate"
                  }
                ],
                "description": "Required when `type` equals `Mint`, otherwise ignored."
              },
              "webhook": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/WebhookConfigurationUpdate"
                  }
                ],
                "description": "Required when `type` equals `Webhook`, otherwise ignored."
              },
              "azureServiceBus": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AzureServiceBusConfigurationUpdate"
                  }
                ],
                "description": "Required when `type` equals `AzureServiceBus`, otherwise ignored."
              }
            }
          },
          "messageAuthentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MessageAuthenticationOptions"
              }
            ],
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserCapabilities": {
        "required": [
          "eventDefinitionsUrl"
        ],
        "type": "object",
        "properties": {
          "subscription": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Supported values: `create`, `create-global`, `create-internal`, `update`, `update-global`, `delete`, `delete-global`, `read`, `log:read`, `log:replay`, `send-mock-event`"
          },
          "event": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Supported values: `read`, `replay`"
          },
          "eventDefinitionsUrl": {
            "type": "string",
            "description": "URL where Event definitions can be fetched from"
          }
        },
        "additionalProperties": false
      },
      "Webhook": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "string",
            "nullable": true
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "authorizationHeader": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WebhookConfigurationCreate": {
        "required": [
          "target"
        ],
        "type": "object",
        "properties": {
          "target": {
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^\\S+$",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "WebhookConfigurationRead": {
        "type": "object",
        "properties": {
          "target": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "WebhookConfigurationUpdate": {
        "required": [
          "target"
        ],
        "type": "object",
        "properties": {
          "target": {
            "maxLength": 1024,
            "minLength": 0,
            "pattern": "^\\S+$",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "WebhookSetLog": {
        "type": "object",
        "properties": {
          "notification": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}