{
    "swagger": "2.0",
    "info": {
        "title": "phpipam",
        "description": "Open-source IP address management",
        "version": "1.0.0",
        "termsOfService": "http://swagger.io/terms/",
        "contact": {
            "email": "apiteam@swagger.io"
        },
        "license": {
            "name": "Apache 2.0",
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
        }
    },
    "host": "your.host.name.io",
    "basePath": "/api",
    "schemes": [
        "https",
        "http"
    ],
    "tags": [
        {
            "name": "sections",
            "description": "sections controller",
            "externalDocs": null
        },
        {
            "name": "subnets",
            "description": "subnets controller",
            "externalDocs": null
        },
        {
            "name": "devices",
            "description": "devices controller",
            "externalDocs": null
        },
        {
            "name": "addresses",
            "description": "addresses controller",
            "externalDocs": null
        },
        {
            "name": "vlans",
            "description": "vlans controller",
            "externalDocs": null
        },
        {
            "name": "l2domains",
            "description": "l2domains controller",
            "externalDocs": null
        },
        {
            "name": "vrfs",
            "description": "vrfs controller",
            "externalDocs": null
        },
        {
            "name": "tools",
            "description": "tools controller",
            "externalDocs": null
        },
        {
            "name": "prefix",
            "description": "prefix controller",
            "externalDocs": null
        },
        {
            "name": "default",
            "description": "",
            "externalDocs": {
                "url": "http://swagger.io"
            }
        }
    ],
    "paths": {
        "/sections": {
            "get": {
                "parameters": [],
                "tags": [
                    "sections"
                ],
                "operationId": "getSections",
                "summary": "Returns all sections",
                "description": "Returns all sections",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "sections"
                ],
                "operationId": "createSection",
                "summary": "Creates new section",
                "description": "Creates new section",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "patch": {
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "sections"
                ],
                "operationId": "updateSection",
                "summary": "Updates section",
                "description": "Updates section",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/sections/{id}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Section identifier, identifies which section to work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "sections"
                ],
                "operationId": "getSection",
                "summary": "Returns specific section",
                "description": "Returns specific section",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "delete": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Section identifier, identifies which section to work on.",
                        "type": "string"
                    }
                ],
                "tags": [
                    "sections"
                ],
                "operationId": "deleteSection",
                "summary": "Deletes section with all belonging subnets and addresses",
                "description": "Deletes section with all belonging subnets and addresses",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/sections/{id}/subnets": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Section identifier, identifies which section to work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "sections"
                ],
                "operationId": "getSectionSubnets",
                "summary": "Returns all subnets in section",
                "description": "Returns all subnets in section",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/sections/{name}": {
            "get": {
                "parameters": [
                    {
                        "name": "name",
                        "in": "path",
                        "type": "string",
                        "description": "Section name, unique value",
                        "required": true
                    }
                ],
                "tags": [
                    "sections"
                ],
                "operationId": "getSectionByName",
                "summary": "Returns specific section by name",
                "description": "Returns specific section by name",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/sections/custom_fields": {
            "get": {
                "parameters": [],
                "tags": [
                    "sections"
                ],
                "operationId": "getSectionsCustomFields",
                "summary": "Returns custom section fields",
                "description": "Returns custom section fields",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string"
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnet",
                "summary": "Returns specific subnet by id",
                "description": "Returns specific subnet by id",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "delete": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "deleteSubnet",
                "summary": "Deletes Subnet",
                "description": "Deletes Subnet",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/usage": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetUsage",
                "summary": "Returns subnet usage",
                "description": "Returns subnet usage",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/first_free": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetFirstFree",
                "summary": "Returns first available IP address in subnet",
                "description": "Returns first available IP address in subnet",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/slaves": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetSlaves",
                "summary": "Returns all immediate slave subnets",
                "description": "Returns all immediate slave subnets",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/slaves_recursive": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetSlavesRecursive",
                "summary": "Returns all slave subnets recursive",
                "description": "Returns all slave subnets recursive",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/addresses": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetAddresses",
                "summary": "Returns all addresses in subnet",
                "description": "Returns all addresses in subnet",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/addresses/{ip}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "ip",
                        "in": "path",
                        "description": "IP address of subnet in dotted format (e.g. 10.10.10.0)",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetIPAddress",
                "summary": "Returns IP address from subnet",
                "description": "Returns IP address from subnet",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/first_subnet/{mask}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "type": "string",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "required": true
                    },
                    {
                        "name": "mask",
                        "in": "path",
                        "type": "string",
                        "description": "Subnet bitmask",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetFirstAvailable",
                "summary": "Returns first available subnet within selected for mask",
                "description": "Returns first available subnet within selected for mask",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "createSubnetInsideSubnet",
                "summary": "Creates new child subnet inside subnet with specified mask",
                "description": "Creates new child subnet inside subnet with specified mask",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/all_subnets/{mask}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "type": "string",
                        "description": "Subnet identifier, identifies which subnetto work on",
                        "required": true
                    },
                    {
                        "name": "mask",
                        "in": "path",
                        "type": "string",
                        "description": "Subnet bitmask",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetAllAvailable",
                "summary": "Returns all available subnets within selected for mask",
                "description": "Returns all available subnets within selected for mask",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/custom_fields": {
            "get": {
                "parameters": [],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetCustomFields",
                "summary": "Returns all subnet custom fields",
                "description": "Returns all subnet custom fields",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/cidr/{subnet}": {
            "get": {
                "parameters": [
                    {
                        "name": "subnet",
                        "in": "path",
                        "description": "IP address of subnet in dotted format (e.g. 10.10.10.0)",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetCIDR",
                "summary": "Searches for subnet in CIDR format",
                "description": "Searches for subnet in CIDR format",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/search/{subnet}": {
            "get": {
                "parameters": [
                    {
                        "name": "subnet",
                        "in": "path",
                        "description": "IP address of subnet in dotted format (e.g. 10.10.10.0)",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "getSubnetCIDRSearch",
                "summary": "Searches for subnet in CIDR format",
                "description": "Searches for subnet in CIDR format",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets": {
            "post": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "createSubnet",
                "summary": "Creates new subnet",
                "description": "Creates new subnet",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "patch": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "updateSubnet",
                "summary": "Updates Subnet",
                "description": "Updates Subnet",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/resize": {
            "patch": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "type": "string",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "required": true
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "updateSubnetMaskSize",
                "summary": "Resizes subnet to new mask",
                "description": "Resizes subnet to new mask",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/split": {
            "patch": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "updateSubnetSplit",
                "summary": "Splits subnet to smaller subnets",
                "description": "Splits subnet to smaller subnets",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/permissions": {
            "patch": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "type": "string",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "required": true
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "udpateSubnetPermissions",
                "summary": "Sets subnet permissions",
                "description": "Sets subnet permissions (?grouname1=ro&groupname2=3&43=1)",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "delete": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "deleteSubnetPermissions",
                "summary": "Removes all permissions",
                "description": "Removes all permissions",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/subnets/{id}/truncate": {
            "delete": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Subnet identifier, identifies which subnetto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "subnets"
                ],
                "operationId": "deleteSubnetAddresses",
                "summary": "Removes all addresses from subnet",
                "description": "Removes all addresses from subnet",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/{id}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "address identifier, identifies which addressto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "getAddress",
                "summary": "Returns specific address",
                "description": "Returns specific address",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "patch": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "updateAddress",
                "summary": "Updates address",
                "description": "Updates address",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "delete": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "deleteAddress",
                "summary": "Deletes address",
                "description": "Deletes address - use 'remove_dns=1' parameter to remove all related DNS records",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/{id}/ping": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "address identifier, identifies which addressto work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "getAddressStatus",
                "summary": "Checks address status",
                "description": "Checks address status",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/{ip}/{subnetId}": {
            "get": {
                "parameters": [
                    {
                        "name": "ip",
                        "in": "path",
                        "type": "string",
                        "description": "IP address",
                        "required": true
                    },
                    {
                        "name": "subnetId",
                        "in": "path",
                        "type": "string",
                        "description": "Id of subnet address belongs to",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "getAddressFromSubnet",
                "summary": "Returns address from subnet by ip address",
                "description": "Returns address from subnet by ip address",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "delete": {
                "parameters": [
                    {
                        "name": "ip",
                        "in": "path",
                        "type": "string",
                        "description": "IP address",
                        "required": true
                    },
                    {
                        "name": "subnetId",
                        "in": "path",
                        "type": "string",
                        "description": "Id of subnet address belongs to",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "deleteAddressInSubnet",
                "summary": "Deletes address by IP in specific subnet",
                "description": "Deletes address by IP in specific subnet",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/search/{ip}": {
            "get": {
                "parameters": [
                    {
                        "name": "ip",
                        "in": "path",
                        "description": "IP address",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "getAddressByIP",
                "summary": "searches for addresses in database, returns multiple if found",
                "description": "searches for addresses in database, returns multiple if found",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/search_hostname/{hostname}": {
            "get": {
                "parameters": [
                    {
                        "name": "hostname",
                        "in": "path",
                        "description": "Address hostname",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "getAddressByHostname",
                "summary": "searches for addresses in database by hostname, returns multiple if found",
                "description": "searches for addresses in database by hostname, returns multiple if found",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/first_free/{subnetId}": {
            "get": {
                "parameters": [
                    {
                        "name": "subnetId",
                        "in": "path",
                        "description": "Id of subnet address belongs to",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "getAddressFirstFree",
                "summary": "Returns first available address",
                "description": "Returns first available address",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "name": "subnetId",
                        "in": "path",
                        "description": "Id of subnet address belongs to",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "createAddressFirstAvailable",
                "summary": "Creates new address in subnets – first available",
                "description": "Creates new address in subnets – first available",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/custom_fields": {
            "get": {
                "parameters": [],
                "tags": [
                    "addresses"
                ],
                "operationId": "getAddressCustomFields",
                "summary": "Returns custom fields",
                "description": "Returns custom fields",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/tags": {
            "get": {
                "parameters": [],
                "tags": [
                    "addresses"
                ],
                "operationId": "getAddressTags",
                "summary": "Returns all tags",
                "description": "Returns all tags",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/tags/{id}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id of tag",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "getSpecificTag",
                "summary": "Returns specific tag",
                "description": "Returns specific tag",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses/tags/{id}/addresses": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id of tag",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "getAddressesByTag",
                "summary": "Returns addresses for specific tag",
                "description": "Returns addresses for specific tag",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/addresses": {
            "post": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "addresses"
                ],
                "operationId": "createAddress",
                "summary": "Creates new address",
                "description": "Creates new address",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vlan": {
            "get": {
                "parameters": [],
                "tags": [
                    "vlans"
                ],
                "operationId": "getVlans",
                "summary": "Returns all Vlans",
                "description": "Returns all Vlans",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "vlans"
                ],
                "operationId": "createVlan",
                "summary": "Creates new VLAN",
                "description": "Creates new VLAN",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "patch": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "vlans"
                ],
                "operationId": "updateVlan",
                "summary": "Updates VLAN",
                "description": "Updates VLAN",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vlan/{id}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Vlan identifier, identifies which vlan to work on.",
                        "required": true,
                        "type": "string"
                    }
                ],
                "tags": [
                    "vlans"
                ],
                "operationId": "getVlan",
                "summary": "Returns specific vlan",
                "description": "Returns specific vlan",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "patch": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Vlan identifier, identifies which vlan to work on.",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "type": "object"
                    }
                ],
                "tags": [
                    "vlans"
                ],
                "operationId": "deleteVlan",
                "summary": "Deletes VLAN",
                "description": "Deletes VLAN",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vlan/{id}/subnets": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Vlan identifier, identifies which vlan to work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "vlans"
                ],
                "operationId": "getVlanSubnets",
                "summary": "Returns all subnets attached to vlan",
                "description": "Returns all subnets attached to vlan",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vlan/{id}/subnets/{sectionId}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "type": "string",
                        "description": "Vlan identifier, identifies which vlan to work on.",
                        "required": true
                    },
                    {
                        "name": "sectionId",
                        "in": "path",
                        "type": "string",
                        "description": "Section identifier",
                        "required": true
                    }
                ],
                "tags": [
                    "vlans"
                ],
                "operationId": "getVlanSubnetsBySection",
                "summary": "Returns all subnets attached to vlan in specific section",
                "description": "Returns all subnets attached to vlan in specific section",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vlan/{id}/custom_fields": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Vlan identifier, identifies which vlan to work on.",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "vlans"
                ],
                "operationId": "getVlanCustomFields",
                "summary": "Returns custom VLAN fields",
                "description": "Returns custom VLAN fields",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vlan/{id}/search/{number}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Vlan identifier, identifies which vlan to work on.",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "number",
                        "in": "path",
                        "description": "Vlan number",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "vlans"
                ],
                "operationId": "getVlanByNumber",
                "summary": "Searches for VLAN",
                "description": "Searches for VLAN",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/l2domains": {
            "get": {
                "parameters": [],
                "tags": [
                    "l2domains"
                ],
                "operationId": "getL2Domains",
                "summary": "Returns all L2 domains",
                "description": "Returns all L2 domains",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "l2domains"
                ],
                "operationId": "createL2Domain",
                "summary": "Creates new L2 domain",
                "description": "Creates new L2 domain",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "patch": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "l2domains"
                ],
                "operationId": "updateL2Domain",
                "summary": "Updates L2 domain",
                "description": "Updates L2 domain",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/l2domains/{id}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "L2 domain identifier",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "l2domains"
                ],
                "operationId": "getL2Domain",
                "summary": "Returns specific L2 domain",
                "description": "Returns specific L2 domain",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/l2domains/{id}/vlans": {
            "get": {
                "parameters": [
                    {
                        "in": "path",
                        "description": "L2 domain identifier",
                        "name": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "l2domains"
                ],
                "operationId": "getL2DomainVlans",
                "summary": "Returns all VLANs within L2 domain",
                "description": "Returns all VLANs within L2 domain",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/l2domains/custom_fields": {
            "get": {
                "parameters": [],
                "tags": [
                    "l2domains"
                ],
                "operationId": "getL2DomainCustomFields",
                "summary": "Returns all custom fields",
                "description": "Returns all custom fields",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/l2domains{id}": {
            "delete": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "L2 domain identifier",
                        "schema": {
                            "type": "string"
                        },
                        "type": "string"
                    }
                ],
                "tags": [
                    "l2domains"
                ],
                "operationId": "deleteL2Domain",
                "summary": "Deletes L2 domain",
                "description": "Deletes L2 domain",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vrf": {
            "get": {
                "parameters": [],
                "tags": [
                    "vrfs"
                ],
                "operationId": "getVRFs",
                "summary": "Returns all VRFs",
                "description": "Returns all VRFs",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "vrfs"
                ],
                "operationId": "createVRF",
                "summary": "Creates new VRF",
                "description": "Creates new VRF",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "patch": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "vrfs"
                ],
                "operationId": "updateVRF",
                "summary": "Updates VRF",
                "description": "Updates VRF",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vrf/{id}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "VRF identifier",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "vrfs"
                ],
                "operationId": "getVRF",
                "summary": "Returns specific VRF",
                "description": "Returns specific VRF",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "delete": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "VRF identifier",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "vrfs"
                ],
                "operationId": "deleteVRF",
                "summary": "Deletes VRF",
                "description": "Deletes VRF",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vrf/{id}/subnets": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "VRF identifier",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "vrfs"
                ],
                "operationId": "getVRFSubnets",
                "summary": "Returns all subnets within VRF",
                "description": "Returns all subnets within VRF",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/vrf/custom_fields": {
            "get": {
                "parameters": [],
                "tags": [
                    "vrfs"
                ],
                "operationId": "getVRFCustomFields",
                "summary": "Returns all custom fields",
                "description": "Returns all custom fields",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/devices": {
            "get": {
                "parameters": [],
                "tags": [
                    "devices"
                ],
                "operationId": "getDevices",
                "summary": "Returns all devices",
                "description": "Returns all devices",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "devices"
                ],
                "operationId": "createDevice",
                "summary": "Creates new device",
                "description": "Creates new device",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "patch": {
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "devices"
                ],
                "operationId": "updateDevice",
                "summary": "Updates device",
                "description": "Updates device",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/devices/{id}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Device identifier",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "devices"
                ],
                "operationId": "getDevice",
                "summary": "Returns specific device",
                "description": "Returns specific device",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "delete": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Device identifier",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "devices"
                ],
                "operationId": "deleteDevice",
                "summary": "Deletes device",
                "description": "Deletes device",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/devices/{id}/subnets": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Device identifier",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "devices"
                ],
                "operationId": "getDeviceSubnets",
                "summary": "Returns all subnets within device",
                "description": "Returns all subnets within device",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/devices/{id}/addresses": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "Device identifier",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "devices"
                ],
                "operationId": "getDeviceAddresses",
                "summary": "Returns all addresses within device",
                "description": "Returns all addresses within device",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/devices/search/{search_string}": {
            "get": {
                "parameters": [
                    {
                        "name": "search_string",
                        "in": "path",
                        "description": "search string",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "devices"
                ],
                "operationId": "getDevicesBySearchString",
                "summary": "Searches for devices",
                "description": "Searches for devices with {search_string} in any belonging field",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/{subcontroller}": {
            "get": {
                "parameters": [
                    {
                        "name": "subcontroller",
                        "in": "path",
                        "description": "subcontroller (tags, devices, device_types, vlans, vrfs, nameservers, scanagents, locations, nat, racks)",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetSubcontrollers",
                "summary": "Returns all subcontroller objects",
                "description": "Returns all subcontroller objects",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "in": "path",
                        "description": "subcontroller (tags, devices, device_types, vlans, vrfs, nameservers, scanagents, locations, nat, racks)",
                        "name": "subcontroller",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "type": "object"
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsCreateSubcontrollerObject",
                "summary": "Creates new subcontroller object",
                "description": "Creates new subcontroller object",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/{subcontroller}/{identifier}": {
            "get": {
                "parameters": [
                    {
                        "name": "subcontroller",
                        "in": "path",
                        "description": "subcontroller (tags, devices, device_types, vlans, vrfs, nameservers, scanagents, locations, nat, racks)",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "identifier",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetSubcontroller",
                "summary": "Returns specific subcontroller object",
                "description": "Returns specific subcontroller object",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "patch": {
                "parameters": [
                    {
                        "name": "subcontroller",
                        "in": "path",
                        "description": "subcontroller (tags, devices, device_types, vlans, vrfs, nameservers, scanagents, locations, nat, racks)",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "identifier",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsUpdateSubcontrollerObject",
                "summary": "Updates subcontroller object",
                "description": "Updates subcontroller object",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "delete": {
                "parameters": [
                    {
                        "name": "subcontroller",
                        "in": "path",
                        "description": "subcontroller (tags, devices, device_types, vlans, vrfs, nameservers, scanagents, locations, nat, racks)",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "identifier",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsDeleteSubcontrollerObject",
                "summary": "Deletes subcontroller object",
                "description": "Deletes subcontroller object",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/device_types/{id}": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetDeviceTypeDetails",
                "summary": "Returns device type details",
                "description": "Returns device type details",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/device_types/{id}/devices": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetDevicesByDeviceType",
                "summary": "Returns all devices with devicetype",
                "description": "Returns all devices with devicetype",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/vlans/{id}/subnets": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetSubnetsByVLAN",
                "summary": "Returns all subnets that belong to VLAN",
                "description": "Returns all subnets that belong to VLAN",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/vrfs/{id}/subnets": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetSubnetsByVRF",
                "summary": "Returns all subnets that belong to VRF",
                "description": "Returns all subnets that belong to VRF",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/locations/{id}/subnets": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "description": "id",
                        "in": "path",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetSubnetsByLocation",
                "summary": "Returns all subnets that belong to Location",
                "description": "Returns all subnets that belong to Location",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/locations/{id}/devices": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetDevicesByLocation",
                "summary": "Returns all devices that belong to Location",
                "description": "Returns all devices that belong to Location",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/locations/{id}/racks": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetRacksByLocation",
                "summary": "Returns all racks that belong to Location",
                "description": "Returns all racks that belong to Location",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/racks/{id}/devices": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "toolsGetDevicesByRack",
                "summary": "Returns all devices that belong to rack",
                "description": "Returns all devices that belong to rack",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/nat/{id}/objects": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "getNATDetailsAttachedObjects",
                "summary": "Returns nat details and array of all attached objects",
                "description": "Returns nat details and array of all attached objects",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/tools/nat/{id}/objects_full": {
            "get": {
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "id",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "tools"
                ],
                "operationId": "getNATDetailsAllObjects",
                "summary": "Returns nat details and full array of all attached objects",
                "description": "Returns nat details and full array of all attached objects",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/prefix/{customer_type}": {
            "get": {
                "parameters": [
                    {
                        "name": "customer_type",
                        "in": "path",
                        "description": "customer_type",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "prefix"
                ],
                "operationId": "prefixGetSubnetsUsedToDeliverSubnets",
                "summary": "Returns all subnets used to deliver new subnets",
                "description": "Returns all subnets used to deliver new subnets",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/prefix/{customer_type}/{ip_version}": {
            "get": {
                "parameters": [
                    {
                        "name": "customer_type",
                        "in": "path",
                        "description": "customer_type",
                        "type": "string"
                    },
                    {
                        "name": "ip_version",
                        "in": "path",
                        "description": "ip_version",
                        "type": "string"
                    }
                ],
                "tags": [
                    "prefix"
                ],
                "operationId": "prefixGetSubnetsUsedToDeliverSubnetsVersion",
                "summary": "Returns all subnets used to deliver new subnets for specific IP version",
                "description": "Returns all subnets used to deliver new subnets for specific IP version * ip_version can be IPv4, IPv6, v4, v6",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/prefix/{customer_type}/address": {
            "get": {
                "parameters": [
                    {
                        "name": "customer_type",
                        "in": "path",
                        "description": "customer_type",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "prefix"
                ],
                "operationId": "prefixGetSubnetsUsedToDeliverNewAddresses",
                "summary": "Returns all subnets used to deliver new addresses",
                "description": "Returns all subnets used to deliver new addresses",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/prefix/{customer_type}/address/{ip_version}": {
            "get": {
                "parameters": [
                    {
                        "name": "customer_type",
                        "in": "path",
                        "description": "customer_type",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "ip_version",
                        "in": "path",
                        "description": "ip_version",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "prefix"
                ],
                "operationId": "prefixGetSubnetsUsedToDeliverNewAddressesVersion",
                "summary": "Returns all subnets used to deliver new addresses for specific IP version",
                "description": "Returns all subnets used to deliver new addresses for specific IP version",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/prefix/{customer_type}/{ip_version}/{mask}": {
            "get": {
                "parameters": [
                    {
                        "name": "customer_type",
                        "in": "path",
                        "description": "customer_type",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "ip_version",
                        "in": "path",
                        "description": "ip_version",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "mask",
                        "description": "mask",
                        "in": "path",
                        "type": "string",
                        "required": true
                    }
                ],
                "tags": [
                    "prefix"
                ],
                "operationId": "prefixGetFirstAvailableSubnet",
                "summary": "Returns first available subnet for ip version and requested mask",
                "description": "Returns first available subnet for ip version and requested mask",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "name": "customer_type",
                        "description": "customer_type",
                        "in": "path",
                        "type": "string"
                    },
                    {
                        "name": "ip_version",
                        "description": "ip_version",
                        "in": "path",
                        "type": "string"
                    },
                    {
                        "name": "mask",
                        "description": "mask",
                        "in": "path",
                        "type": "string"
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "type": "object"
                    }
                ],
                "tags": [
                    "prefix"
                ],
                "operationId": "prefixPostFirstAvailableSubnet",
                "summary": "Creates first available subnet for ip version and requested mask",
                "description": "Creates first available subnet for ip version and requested mask",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        },
        "/prefix/{customer_type}/{ip_version}/address": {
            "get": {
                "parameters": [
                    {
                        "name": "customer_type",
                        "description": "customer_type",
                        "type": "string",
                        "in": "path",
                        "required": true
                    },
                    {
                        "name": "ip_version",
                        "description": "ip_version",
                        "type": "string",
                        "in": "path",
                        "required": true
                    }
                ],
                "tags": [
                    "prefix"
                ],
                "operationId": "prefixGetFirstAvailableAddress",
                "summary": "Returns first available address for ip version",
                "description": "Returns first available address for ip version",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            },
            "post": {
                "parameters": [
                    {
                        "name": "customer_type",
                        "description": "customer_type",
                        "in": "path",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "ip_version",
                        "description": "ip_version",
                        "in": "path",
                        "type": "string",
                        "required": true
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "description": "body",
                        "schema": {
                            "type": "string"
                        },
                        "type": "object"
                    }
                ],
                "tags": [
                    "prefix"
                ],
                "operationId": "prefixPostFirstAvailableAddress",
                "summary": "Creates first available address for ip version",
                "description": "Creates first available address for ip version",
                "responses": {
                    "200": {
                        "schema": {
                            "type": "string"
                        },
                        "description": "successful operation"
                    },
                    "400": {
                        "description": "failed operation"
                    }
                }
            }
        }
    },
    "definitions": {},
    "externalDocs": {
        "description": "Find out more about Swagger",
        "url": "http://swagger.io"
    }
}