{
  "openapi": "3.1.0",
  "info": {
    "title": "Event Notifications Config Service",
    "description": "API documentation for the Event Notifications Config Service",
    "version": "0.0.58"
  },
    "servers": [
        {
            "url": "https://api.boomi.com/event-notifications-config", 
            "description": "US"
        },
        {
            "url": "https://api.platform.gb.boomi.com/event-notifications-config/", 
            "description": "GB"
        }
    ],
  "tags": [
    {
      "name": "Destination Types",
      "description": "API for retrieving available destination types"
    },
    {
      "name": "Log Levels",
      "description": "API for retrieving available log levels"
    },
    {
      "name": "Subscriptions",
      "description": "API for operating on an accounts subscriptions"
    },
    {
      "name": "Events",
      "description": "API for retrieving available events"
    },
    {
      "name": "ESTopicAndSubscription",
      "description": "API for operating on an account's Event Streams topic and subscriptions"
    }
  ],
  "paths": {
    "/rest/v1/accounts/{accountId}/subscriptions": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "List all subscriptions for an account",
        "description": "Retrieves all event subscriptions associated with the specified account",
        "operationId": "listSubscribedEventsForAccount",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the Boomi account whose subscriptions are being managed",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number for pagination",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 0
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 20
          },
          {
            "name": "sortBy",
            "in": "query",
            "description": "Field to sort by",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "createdDate"
          },
          {
            "name": "sortDirection",
            "in": "query",
            "description": "Sort direction (ASC or DESC)",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "DESC"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved subscriptions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionWrapper"
                },
                "example": {
                  "subscriptions": [
                    {
                      "subscriptionId": "123e4567-e89b-12d3-a456-426614174000",
                      "eventName": "Atom.Status",
                      "destinationType": "EVENT_STREAMS",
                      "logLevel": "WARNING",
                      "accountId": "acct_12345",
                      "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                      "eventStreamsEnvironmentName": "production",
                      "eventStreamsTopic": "notifications-topic",
                      "enabled": true,
                      "createdDate": 1625097600000,
                      "lastUpdatedDate": 1625184000000,
                      "createdBy": "user@example.com",
                      "lastUpdatedUserId": "user@example.com"
                    },
                    {
                      "subscriptionId": "223e4567-e89b-12d3-a456-426614174001",
                      "eventName": "Process.Execution",
                      "destinationType": "EVENT_STREAMS",
                      "logLevel": "ERROR",
                      "accountId": "acct_12345",
                      "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                      "eventStreamsEnvironmentName": "production",
                      "eventStreamsTopic": "notifications-topic",
                      "enabled": true,
                      "createdDate": 1625097600000,
                      "lastUpdatedDate": 1625184000000,
                      "createdBy": "user@example.com",
                      "lastUpdatedUserId": "user@example.com"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized to access this account's subscriptions",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "204": {
            "description": "No subscriptions found for the account"
          },
          "404": {
            "description": "No subscriptions found for the account",
            "content": {
              "application/json": {
                "example": {
                  "error": "Entity not found",
                  "messages": [
                    "No subscriptions found for account acct_12345"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Update subscriptions for an account",
        "description": "Updates all subscriptions for the specified account. Creates subscriptions if none exist.",
        "operationId": "updateSubscriptions",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the Boomi account whose subscriptions are being managed",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Invalid request (missing or invalid request body)",
            "content": {
              "application/json": {
                "example": {
                  "error": "Bad Request",
                  "messages": [
                    "Must provide a valid eventName",
                    "Must provide a valid destinationType",
                    "Must provide a valid logLevel"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "204": {
            "description": "No content - account has no subscriptions and none were provided"
          },
          "201": {
            "description": "Subscriptions created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionWrapper"
                },
                "example": {
                  "subscriptions": [
                    {
                      "subscriptionId": "123e4567-e89b-12d3-a456-426614174000",
                      "eventName": "Atom.Status",
                      "destinationType": "EVENT_STREAMS",
                      "logLevel": "WARNING",
                      "accountId": "acct_12345",
                      "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                      "eventStreamsEnvironmentName": "production",
                      "eventStreamsTopic": "notifications-topic",
                      "enabled": true,
                      "createdDate": 1625097600000,
                      "lastUpdatedDate": 1625184000000,
                      "createdBy": "user@example.com",
                      "lastUpdatedUserId": "user@example.com"
                    },
                    {
                      "subscriptionId": "223e4567-e89b-12d3-a456-426614174001",
                      "eventName": "Process.Execution",
                      "destinationType": "EVENT_STREAMS",
                      "logLevel": "ERROR",
                      "accountId": "acct_12345",
                      "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                      "eventStreamsEnvironmentName": "production",
                      "eventStreamsTopic": "notifications-topic",
                      "enabled": true,
                      "createdDate": 1625097600000,
                      "lastUpdatedDate": 1625184000000,
                      "createdBy": "user@example.com",
                      "lastUpdatedUserId": "user@example.com"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized to access this account's subscriptions",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "200": {
            "description": "Subscriptions updated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionWrapper"
                },
                "example": {
                  "subscriptions": [
                    {
                      "subscriptionId": "123e4567-e89b-12d3-a456-426614174000",
                      "eventName": "Atom.Status",
                      "destinationType": "EVENT_STREAMS",
                      "logLevel": "WARNING",
                      "accountId": "acct_12345",
                      "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                      "eventStreamsEnvironmentName": "production",
                      "eventStreamsTopic": "notifications-topic",
                      "enabled": true,
                      "createdDate": 1625097600000,
                      "lastUpdatedDate": 1625184000000,
                      "createdBy": "user@example.com",
                      "lastUpdatedUserId": "user@example.com"
                    },
                    {
                      "subscriptionId": "223e4567-e89b-12d3-a456-426614174001",
                      "eventName": "Process.Execution",
                      "destinationType": "EVENT_STREAMS",
                      "logLevel": "ERROR",
                      "accountId": "acct_12345",
                      "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                      "eventStreamsEnvironmentName": "production",
                      "eventStreamsTopic": "notifications-topic",
                      "enabled": true,
                      "createdDate": 1625097600000,
                      "lastUpdatedDate": 1625184000000,
                      "createdBy": "user@example.com",
                      "lastUpdatedUserId": "user@example.com"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      },
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Create subscriptions",
        "description": "Creates one or more subscriptions for the specified account",
        "operationId": "createSubscriptions",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the Boomi account whose subscriptions are being managed",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Request was valid but no subscriptions were created (empty subscriptions list)"
          },
          "400": {
            "description": "Invalid request (missing or invalid request body)",
            "content": {
              "application/json": {
                "example": {
                  "error": "Bad Request",
                  "messages": [
                    "Must provide a valid eventName",
                    "Must provide a valid destinationType",
                    "Must provide a valid logLevel"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized to access this account's subscriptions",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "201": {
            "description": "Subscriptions successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionWrapper"
                },
                "example": {
                  "subscriptions": [
                    {
                      "subscriptionId": "123e4567-e89b-12d3-a456-426614174000",
                      "eventName": "Atom.Status",
                      "destinationType": "EVENT_STREAMS",
                      "logLevel": "WARNING",
                      "accountId": "acct_12345",
                      "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                      "eventStreamsEnvironmentName": "production",
                      "eventStreamsTopic": "notifications-topic",
                      "enabled": true,
                      "createdDate": 1625097600000,
                      "lastUpdatedDate": 1625184000000,
                      "createdBy": "user@example.com",
                      "lastUpdatedUserId": "user@example.com"
                    },
                    {
                      "subscriptionId": "223e4567-e89b-12d3-a456-426614174001",
                      "eventName": "Process.Execution",
                      "destinationType": "EVENT_STREAMS",
                      "logLevel": "ERROR",
                      "accountId": "acct_12345",
                      "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                      "eventStreamsEnvironmentName": "production",
                      "eventStreamsTopic": "notifications-topic",
                      "enabled": true,
                      "createdDate": 1625097600000,
                      "lastUpdatedDate": 1625184000000,
                      "createdBy": "user@example.com",
                      "lastUpdatedUserId": "user@example.com"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Delete all subscriptions for an account",
        "description": "Deletes all subscriptions associated with the specified accountId",
        "operationId": "deleteSubscriptionForAccount",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the Boomi account whose subscriptions are being managed",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "All subscriptions successfully deleted"
          },
          "403": {
            "description": "Forbidden - Not authorized to access this account's subscriptions",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "404": {
            "description": "No subscriptions found for account",
            "content": {
              "application/json": {
                "example": {
                  "error": "Entity not found",
                  "messages": [
                    "No subscriptions found for account acct_12345"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      },
      "patch": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Bulk operations on subscriptions for an account",
        "description": "Performs bulk delete or bulk update operations on subscriptions for the specified account",
        "operationId": "bulkOperationsOnSubscriptionsForAccount",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the Boomi account whose subscriptions are being managed",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionPatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Invalid request (missing or invalid request body)",
            "content": {
              "application/json": {
                "examples": {
                  "missingOperation": {
                    "summary": "Operation is required",
                    "description": "missingOperation",
                    "value": {
                      "error": "Bad Request",
                      "messages": [
                        "Operation is required"
                      ],
                      "path": "/rest/v1/accounts/acct_12345/subscriptions"
                    }
                  },
                  "invalidOperation": {
                    "summary": "Invalid operation value",
                    "description": "invalidOperation",
                    "value": {
                      "error": "Bad Request",
                      "messages": [
                        "Invalid operation. Supported operations are: delete, update"
                      ],
                      "path": "/rest/v1/accounts/acct_12345/subscriptions"
                    }
                  },
                  "emptyList": {
                    "summary": "Subscription list is empty",
                    "description": "emptyList",
                    "value": {
                      "error": "Bad Request",
                      "messages": [
                        "Subscription list cannot be empty"
                      ],
                      "path": "/rest/v1/accounts/acct_12345/subscriptions"
                    }
                  },
                  "bothOperations": {
                    "summary": "Both subscriptionIds and subscriptions provided",
                    "description": "bothOperations",
                    "value": {
                      "error": "Bad Request",
                      "messages": [
                        "Cannot provide both subscriptionIds and subscriptions in the same request"
                      ],
                      "path": "/rest/v1/accounts/acct_12345/subscriptions"
                    }
                  },
                  "missingSubscriptionIds": {
                    "summary": "subscriptionIds required for delete",
                    "description": "missingSubscriptionIds",
                    "value": {
                      "error": "Bad Request",
                      "messages": [
                        "subscriptionIds is required for delete operation"
                      ],
                      "path": "/rest/v1/accounts/acct_12345/subscriptions"
                    }
                  },
                  "missingSubscriptions": {
                    "summary": "subscriptions required for update",
                    "description": "missingSubscriptions",
                    "value": {
                      "error": "Bad Request",
                      "messages": [
                        "subscriptions is required for update operation"
                      ],
                      "path": "/rest/v1/accounts/acct_12345/subscriptions"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized to access this account's subscriptions",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "207": {
            "description": "Multi-status response with results of operations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionPatchResponseWrapper"
                },
                "examples": {
                  "bulkDelete": {
                    "summary": "Bulk Delete Response",
                    "description": "bulkDelete",
                    "value": {
                      "operationStatuses": [
                        {
                          "subscriptionId": "123e4567-e89b-12d3-a456-426614174000",
                          "httpEquivalentCode": 204,
                          "message": "Deleted successfully"
                        },
                        {
                          "subscriptionId": "223e4567-e89b-12d3-a456-426614174001",
                          "httpEquivalentCode": 404,
                          "message": "Subscription not found"
                        },
                        {
                          "subscriptionId": "323e4567-e89b-12d3-a456-426614174002",
                          "httpEquivalentCode": 204,
                          "message": "Deleted successfully"
                        }
                      ]
                    }
                  },
                  "bulkUpdate": {
                    "summary": "Bulk Update Response",
                    "description": "bulkUpdate",
                    "value": {
                      "operationStatuses": [
                        {
                          "subscriptionId": "123e4567-e89b-12d3-a456-426614174000",
                          "httpEquivalentCode": 200,
                          "message": "Updated successfully"
                        },
                        {
                          "subscriptionId": "223e4567-e89b-12d3-a456-426614174001",
                          "httpEquivalentCode": 400,
                          "message": "Unable to update createdDate"
                        },
                        {
                          "subscriptionId": "323e4567-e89b-12d3-a456-426614174002",
                          "httpEquivalentCode": 404,
                          "message": "Subscription not found"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      }
    },
    "/rest/v1/accounts/{accountId}/subscriptions/{subscriptionId}": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get a single subscription by subscriptionId",
        "description": "Retrieves a single event subscription associated with the specified account by the subscriptionId",
        "operationId": "getSubscribedEventForAccount",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the Boomi account whose subscriptions are being managed",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The unique identifier of the subscription",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/223e4567-e89b-12d3-a456-426614174001"
                }
              }
            }
          },
          "200": {
            "description": "Successfully retrieved subscription",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionWrapper"
                },
                "example": {
                  "subscriptionId": "223e4567-e89b-12d3-a456-426614174001",
                  "eventName": "Atom.Status",
                  "destinationType": "EVENT_STREAMS",
                  "logLevel": "WARNING",
                  "accountId": "acct_12345",
                  "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                  "eventStreamsEnvironmentName": "production",
                  "eventStreamsTopic": "notifications-topic",
                  "enabled": true,
                  "createdDate": 1625097600000,
                  "lastUpdatedDate": 1625184000000,
                  "createdBy": "user@example.com",
                  "lastUpdatedUserId": "user@example.com"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized to access this account's subscriptions",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/223e4567-e89b-12d3-a456-426614174001"
                }
              }
            }
          },
          "404": {
            "description": "No subscription found for the account with supplied subscriptionId",
            "content": {
              "application/json": {
                "example": {
                  "error": "Entity not found",
                  "messages": [
                    "No subscription found for Id 123e4567-e89b-12d3-a456-426614174000"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/123e4567-e89b-12d3-a456-426614174000"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      },
      "put": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Update a subscription",
        "description": "Updates an existing subscription for the specified account and subscriptionId",
        "operationId": "updateSubscription",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the Boomi account whose subscriptions are being managed",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The unique identifier of the subscription",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionUpdateSingleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Invalid request (missing or invalid request body)",
            "content": {
              "application/json": {
                "example": {
                  "error": "Bad Request",
                  "messages": [
                    "Must provide a valid eventName",
                    "Must provide a valid destinationType",
                    "Must provide a valid logLevel"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/223e4567-e89b-12d3-a456-426614174001"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/223e4567-e89b-12d3-a456-426614174001"
                }
              }
            }
          },
          "404": {
            "description": "Subscription not found",
            "content": {
              "application/json": {
                "example": {
                  "error": "Entity not found",
                  "messages": [
                    "No subscription found for Id 123e4567-e89b-12d3-a456-426614174000"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/123e4567-e89b-12d3-a456-426614174000"
                }
              }
            }
          },
          "200": {
            "description": "Subscription successfully updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionWrapper"
                },
                "example": {
                  "subscriptionId": "223e4567-e89b-12d3-a456-426614174001",
                  "eventName": "Atom.Status",
                  "destinationType": "EVENT_STREAMS",
                  "logLevel": "WARNING",
                  "accountId": "acct_12345",
                  "eventStreamsEnvironment": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63",
                  "eventStreamsEnvironmentName": "production",
                  "eventStreamsTopic": "notifications-topic",
                  "enabled": true,
                  "createdDate": 1625097600000,
                  "lastUpdatedDate": 1625184000000,
                  "createdBy": "user@example.com",
                  "lastUpdatedUserId": "user@example.com"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized to access this account's subscriptions",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/223e4567-e89b-12d3-a456-426614174001"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Delete a specific subscription",
        "description": "Deletes a single subscription identified by subscriptionId for the specified account",
        "operationId": "deleteSubscription",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the Boomi account whose subscriptions are being managed",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The unique identifier of the subscription",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/223e4567-e89b-12d3-a456-426614174001"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized to access this account's subscriptions",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/223e4567-e89b-12d3-a456-426614174001"
                }
              }
            }
          },
          "204": {
            "description": "Subscription successfully deleted"
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          },
          "404": {
            "description": "No subscriptions found for account",
            "content": {
              "application/json": {
                "example": {
                  "error": "Entity not found",
                  "messages": [
                    "No subscription found for Id 123e4567-e89b-12d3-a456-426614174000"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/subscriptions/123e4567-e89b-12d3-a456-426614174000"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      }
    },
    "/rest/v1/accounts/{accountId}/eventStreams/topic/subscription": {
      "post": {
        "tags": [
          "ESTopicAndSubscription"
        ],
        "summary": "Create an Event Streams topic and subscription",
        "description": "Creates an Event Streams topic and subscription for the specified account",
        "operationId": "createEventStreamTopicAndSubscription",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The unique identifier of the Boomi account whose Event Streams topic and subscription are being created",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEventStreamTopicAndSubscriptionDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Invalid request (missing or invalid request body)",
            "content": {
              "application/json": {
                "example": {
                  "error": "Bad Request",
                  "messages": [
                    "eventStreamsEnvironmentId cannot be blank"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/eventStreams/topic/subscription"
                }
              }
            }
          },
          "201": {
            "description": "Event Streams topic and subscription successfully created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateESSubscriptionResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/eventStreams/topic/subscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized to access this account's Event Streams",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/accounts/acct_12345/eventStreams/topic/subscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      }
    },
    "/rest/v1/log-levels": {
      "get": {
        "tags": [
          "Log Levels"
        ],
        "summary": "Get all log levels",
        "description": "Returns a list of all available log levels with their names and descriptions",
        "operationId": "getLogLevels",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogLevelWrapper"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/log-levels"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/log-levels"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      }
    },
    "/rest/v1/events": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get all events",
        "description": "Returns a list of all available events",
        "operationId": "listEvents",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventWrapper"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - Not authorized",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/events"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/events"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      }
    },
    "/rest/v1/destination-types": {
      "get": {
        "tags": [
          "Destination Types"
        ],
        "summary": "Get all destination types",
        "description": "Returns a list of all available destination types with their names and descriptions",
        "operationId": "getDestinationTypes",
        "responses": {
          "403": {
            "description": "Forbidden - Not authorized",
            "content": {
              "application/json": {
                "example": {
                  "error": "Forbidden",
                  "messages": [
                    "Access Denied"
                  ],
                  "path": "/rest/v1/destination-types"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "example": {
                  "errorId": "62ccbcf6-6795-4e56-8868-cf34a9a833a1",
                  "error": "Internal server error",
                  "messages": [
                    "Could not open JPA EntityManager for transaction"
                  ],
                  "path": "/rest/v1/destination-types"
                }
              }
            }
          },
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DestinationTypeWrapper"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Authentication is required"
          }
        },
        "security": [
          {
            "bearer-auth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "SubscriptionCreate": {
        "type": "object",
        "description": "Fields a client provides when creating or replacing a subscription. Server-managed fields (subscriptionId, accountId, timestamps, audit user) are not accepted on input.",
        "properties": {
          "eventName": {
            "type": "string",
            "description": "Name of the event to subscribe to",
            "example": "Atom.Status"
          },
          "destinationType": {
            "type": "string",
            "description": "Type of destination where notifications will be sent. Note: Only EVENT_STREAMS is currently supported.",
            "enum": [
              "EMAIL",
              "EVENT_STREAMS"
            ],
            "example": "EVENT_STREAMS"
          },
          "logLevel": {
            "type": "string",
            "description": "Minimum log level that will trigger notifications",
            "enum": [
              "INFO",
              "WARNING",
              "ERROR"
            ],
            "example": "ERROR"
          },
          "eventStreamsEnvironment": {
            "type": "string",
            "description": "Event streams environment ID (when destinationType is EVENT_STREAMS)",
            "example": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63"
          },
          "eventStreamsEnvironmentName": {
            "type": "string",
            "description": "Event streams environment name (when destinationType is EVENT_STREAMS)",
            "example": "production"
          },
          "eventStreamsTopic": {
            "type": "string",
            "description": "Event streams topic (when destinationType is EVENT_STREAMS)",
            "example": "notifications-topic"
          },
          "enabled": {
            "type": "boolean",
            "default": "true",
            "description": "Whether the subscription is currently active",
            "example": true
          }
        },
        "required": [
          "destinationType",
          "eventName",
          "logLevel"
        ]
      },
      "SubscriptionCreateRequest": {
        "type": "object",
        "description": "Request body wrapping a list of subscriptions to create or replace",
        "properties": {
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionCreate"
            }
          }
        }
      },
      "PaginationMetadata": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          }
        }
      },
      "Subscription": {
        "type": "object",
        "description": "Represents a subscription to receive notifications for specific events",
        "properties": {
          "subscriptionId": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the subscription",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "eventName": {
            "type": "string",
            "description": "Name of the event to subscribe to",
            "example": "Atom.Status"
          },
          "destinationType": {
            "type": "string",
            "description": "Type of destination where notifications will be sent. Note: Only EVENT_STREAMS is currently supported.",
            "enum": [
              "EMAIL",
              "EVENT_STREAMS"
            ],
            "example": "EVENT_STREAMS"
          },
          "logLevel": {
            "type": "string",
            "description": "Minimum log level that will trigger notifications",
            "enum": [
              "INFO",
              "WARNING",
              "ERROR"
            ],
            "example": "ERROR"
          },
          "accountId": {
            "type": "string",
            "description": "Account identifier associated with this subscription",
            "example": "acct_12345"
          },
          "destinationEmail": {
            "type": "string",
            "description": "Email address where notifications will be sent (when destinationType is EMAIL)",
            "example": "user@example.com"
          },
          "eventStreamsEnvironment": {
            "type": "string",
            "description": "Event streams environment ID (when destinationType is EVENT_STREAMS)",
            "example": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63"
          },
          "eventStreamsEnvironmentName": {
            "type": "string",
            "description": "Event streams environment name (when destinationType is EVENT_STREAMS)",
            "example": "production"
          },
          "eventStreamsTopic": {
            "type": "string",
            "description": "Event streams topic (when destinationType is EVENT_STREAMS)",
            "example": "notifications-topic"
          },
          "enabled": {
            "type": "boolean",
            "default": "true",
            "description": "Whether the subscription is currently active",
            "example": true
          },
          "createdDate": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp when the subscription was created (Unix timestamp in milliseconds)",
            "example": 1625097600000
          },
          "lastUpdatedDate": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp when the subscription was last updated (Unix timestamp in milliseconds)",
            "example": 1625184000000
          },
          "createdBy": {
            "type": "string",
            "description": "Email of the user who created the subscription",
            "example": "user@example.com"
          },
          "lastUpdatedUserId": {
            "type": "string",
            "description": "Email of the user who last updated the subscription",
            "example": "user@example.com"
          }
        },
        "required": [
          "destinationType",
          "eventName",
          "logLevel"
        ]
      },
      "SubscriptionWrapper": {
        "type": "object",
        "description": "A wrapper that contains either a single subscription or a list of subscriptions",
        "properties": {
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Subscription"
            }
          },
          "subscription": {
            "$ref": "#/components/schemas/Subscription",
            "description": "A single subscription configuration"
          },
          "paginationMetadata": {
            "$ref": "#/components/schemas/PaginationMetadata"
          }
        }
      },
      "SubscriptionUpdateSingleRequest": {
        "type": "object",
        "description": "Request body for updating a single subscription identified by the URL path parameter",
        "properties": {
          "subscription": {
            "$ref": "#/components/schemas/SubscriptionCreate",
            "description": "The subscription configuration to apply"
          }
        },
        "required": [
          "subscription"
        ]
      },
      "CreateEventStreamTopicAndSubscriptionDto": {
        "type": "object",
        "description": "Create a new ES topic and ES subscription for a new event notification",
        "properties": {
          "eventStreamsEnvironmentId": {
            "type": "string",
            "description": "Event streams environment ID",
            "example": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63"
          },
          "eventStreamsSubscriptionName": {
            "type": "string",
            "description": "Event streams subscription name",
            "example": "Subscription1"
          },
          "topicName": {
            "type": "string",
            "description": "Name of Event Streams Topic",
            "example": "Topic1"
          },
          "topicDescription": {
            "type": "string",
            "description": "Description of Event Streams topic",
            "example": "Topic for User updates"
          }
        },
        "required": [
          "eventStreamsEnvironmentId",
          "eventStreamsSubscriptionName",
          "topicName"
        ]
      },
      "CreateESSubscriptionData": {
        "type": "object",
        "description": "GraphQL data object containing the created subscription",
        "properties": {
          "eventStreamsSubscriptionCreate": {
            "$ref": "#/components/schemas/EventStreamsSubscription",
            "description": "The newly created Event Streams subscription"
          }
        }
      },
      "CreateESSubscriptionResponse": {
        "type": "object",
        "description": "Response from creating an Event Streams topic and subscription",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CreateESSubscriptionData",
            "description": "Top-level GraphQL data envelope"
          }
        }
      },
      "EventStreamsEnvironment": {
        "type": "object",
        "description": "The Event Streams environment a topic belongs to",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the Event Streams environment",
            "example": "0b8bc0ef-d4d1-4797-9234-935cf0ff3f63"
          }
        }
      },
      "EventStreamsSubscription": {
        "type": "object",
        "description": "An Event Streams subscription and its associated topic",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the Event Streams subscription",
            "example": "Subscription1"
          },
          "topic": {
            "$ref": "#/components/schemas/EventStreamsTopic",
            "description": "The topic this subscription is attached to"
          }
        }
      },
      "EventStreamsTopic": {
        "type": "object",
        "description": "An Event Streams topic",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the Event Streams topic",
            "example": "Topic1"
          },
          "environment": {
            "$ref": "#/components/schemas/EventStreamsEnvironment",
            "description": "The environment this topic belongs to"
          },
          "subscriptionCount": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of subscriptions on this topic",
            "example": 1
          }
        }
      },
      "SubscriptionPatchRequest": {
        "type": "object",
        "description": "Request wrapper for batch operations on subscriptions",
        "example": {
          "subscriptionIds": [
            "123e4567-e89b-12d3-a456-426614174000",
            "223e4567-e89b-12d3-a456-426614174001"
          ],
          "operation": "delete"
        },
        "properties": {
          "subscriptionIds": {
            "type": "array",
            "items": {
              "description": "Unique identifier for a subscription",
              "example": "123e4567-e89b-12d3-a456-426614174000"
            }
          },
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Subscription"
            }
          },
          "operation": {
            "type": "string",
            "description": "Operation to perform on the specified subscriptions",
            "enum": [
              "delete",
              "update"
            ],
            "example": "delete"
          }
        },
        "required": [
          "operation"
        ]
      },
      "SubscriptionPatchResponse": {
        "type": "object",
        "description": "Response containing the result of a patch operation on a subscription",
        "example": {
          "subscriptionId": "123e4567-e89b-12d3-a456-426614174000",
          "httpEquivalentCode": 200,
          "message": "Updated successfully"
        },
        "properties": {
          "subscriptionId": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier of the subscription that was processed",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "httpEquivalentCode": {
            "type": "integer",
            "format": "int32",
            "description": "HTTP status code equivalent representing the result of the operation",
            "example": 200
          },
          "message": {
            "type": "string",
            "description": "Descriptive message about the result of the operation",
            "example": "Deleted successfully"
          }
        }
      },
      "SubscriptionPatchResponseWrapper": {
        "type": "object",
        "description": "Wrapper containing the results of batch operations on multiple subscriptions",
        "example": {
          "operationStatuses": [
            {
              "subscriptionId": "123e4567-e89b-12d3-a456-426614174000",
              "httpEquivalentCode": 200,
              "message": "Updated successfully"
            },
            {
              "subscriptionId": "223e4567-e89b-12d3-a456-426614174001",
              "httpEquivalentCode": 404,
              "message": "Subscription not found"
            }
          ]
        },
        "properties": {
          "operationStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionPatchResponse"
            }
          }
        }
      },
      "LogLevelWrapper": {
        "type": "object",
        "description": "A container for a collection of log levels",
        "example": {
          "logLevels": [
            {
              "name": "ERROR",
              "description": "Error"
            },
            {
              "name": "WARNING",
              "description": "Warning"
            },
            {
              "name": "INFO",
              "description": "Information"
            }
          ]
        },
        "properties": {
          "logLevels": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      },
      "EventDto": {
        "type": "object",
        "description": "Represents an event that can trigger notifications",
        "properties": {
          "eventId": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier for the event",
            "example": "bc13c60c-2e1a-4849-886d-26268637de38"
          },
          "eventName": {
            "type": "string",
            "description": "Human-readable name of the event",
            "example": "Atom.Status"
          }
        },
        "required": [
          "eventId",
          "eventName"
        ]
      },
      "EventWrapper": {
        "type": "object",
        "description": "A container for a collection of events",
        "example": {
          "events": [
            {
              "eventId": "bc13c60c-2e1a-4849-886d-26268637de38",
              "eventName": "Atom.Status"
            },
            {
              "eventId": "6e21f46b-765b-4472-9c9d-0c06a838fddc",
              "eventName": "Process.Execution"
            }
          ]
        },
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventDto"
            }
          }
        }
      },
      "DestinationTypeWrapper": {
        "type": "object",
        "description": "Wrapper containing a list of destination types with their properties",
        "example": {
          "destinationTypes": [
            {
              "name": "EMAIL",
              "description": "Email"
            },
            {
              "name": "EVENT_STREAMS",
              "description": "Event Streams"
            }
          ]
        },
        "properties": {
          "destinationTypes": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "bearer-auth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  }
}