{
  "openapi": "3.1.0",
  "info": {
    "title": "IoT Test Service",
    "version": "0.1.0",
    "description": "This template provides a starting point for a Blackbox API with only a root node."
  },
  "components": {
    "parameters": {
      "query-meta": {
        "in": "query",
        "name": "meta",
        "schema": {
          "type": "string"
        },
        "required": false,
        "allowEmptyValue": true,
        "description": "Get metadata instead of the service or object."
      },
      "path-locationname": {
        "in": "path",
        "name": "locationname",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "The locationname of the location."
      },
      "path-deviceindex": {
        "in": "path",
        "name": "deviceindex",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "The deviceindex of the iot-device."
      },
      "path-tabbedServiceindex": {
        "in": "path",
        "name": "tabbedServiceindex",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "The tabbedServiceindex of the string."
      },
      "path-tabbedSub1index": {
        "in": "path",
        "name": "tabbedSub1index",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "The tabbedSub1index of the string."
      },
      "path-tabbedSub2index": {
        "in": "path",
        "name": "tabbedSub2index",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "The tabbedSub2index of the string."
      },
      "path-tabbedSub3index": {
        "in": "path",
        "name": "tabbedSub3index",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "The tabbedSub3index of the string."
      }
    },
    "schemas": {
      "oas3schema": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "object",
              "array",
              "string",
              "number",
              "boolean",
              "integer"
            ]
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/oas3schema"
            }
          },
          "items": {
            "$ref": "#/components/schemas/oas3schema"
          },
          "required": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "service": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "format": "uri"
          },
          "access": {
            "type": "string",
            "enum": [
              "index",
              "id",
              "unique"
            ]
          },
          "identifier": {
            "type": "string"
          },
          "type": {
            "type": "object",
            "properties": {
              "format": {
                "type": "string",
                "enum": [
                  "oas3"
                ]
              },
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "href": {
                        "type": "string",
                        "format": "uri"
                      }
                    }
                  },
                  {
                    "$ref": "#/components/schemas/oas3schema"
                  }
                ]
              }
            }
          }
        }
      },
      "service-list": {
        "type": "object",
        "properties": {
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/service"
            }
          }
        }
      },
      "metadata": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      },
      "index-response": {
        "type": "object",
        "properties": {
          "index": {
            "type": "number"
          }
        }
      },
      "location": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "address": {
            "type": "string"
          }
        }
      },
      "location-name": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "iot-device": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        }
      }
    }
  },
  "paths": {
    "/": {
      "get": {
        "summary": "A list of services provided by this API.",
        "operationId": "getRootService",
        "tags": [
          "root"
        ],
        "responses": {
          "200": {
            "description": "200 OK Response: The list of services.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/service-list"
                    },
                    {
                      "$ref": "#/components/schemas/metadata"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptions",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      }
    },
    "/location": {
      "get": {
        "operationId": "getLocationList",
        "summary": "Retrieve a list of location objects.",
        "description": "Retrieve a list of location objects.",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the list of location.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/location"
                  }
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForLocationList",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "x-bb-service": {
        "access": "id",
        "identifier": "name"
      },
      "summary": "Locations",
      "description": "IoT supported buildings and locations.",
      "post": {
        "operationId": "createLocation",
        "summary": "Creates a location object.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/location"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "location successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/location-name"
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/location/{locationname}": {
      "get": {
        "summary": "Get a location object",
        "operationId": "getLocation",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-locationname"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested location object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/location"
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForLocation",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "put": {
        "operationId": "replaceLocation",
        "summary": "Replace a location.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-locationname"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/location"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "location replaced successfully."
          }
        }
      },
      "patch": {
        "operationId": "updateLocation",
        "summary": "Update some properties of a location.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-locationname"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/location"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "location updated successfully."
          }
        }
      },
      "delete": {
        "operationId": "deleteLocation",
        "summary": "Delete a location.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-locationname"
          }
        ],
        "responses": {
          "200": {
            "description": "location deleted successfully."
          }
        }
      }
    },
    "/location/{locationname}/device": {
      "get": {
        "operationId": "getDeviceList",
        "summary": "Retrieve a list of iot-device objects.",
        "description": "Retrieve a list of iot-device objects.",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-locationname"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the list of iot-device.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/iot-device"
                  }
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForDeviceList",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "x-bb-service": {
        "access": "index"
      },
      "summary": "Operations on device",
      "description": "This service allows management of iot-device objects.",
      "post": {
        "operationId": "createDevice",
        "summary": "Creates a iot-device object.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/iot-device"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "iot-device successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/index-response"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/path-locationname"
          }
        ]
      }
    },
    "/location/{locationname}/device/{deviceindex}": {
      "get": {
        "summary": "Get a iot-device object",
        "operationId": "getDevice",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-locationname"
          },
          {
            "$ref": "#/components/parameters/path-deviceindex"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested iot-device object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/iot-device"
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForDevice",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "put": {
        "operationId": "replaceDevice",
        "summary": "Replace a iot-device.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-locationname"
          },
          {
            "$ref": "#/components/parameters/path-deviceindex"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/iot-device"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "iot-device replaced successfully."
          }
        }
      },
      "patch": {
        "operationId": "updateDevice",
        "summary": "Update some properties of a iot-device.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-locationname"
          },
          {
            "$ref": "#/components/parameters/path-deviceindex"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/iot-device"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "iot-device updated successfully."
          }
        }
      },
      "delete": {
        "operationId": "deleteDevice",
        "summary": "Delete a iot-device.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-locationname"
          },
          {
            "$ref": "#/components/parameters/path-deviceindex"
          }
        ],
        "responses": {
          "200": {
            "description": "iot-device deleted successfully."
          }
        }
      }
    },
    "/hello": {
      "get": {
        "operationId": "getHello",
        "summary": "Retrieve the string object.",
        "description": "Retrieve the string object.",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the string.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForHello",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "x-bb-service": {
        "access": "unique"
      },
      "summary": "Operations on hello",
      "description": "This service allows access to a unique string object.",
      "post": {
        "operationId": "createHello",
        "summary": "Creates a string object.",
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string successfully created."
          }
        },
        "parameters": []
      }
    },
    "/comm": {
      "get": {
        "operationId": "getComm",
        "summary": "Retrieve the string object.",
        "description": "Retrieve the string object.",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the string.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-bb-com-macro": {
          "name": "com1",
          "commands": [
            "GET DATA"
          ],
          "responses": [
            "CMD DONE$"
          ]
        }
      },
      "options": {
        "operationId": "getOptionsForComm",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "x-bb-service": {
        "access": "unique"
      },
      "summary": "Operations on comm",
      "description": "This service allows access to a unique string object.",
      "post": {
        "operationId": "createComm",
        "summary": "Creates a string object.",
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string successfully created."
          }
        },
        "parameters": [],
        "x-bb-com-macro": {
          "name": "com1",
          "commands": [
            "SET DATA {data}"
          ],
          "responses": [
            "CMD DONE$"
          ]
        }
      },
      "delete": {
        "operationId": "deleteComm",
        "summary": "Delete a string.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "string deleted successfully."
          }
        },
        "x-bb-com-macro": {
          "name": "com1",
          "commands": [
            "DEL DATA",
            "Y"
          ],
          "responses": [
            "Are you sure\\? \\(Y\\/N\\)$",
            "CMD DONE$"
          ]
        }
      }
    },
    "/tabbed-service": {
      "get": {
        "operationId": "getTabbedServiceList",
        "summary": "Retrieve a list of string objects.",
        "description": "Retrieve a list of string objects.",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the list of string.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForTabbedServiceList",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "x-bb-service": {
        "metadata": {
          "ui": {
            "subservice-display": "tabs"
          }
        }
      },
      "summary": "Operations on tabbed-service",
      "description": "This service allows management of string objects.",
      "post": {
        "operationId": "createTabbedService",
        "summary": "Creates a string object.",
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/index-response"
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/tabbed-service/{tabbedServiceindex}": {
      "get": {
        "summary": "Get a string object",
        "operationId": "getTabbedService",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested string object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForTabbedService",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "put": {
        "operationId": "replaceTabbedService",
        "summary": "Replace a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string replaced successfully."
          }
        }
      },
      "patch": {
        "operationId": "updateTabbedService",
        "summary": "Update some properties of a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string updated successfully."
          }
        }
      },
      "delete": {
        "operationId": "deleteTabbedService",
        "summary": "Delete a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ],
        "responses": {
          "200": {
            "description": "string deleted successfully."
          }
        }
      }
    },
    "/tabbed-service/{tabbedServiceindex}/tabbed-sub1": {
      "get": {
        "operationId": "getTabbedSub1List",
        "summary": "Retrieve a list of string objects.",
        "description": "Retrieve a list of string objects.",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the list of string.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForTabbedSub1List",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "x-bb-service": {
        "metadata": {
          "ui": {
            "service-view": {
              "href": "http://localhost:5174/custom"
            }
          }
        }
      },
      "summary": "Operations on tabbed-sub1",
      "description": "This service allows management of string objects.",
      "post": {
        "operationId": "createTabbedSub1",
        "summary": "Creates a string object.",
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/index-response"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ]
      }
    },
    "/tabbed-service/{tabbedServiceindex}/tabbed-sub1/{tabbedSub1index}": {
      "get": {
        "summary": "Get a string object",
        "operationId": "getTabbedSub1",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub1index"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested string object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForTabbedSub1",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "put": {
        "operationId": "replaceTabbedSub1",
        "summary": "Replace a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub1index"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string replaced successfully."
          }
        }
      },
      "patch": {
        "operationId": "updateTabbedSub1",
        "summary": "Update some properties of a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub1index"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string updated successfully."
          }
        }
      },
      "delete": {
        "operationId": "deleteTabbedSub1",
        "summary": "Delete a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub1index"
          }
        ],
        "responses": {
          "200": {
            "description": "string deleted successfully."
          }
        }
      }
    },
    "/tabbed-service/{tabbedServiceindex}/tabbed-sub2": {
      "get": {
        "operationId": "getTabbedSub2List",
        "summary": "Retrieve a list of string objects.",
        "description": "Retrieve a list of string objects.",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the list of string.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForTabbedSub2List",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "x-bb-service": {
        "metadata": {
          "ui": {
            "service-view": {
              "href": "http://localhost:5174/custom"
            }
          }
        }
      },
      "summary": "Operations on tabbed-sub2",
      "description": "This service allows management of string objects.",
      "post": {
        "operationId": "createTabbedSub2",
        "summary": "Creates a string object.",
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/index-response"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ]
      }
    },
    "/tabbed-service/{tabbedServiceindex}/tabbed-sub2/{tabbedSub2index}": {
      "get": {
        "summary": "Get a string object",
        "operationId": "getTabbedSub2",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub2index"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested string object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForTabbedSub2",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "put": {
        "operationId": "replaceTabbedSub2",
        "summary": "Replace a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub2index"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string replaced successfully."
          }
        }
      },
      "patch": {
        "operationId": "updateTabbedSub2",
        "summary": "Update some properties of a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub2index"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string updated successfully."
          }
        }
      },
      "delete": {
        "operationId": "deleteTabbedSub2",
        "summary": "Delete a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub2index"
          }
        ],
        "responses": {
          "200": {
            "description": "string deleted successfully."
          }
        }
      }
    },
    "/tabbed-service/{tabbedServiceindex}/tabbed-sub3": {
      "get": {
        "operationId": "getTabbedSub3List",
        "summary": "Retrieve a list of string objects.",
        "description": "Retrieve a list of string objects.",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the list of string.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForTabbedSub3List",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "x-bb-service": {},
      "summary": "Operations on tabbed-sub3",
      "description": "This service allows management of string objects.",
      "post": {
        "operationId": "createTabbedSub3",
        "summary": "Creates a string object.",
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string successfully created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/index-response"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          }
        ]
      }
    },
    "/tabbed-service/{tabbedServiceindex}/tabbed-sub3/{tabbedSub3index}": {
      "get": {
        "summary": "Get a string object",
        "operationId": "getTabbedSub3",
        "parameters": [
          {
            "$ref": "#/components/parameters/query-meta"
          },
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub3index"
          }
        ],
        "responses": {
          "200": {
            "description": "The requested string object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "options": {
        "operationId": "getOptionsForTabbedSub3",
        "responses": {
          "200": {
            "description": "List all available HTTP methods."
          }
        }
      },
      "put": {
        "operationId": "replaceTabbedSub3",
        "summary": "Replace a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub3index"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string replaced successfully."
          }
        }
      },
      "patch": {
        "operationId": "updateTabbedSub3",
        "summary": "Update some properties of a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub3index"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "text/plain": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "string updated successfully."
          }
        }
      },
      "delete": {
        "operationId": "deleteTabbedSub3",
        "summary": "Delete a string.",
        "parameters": [
          {
            "$ref": "#/components/parameters/path-tabbedServiceindex"
          },
          {
            "$ref": "#/components/parameters/path-tabbedSub3index"
          }
        ],
        "responses": {
          "200": {
            "description": "string deleted successfully."
          }
        }
      }
    }
  },
  "x-bb-com-types": {
    "com1": {
      "baud": "9600",
      "startupDelay": "2000",
      "initCommands": [
        "INFO"
      ],
      "initResponses": [
        "MOCK\\sDEVICE\\sV\\d+.?\\d*[\\n\\r]+STATUS: OK[\\n\\r]+CMD DONE$"
      ]
    }
  }
}