Bell Canada Resource Inventory Management API

Bell's implementation of the TM Forum TMF639 Resource Inventory Management Open API (Bell version v1.6, TMF639 v4.1), exposing logical, physical and generic resource records so partners can query and maintain an inventory view of the Bell resources supporting their services, with hub/listener notifications for resource and physical resource lifecycle events.

OpenAPI Specification

bell-canada-resource-inventory-api-openapi.json Raw ↑
{
  "swagger": "2.0",
  "info": {
    "title": "Resource Inventory Management",
    "description": "This is Swagger UI environment generated for the TMF Resource Inventory Management specification",
    "version": "4.1.0"
  },
  "host": "serverRoot",
  "basePath": "/resourceInventoryManagement/v4/",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json;charset=utf-8"
  ],
  "produces": [
    "application/json;charset=utf-8"
  ],
  "tags": [
    {
      "name": "resource"
    },
    {
      "name": "physicalResource"
    },
    {
      "name": "logicalResource"
    },
    {
      "name": "notification listeners (client side)"
    },
    {
      "name": "events subscription"
    }
  ],
  "paths": {
    "/logicalResource": {
      "get": {
        "operationId": "listLogicalResource",
        "summary": "List or find LogicalResource objects",
        "description": "This operation list or find LogicalResource entities",
        "tags": [
          "logicalResource"
        ],
        "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/LogicalResource"
              },
              "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": "createLogicalResource",
        "summary": "Creates a LogicalResource",
        "description": "This operation creates a LogicalResource entity.",
        "tags": [
          "logicalResource"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "logicalResource",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LogicalResource_Create"
            },
            "description": "The LogicalResource to be created"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/LogicalResource"
            }
          },
          "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"
            }
          }
        }
      }
    },
    "/logicalResource/executeJSONPatch": {
      "patch": {
        "operationId": "executePatchResource",
        "summary": "Updates a Logical Resource by applying a list of json patch operations",
        "tags": [
          "Resource"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "externalId",
            "required": true,
            "type": "string",
            "description": "Resource External Id"
          },
          {
            "in": "body",
            "name": "operations",
            "required": true,
            "schema": {
              "items": {
                "$ref": "#/definitions/JsonPathPatchOperation"
              },
              "type": "array"
            },
            "description": "The json patch operations to be applied."
          }
        ],
        "responses": {
          "200": {
            "description": "Updated",
            "schema": {
              "$ref": "#/definitions/LogicalResource"
            }
          },
          "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"
            }
          }
        }
      }
    },
    "/logicalResource/{id}": {
      "get": {
        "operationId": "retrieveLogicalResource",
        "summary": "Retrieves a LogicalResource by ID",
        "description": "This operation retrieves a LogicalResource entity. Attribute selection is enabled for all first level attributes.",
        "tags": [
          "logicalResource"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the LogicalResource"
          },
          {
            "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/LogicalResource"
            }
          },
          "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"
            }
          }
        }
      },
      "put": {
        "operationId": "updateLogicalResource",
        "summary": "Updates a LogicalResource",
        "description": "This operation updates a LogicalResource entity.",
        "tags": [
          "logicalResource"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the LogicalResource"
          },
          {
            "in": "body",
            "name": "logicalResource",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LogicalResource_Update"
            },
            "description": "The LogicalResource to be updated"
          }
        ],
        "responses": {
          "200": {
            "description": "Updated",
            "schema": {
              "$ref": "#/definitions/LogicalResource"
            }
          },
          "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": "patchLogicalResource",
        "summary": "Updates partially a LogicalResource",
        "description": "This operation updates partially a LogicalResource entity.",
        "tags": [
          "logicalResource"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the LogicalResource"
          },
          {
            "in": "body",
            "name": "logicalResource",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LogicalResource_Update"
            },
            "description": "The LogicalResource to be updated"
          }
        ],
        "responses": {
          "200": {
            "description": "Updated",
            "schema": {
              "$ref": "#/definitions/LogicalResource"
            }
          },
          "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": "deleteLogicalResource",
        "summary": "Deletes a LogicalResource",
        "description": "This operation deletes a LogicalResource entity.",
        "tags": [
          "logicalResource"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the LogicalResource"
          }
        ],
        "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"
            }
          }
        }
      }
    },
    "/physicalResource": {
      "get": {
        "operationId": "listPhysicalResource",
        "summary": "List or find PhysicalResource objects",
        "description": "This operation list or find PhysicalResource entities",
        "tags": [
          "physicalResource"
        ],
        "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/PhysicalResource"
              },
              "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": "createPhysicalResource",
        "summary": "Creates a PhysicalResource",
        "description": "This operation creates a PhysicalResource entity.",
        "tags": [
          "physicalResource"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "physicalResource",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PhysicalResource_Create"
            },
            "description": "The PhysicalResource to be created"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/PhysicalResource"
            }
          },
          "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"
            }
          }
        }
      }
    },
    "/physicalResource/{id}": {
      "get": {
        "operationId": "retrievePhysicalResource",
        "summary": "Retrieves a PhysicalResource by ID",
        "description": "This operation retrieves a PhysicalResource entity. Attribute selection is enabled for all first level attributes.",
        "tags": [
          "physicalResource"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the PhysicalResource"
          },
          {
            "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/PhysicalResource"
            }
          },
          "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": "patchPhysicalResource",
        "summary": "Updates partially a PhysicalResource",
        "description": "This operation updates partially a PhysicalResource entity.",
        "tags": [
          "physicalResource"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the PhysicalResource"
          },
          {
            "in": "body",
            "name": "physicalResource",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PhysicalResource_Update"
            },
            "description": "The PhysicalResource to be updated"
          }
        ],
        "responses": {
          "200": {
            "description": "Updated",
            "schema": {
              "$ref": "#/definitions/PhysicalResource"
            }
          },
          "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": "deletePhysicalResource",
        "summary": "Deletes a PhysicalResource",
        "description": "This operation deletes a PhysicalResource entity.",
        "tags": [
          "physicalResource"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "type": "string",
            "description": "Identifier of the PhysicalResource"
          }
        ],
        "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"
            }
          }
        }
      }
    },
    "/resource": {
      "get": {
        "operationId": "listResource",
        "summary": "List or find Resource objects",
        "description": "This operation list or find Resource entities",
        "tags": [
          "resource"
        ],
        "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/Resource"
              },
              "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": "createResource",
        "summary": "Creates a Resource",
    

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