Bell Canada Service Order API

Bell's implementation of the TM Forum TMF641 Service Ordering Management Open API (Bell version v1.4, TMF641 v4.6), used by partners to place, amend, cancel and track service requests with Bell over a B2B integration. Covers serviceOrder and cancelServiceOrder resources plus hub/listener notifications for create, state change, milestone, jeopardy, information-required and failure events.

OpenAPI Specification

bell-canada-service-order-api-openapi.json Raw ↑
{
  "swagger": "2.0",
  "info": {
    "title": "API ServiceOrdering",
    "description": "## TMF API Reference : TMF 641 - Service Ordering Management\n\n Version 4.6 \n\nThe Service Order API provides a standardized mechanism for managing Service Order, a type of order which can be used to place an order between internal Customer Order management system to service order management system or between a service provider and a partner and vice versa.\n\n### Service Order resource\nA service order will describe a list of service order items.  A service order item references an action on an existing  or  future  service.  By  service  we  designed  Customer Facing  Service  (CFS)  as  well  as  Resource Facing Service (RFS).\nFrom a component perspective, a service order should be available\n- from a Service Orchestration Component (and it could mix CFS and RFS)\n- from an Infrastructure Control & Management component (and it would have only RFS)\n\n### TMF641 performs the following operations on service order resource :\n- Retrieval of a service order or a collection of service orders depending on filter criteria\n- Partial update of a service order (including updating rules)\n- Creation of a service order (including default values and creation rules)\n- Deletion of service order (for administration purposes)\n- Notification of events on Service order\n\n**Cancel Service Order resource**\n\nThis resource is used to request a service order cancellation.\n\n**TMF641 provides following operations on Cancel Service Order resource :**\n\n- Retrieval of a cancel service order or a collection of cancel service orders \n- Creation of a cancel service order \n- Notification of events on cancel service order.\n\nCopyright © TM Forum 2020. All Rights Reserved",
    "version": "4.6.0"
  },
  "host": "serverRoot",
  "basePath": "/tmf-api/serviceOrdering/v4",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json;charset=utf-8"
  ],
  "produces": [
    "application/json;charset=utf-8"
  ],
  "tags": [
    {
      "name": "serviceOrder"
    },
    {
      "name": "cancelServiceOrder"
    },
    {
      "name": "notification listeners (client side)"
    },
    {
      "name": "events subscription"
    }
  ],
  "paths": {
    "/cancelServiceOrder": {
      "get": {
        "operationId": "listCancelServiceOrder",
        "summary": "List or find CancelServiceOrder objects",
        "description": "This operation list or find CancelServiceOrder entities",
        "tags": [
          "cancelServiceOrder"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string",
            "description": "Comma-separated properties to be provided in response"
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "type": "integer",
            "description": "Requested index for start of resources to be provided in response"
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer",
            "description": "Requested number of resources to be provided in response"
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "type": "string",
            "description": "To have the output sorted by fields. Can support one or many fields, as well as ascending and descending sort order"
          },
          {
            "in": "query",
            "name": "expand",
            "required": false,
            "type": "string",
            "description": "Lists the sub-entities to expand along with the depth value. Empty means expand all at depth level N"
          },
          {
            "in": "query",
            "name": "depth",
            "required": false,
            "type": "string",
            "description": "Depth level where objects are dereferenced and inserted as values into the response"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "X-Result-Count": {
                "type": "integer",
                "description": "Actual number of items returned in the response body"
              },
              "X-Total-Count": {
                "type": "integer",
                "description": "Total number of items matching criteria"
              }
            },
            "schema": {
              "items": {
                "$ref": "#/definitions/CancelServiceOrder"
              },
              "type": "array"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      },
      "post": {
        "operationId": "createCancelServiceOrder",
        "summary": "Creates a CancelServiceOrder",
        "description": "This operation creates a CancelServiceOrder entity.",
        "tags": [
          "cancelServiceOrder"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "cancelServiceOrder",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CancelServiceOrder_Create"
            },
            "description": "The CancelServiceOrder to be created"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/CancelServiceOrder"
            }
          },
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/cancelServiceOrder/{id}": {
      "get": {
        "operationId": "retrieveCancelServiceOrder",
        "summary": "Retrieves a CancelServiceOrder by ID",
        "description": "This operation retrieves a CancelServiceOrder entity. Attribute selection is enabled for all first level attributes.",
        "tags": [
          "cancelServiceOrder"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the CancelServiceOrder"
          },
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string",
            "description": "Comma-separated properties to be provided in response"
          },
          {
            "in": "query",
            "name": "expand",
            "required": false,
            "type": "string",
            "description": "Lists the sub-entities to expand along with the depth value. Empty means expand all at depth level N"
          },
          {
            "in": "query",
            "name": "depth",
            "required": false,
            "type": "string",
            "description": "Depth level where objects are dereferenced and inserted as values into the response"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CancelServiceOrder"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/serviceOrder": {
      "get": {
        "operationId": "listServiceOrder",
        "summary": "List or find ServiceOrder objects",
        "description": "This operation list or find ServiceOrder entities",
        "tags": [
          "serviceOrder"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string",
            "description": "Comma-separated properties to be provided in response"
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "type": "integer",
            "description": "Requested index for start of resources to be provided in response"
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "integer",
            "description": "Requested number of resources to be provided in response"
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "type": "string",
            "description": "To have the output sorted by fields. Can support one or many fields, as well as ascending and descending sort order"
          },
          {
            "in": "query",
            "name": "expand",
            "required": false,
            "type": "string",
            "description": "Lists the sub-entities to expand along with the depth value. Empty means expand all at depth level N"
          },
          {
            "in": "query",
            "name": "depth",
            "required": false,
            "type": "string",
            "description": "Depth level where objects are dereferenced and inserted as values into the response"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "headers": {
              "X-Result-Count": {
                "type": "integer",
                "description": "Actual number of items returned in the response body"
              },
              "X-Total-Count": {
                "type": "integer",
                "description": "Total number of items matching criteria"
              }
            },
            "schema": {
              "items": {
                "$ref": "#/definitions/ServiceOrder"
              },
              "type": "array"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      },
      "post": {
        "operationId": "createServiceOrder",
        "summary": "Creates a ServiceOrder",
        "description": "This operation creates a ServiceOrder entity.",
        "tags": [
          "serviceOrder"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "serviceOrder",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ServiceOrder_Create"
            },
            "description": "The ServiceOrder to be created"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/ServiceOrder"
            }
          },
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/serviceOrder/{id}": {
      "get": {
        "operationId": "retrieveServiceOrder",
        "summary": "Retrieves a ServiceOrder by ID",
        "description": "This operation retrieves a ServiceOrder entity. Attribute selection is enabled for all first level attributes.",
        "tags": [
          "serviceOrder"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the ServiceOrder"
          },
          {
            "in": "query",
            "name": "fields",
            "required": false,
            "type": "string",
            "description": "Comma-separated properties to be provided in response"
          },
          {
            "in": "query",
            "name": "expand",
            "required": false,
            "type": "string",
            "description": "Lists the sub-entities to expand along with the depth value. Empty means expand all at depth level N"
          },
          {
            "in": "query",
            "name": "depth",
            "required": false,
            "type": "string",
            "description": "Depth level where objects are dereferenced and inserted as values into the response"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ServiceOrder"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      },
      "patch": {
        "operationId": "patchServiceOrder",
        "summary": "Updates partially a ServiceOrder",
        "description": "This operation updates partially a ServiceOrder entity.",
        "tags": [
          "serviceOrder"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the ServiceOrder"
          },
          {
            "in": "body",
            "name": "serviceOrder",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ServiceOrder_Update"
            },
            "description": "The ServiceOrder to be updated"
          }
        ],
        "responses": {
          "200": {
            "description": "Updated",
            "schema": {
              "$ref": "#/definitions/ServiceOrder"
            }
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      },
      "delete": {
        "operationId": "deleteServiceOrder",
        "summary": "Deletes a ServiceOrder",
        "description": "This operation deletes a ServiceOrder entity.",
        "tags": [
          "serviceOrder"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the ServiceOrder"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/hub": {
      "post": {
        "operationId": "registerListener",
        "summary": "Register a listener",
        "description": "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.",
        "tags": [
          "events subscription"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/EventSubscriptionInput"
            },
            "description": "Data containing the callback endpoint to deliver the information"
          }
        ],
        "responses": {
          "201": {
            "description": "Subscribed",
            "schema": {
              "$ref": "#/definitions/EventSubscription"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/hub/{id}": {
      "delete": {
        "operationId": "unregisterListener",
        "summary": "Unregister a listener",
        "description": "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.",
        "tags": [
          "events subscription"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "The id of the registered listener"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/listener/serviceOrderCreateEvent": {
      "post": {
        "operationId": "listenToServiceOrderCreateEvent",
        "summary": "Client listener for entity ServiceOrderCreateEvent",
        "description": "Example of a client listener for receiving the notification ServiceOrderCreateEvent",
        "tags": [
          "notification listeners (client side)"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ServiceOrderCreateEvent"
            },
            "description": "The event data"
          }
        ],
        "responses": {
          "201": {
            "description": "Notified",
            "schema": {
              "$ref": "#/definitions/EventSubscription"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/listener/serviceOrderAttributeValueChangeEvent": {
      "post": {
        "operationId": "listenToServiceOrderAttributeValueChangeEvent",
        "summary": "Client listener for entity ServiceOrderAttributeValueChangeEvent",
        "description": "Example of a client listener for receiving the notification ServiceOrderAttributeValueChangeEvent",
        "tags": [
          "notification listeners (client side)"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ServiceOrderAttributeValueChangeEvent"
            },
            "description": "The event data"
          }
        ],
        "responses": {
          "201": {
            "description": "Notified",
            "schema": {
              "$ref": "#/definitions/EventSubscription"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/listener/serviceOrderStateChangeEvent": {
      "post": {
        "operationId": "listenToServiceOrderStateChangeEvent",
        "summary": "Client listener for entity ServiceOrderStateChangeEvent",
        "description": "Example of a client listener for receiving the notification ServiceOrderStateChangeEvent",
        "tags": [
          "notification listeners (client side)"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ServiceOrderStateChangeEvent"
            },
            "description": "The event data"
          }
        ],
        "responses": {
          "201": {
            "description": "Notified",
            "schema": {
              "$ref": "#/definitions/EventSubscription"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "403": {
            "description": "Forbidden",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "405": {
            "description": "Method Not allowed",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "409": {
            "description": "Conflict",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          },
          "500": {
            "description": "Internal Server Error",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        }
      }
    },
    "/listener/serviceOrderDeleteEvent": {
      "post": {
        "operationId": "listenToServiceOrderDeleteEvent",
        "summary": "Client listener for entity ServiceOrderDeleteEvent",
        "description": "Example of a client listener for receiving the notification ServiceOrderDeleteEvent",
        "tags": [
          "notification listeners (client side)"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ServiceOrderDeleteEvent"
            },
            "description": "The event data"
          }
        ],
        "responses": {
          "201": {
            "description": "Notified",
            "schema": 

# --- truncated at 32 KB (164 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bell-canada/refs/heads/main/openapi/bell-canada-service-order-api-openapi.json