{
    "swagger": "2.0",
    "info": {
        "description": "Network Edge (NE) is a platform that allows customers to deploy and run virtual network services and appliances such as routers, load balancers, and firewalls on a generic device instead of additional dedicated hardware, CapEx and colo space. The Network Edge REST APIs allow you to interact with the Equinix Platform to programmatically create a virtual device and add services. Details on specific use cases can be found in the documentation available on the developer portal.",
        "version": "1.0",
        "title": "Network Edge APIs",
        "termsOfService": "https://developer.equinix.com/agreement",
        "contact": {
            "name": "Equinix API Support",
            "email": "api-support@equinix.com"
        }
    },
    "host": "api.equinix.com",
    "schemes": [
        "https"
    ],
    "paths": {
        "/ne/v1/deviceTypes": {
            "get": {
                "tags": [
                    "Setup"
                ],
                "summary": "Get Device Types",
                "description": "Returns device types (e.g., routers and firewalls) that can be launched on the NE platform.",
                "operationId": "getVirtualDevicesUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "deviceTypeCode",
                        "in": "query",
                        "description": "Device type code (e.g., CSR1000V)",
                        "type": "string",
                        "required": false
                    },
                    {
                        "name": "category",
                        "in": "query",
                        "description": "Category. One of FIREWALL, ROUTER or SDWAN",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Specifies where to start a page. It is the starting point of the collection returned from the server.",
                        "required": false,
                        "type": "string",
                        "default": 0,
                        "format": "int32"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Specifies the page size.",
                        "required": false,
                        "type": "string",
                        "default": 20,
                        "format": "int32"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/PageResponseDto-VirtualDeviceType"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/metros": {
            "get": {
                "tags": [
                    "Setup"
                ],
                "summary": "Get Available Metros",
                "description": "Gets the available list of metros where NE platform is available. Please note that an account must be created for each country where virtual devices are being purchased.",
                "operationId": "getMetrosUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "region",
                        "in": "query",
                        "description": "Name of the region for which you want metros (e.g., AMER)",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Specifies where to start a page. It is the starting point of the collection returned from the server.",
                        "required": false,
                        "type": "string",
                        "default": 0,
                        "format": "int32"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Specifies the page size.",
                        "required": false,
                        "type": "string",
                        "default": 20,
                        "format": "int32"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/PageResponseDto-MetroResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/accounts/{metro}": {
            "get": {
                "tags": [
                    "Setup"
                ],
                "summary": "Get Accounts {metro}",
                "description": "Gets accounts by metro. You must have an account in a metro to create a virtual device there. To create an account go to \"accountCreateUrl\".",
                "operationId": "getAccountsWithStatusUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "metro",
                        "in": "path",
                        "description": "Metro region for which you want to check your account status",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "Unique ID of an account",
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully retrieved the account details",
                        "schema": {
                            "$ref": "#/definitions/PageResponseDto-MetroAccountResponse"
                        }
                    },
                    "401": {
                        "description": "You are not authorized to view the resource"
                    },
                    "403": {
                        "description": "Accessing the resource you were trying to reach is forbidden"
                    },
                    "404": {
                        "description": "Resource not found"
                    },
                    "500": {
                        "description": "500 message"
                    }
                }
            }
        },
        "/ne/v1/agreements/accounts": {
            "get": {
                "tags": [
                    "Setup"
                ],
                "summary": "Get Agreement Status.",
                "description": "Call this API to find out the status of your agreement, whether it is valid or not, or to just read the agreement terms.",
                "operationId": "getAgreementStatusUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "account_number",
                        "in": "query",
                        "description": "account_number",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully retrieved Status",
                        "schema": {
                            "$ref": "#/definitions/AgreementStatusResponse"
                        }
                    },
                    "404": {
                        "description": "Resource not found"
                    },
                    "500": {
                        "description": "500 message"
                    }
                }
            },
            "post": {
                "tags": [
                    "Setup"
                ],
                "summary": "Create an agreement",
                "description": "Call this API to post an agreement. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
                "operationId": "sendAgreementUsingPOST_1",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "body",
                        "name": "agreementAcceptRequest",
                        "description": "agreementAcceptRequest",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/AgreementAcceptRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully posted terms ",
                        "schema": {
                            "$ref": "#/definitions/AgreementAcceptResponse"
                        }
                    },
                    "404": {
                        "description": "Resource not found"
                    }
                }
            }
        },
        "/ne/v1/agreements/vendors": {
            "get": {
                "tags": [
                    "Setup"
                ],
                "summary": "Get Vendor Terms",
                "description": "Returns a link to your vendor's terms of agreement. The term \"vendor\" here refers to the vendor of the virtual device on the Network Edge platform.",
                "operationId": "getVendorTermsUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "vendorPackage",
                        "in": "query",
                        "description": "vendorPackage",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "licenseType",
                        "in": "query",
                        "description": "licenseType",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully retrieved vendor terms",
                        "schema": {
                            "$ref": "#/definitions/OrderTermsResponse"
                        }
                    },
                    "404": {
                        "description": "Resource not found"
                    },
                    "500": {
                        "description": "500 message"
                    }
                }
            }
        },
        "/ne/v1/agreements/orders": {
            "get": {
                "tags": [
                    "Setup"
                ],
                "summary": "Get Order Terms",
                "description": "This API retrieves the Network Edge Order Terms and Conditions, which the user needs to read and understand before proceeding to place an order",
                "operationId": "getOrderTermsUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully retrieved Status",
                        "schema": {
                            "$ref": "#/definitions/OrderTermsResponse"
                        }
                    },
                    "404": {
                        "description": "Resource not found"
                    },
                    "500": {
                        "description": "500 message"
                    }
                }
            }
        },
        "/ne/v1/prices": {
            "get": {
                "tags": [
                    "Setup"
                ],
                "summary": "Get the Price",
                "description": "Returns the price of a virtual device and license based on account number and other fields. Please note that the listed price does not include the price of any optional features added to the device, some of which are charged.",
                "operationId": "retrievePriceUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "accountNumber",
                        "in": "query",
                        "description": "Account number",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "metro",
                        "in": "query",
                        "description": "Metro",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "vendorPackage",
                        "in": "query",
                        "description": "Vendor package",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "licenseType",
                        "in": "query",
                        "description": "License type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "softwarePackage",
                        "in": "query",
                        "description": "Software package",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "throughput",
                        "in": "query",
                        "description": "Throughput",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "throughputUnit",
                        "in": "query",
                        "description": "Throughput unit",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "termLength",
                        "in": "query",
                        "description": "Term length (in months)",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "additionalBandwidth",
                        "in": "query",
                        "description": "Additional bandwidth (in Mbps)",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "virtualDeviceUuid",
                        "in": "query",
                        "description": "Virtual device unique Id (only required if existing device is being modified)",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "deviceManagementType",
                        "in": "query",
                        "description": "The device management type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "core",
                        "in": "query",
                        "description": "The number of cores",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "secondaryAccountNumber",
                        "in": "query",
                        "description": "The secondary account number (for HA)",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "secondaryMetro",
                        "in": "query",
                        "description": "Secondary metro (for HA)",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "secondaryAdditionalBandwidth",
                        "in": "query",
                        "description": "Secondary additional bandwidth (in Mbps for HA)",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "Account unique ID",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "orderingContact",
                        "in": "query",
                        "description": "Reseller customer username",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/CompositePriceResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/orderSummaries": {
            "get": {
                "tags": [
                    "Setup"
                ],
                "summary": "Get Order Summary",
                "description": "Gets the order summary as a printable pdf file. This API helps customers who have to go through a PO process at their end to make a purchase and need a formal quote",
                "operationId": "getOrderSummaryUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "accountNumber",
                        "in": "query",
                        "description": "Account number",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "metro",
                        "in": "query",
                        "description": "Metro",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "vendorPackage",
                        "in": "query",
                        "description": "Vendor package",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "licenseType",
                        "in": "query",
                        "description": "License type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "softwarePackage",
                        "in": "query",
                        "description": "Software package",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "throughput",
                        "in": "query",
                        "description": "Throughput",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "throughputUnit",
                        "in": "query",
                        "description": "Throughput unit",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "termLength",
                        "in": "query",
                        "description": "Term length (in months)",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "additionalBandwidth",
                        "in": "query",
                        "description": "Additional bandwidth (in Mbps)",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "virtualDeviceUuid",
                        "in": "query",
                        "description": "Virtual device unique Id (only required if existing device is being modified)",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "deviceManagementType",
                        "in": "query",
                        "description": "The device management type",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "core",
                        "in": "query",
                        "description": "The number of cores",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "secondaryAccountNumber",
                        "in": "query",
                        "description": "Secondary account number (for HA)",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "secondaryMetro",
                        "in": "query",
                        "description": "Secondary metro (for HA)",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "secondaryAdditionalBandwidth",
                        "in": "query",
                        "description": "Secondary additional bandwidth (in Mbps for HA)",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "Account unique ID",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "orderingContact",
                        "in": "query",
                        "description": "Reseller customer username",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/OrderSummaryResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/dnsLookup": {
            "post": {
                "tags": [
                    "Setup"
                ],
                "summary": "Post DNS Lookup",
                "description": "Call this method to lookup IP addresses associated with domains of a metro or a virtual device.",
                "operationId": "sendDnsLookupPOST_1",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "body",
                        "name": "dnsLookupRequest",
                        "description": "dnsLookupRequest",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/DNSLookupRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully posted terms ",
                        "schema": {
                            "$ref": "#/definitions/DNSLookupResponse"
                        }
                    },
                    "404": {
                        "description": "Resource not found"
                    }
                }
            }
        },
        "/ne/v1/publicKeys": {
            "get": {
                "tags": [
                    "Setup"
                ],
                "summary": "Get Public Keys",
                "description": "This method returns the SSH public keys associated with this organization. If you are a reseller, please pass the account number of you customer to get the public keys.",
                "operationId": "getPublicKeysUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "This field is for resellers. Please pass the accountUcmId of your customer to get the public keys.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/PageResponse-PublicKeys"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Setup"
                ],
                "summary": "Create Public Key",
                "description": "You can use this API to post an SSH public key. If you are a reseller, pass the account number of your customer to post a key-name and key-value pair.",
                "operationId": "postPublicKeyUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "body",
                        "name": "publicKeyRequest",
                        "description": "keyName and keyValue pair",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/PublicKeyRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/devices/licenseFiles": {
            "post": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Post License File",
                "description": "In case you want to bring your own license (BYOL), you can use this API to post a license file before creating a virtual device.",
                "operationId": "uploadLicenseUsingPOST",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "file",
                        "in": "formData",
                        "description": "file",
                        "required": true,
                        "type": "file"
                    },
                    {
                        "name": "metroCode",
                        "in": "query",
                        "description": "metroCode",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "deviceTypeCode",
                        "in": "query",
                        "description": "deviceTypeCode",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "licenseType",
                        "in": "query",
                        "description": "licenseType",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/LicenseUploadResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/devices/licenseFiles/{uuid}": {
            "post": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Post License {uuid}",
                "description": "In case you want to bring your own license and have already created a virtual device, use this API to post a license file. You can also use this API to renew a license that is about to expire.",
                "operationId": "uploadLicenseForDeviceUsingPOST",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique Id of a virtual device",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "file",
                        "in": "formData",
                        "description": "License file",
                        "required": true,
                        "type": "file"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/LicenseUploadResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/devices/{uuid}/licenseTokens": {
            "put": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Update License Token/ID/Code",
                "description": "If you want to bring your own license (BYOL), you can use this API to post or update a license token after a virtual device is created.",
                "operationId": "updateLicenseUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique Id of a virtual device",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "License token",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/LicenseUpdateRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/LicenseUploadResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/devices": {
            "post": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Create Virtual Device",
                "description": "Creates a virtual device. You must provide your own account number (check Get account status API). This API can be used for <br />1. Create a Virtual Device  <br />2. Create a Virtual Device Draft by sending draft = true <br />3. Create a Virtual Device From Draft",
                "operationId": "createVirtualDeviceUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "body",
                        "name": "virtualDevice",
                        "description": "Create a virtual device (e.g., a router or a firewall)",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/VirtualDeviceRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    },
                    {
                        "name": "draft",
                        "in": "query",
                        "description": "draft",
                        "required": false,
                        "type": "boolean",
                        "default": false
                    },
                    {
                        "name": "draftUuid",
                        "in": "query",
                        "description": "draftUuid",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Request accepted. To check the status of your device, please call Get virtual device {uuid} API.",
                        "schema": {
                            "$ref": "#/definitions/VirtualDeviceCreateResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "get": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Get Virtual Devices",
                "description": "Returns all the available virtual devices, i.e. routers and routers, on the Network Edge platform.",
                "operationId": "getVirtualDevicesUsingGET_1",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Specifies where to start a page. It is the starting point of the collection returned from the server.",
                        "required": false,
                        "type": "string",
                        "default": 0,
                        "format": "int32"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Specifies the page size.",
                        "required": false,
                        "type": "string",
                        "default": 20,
                        "format": "int32"
                    },
                    {
                        "name": "metroCode",
                        "in": "query",
                        "description": "metroCode",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "status",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "showOnlySubCustomerDevices",
                        "in": "query",
                        "description": "Resellers may mark this Yes to see sub customer devices.",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "Unique ID of the account.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/VirtualDevicePageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/devices/{uuid}": {
            "get": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Get Virtual Device {uuid}",
                "description": "Returns the virtual device details of an existing device on the Network Edge platform. You must provide the unique ID of the existing device as a path parameter.",
                "operationId": "getVirtualDeviceUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "schema": {
                            "$ref": "#/definitions/VirtualDeviceDetailsResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "patch": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Update Virtual Device",
                "description": "This API can be used to update certain fields of a virtual device. Authorization checks are performed on the API users making this request.",
                "operationId": "updateVirtualDeviceUsingPATCH_1",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "The unique Id of the device.",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "virtualDeviceUpdateRequestDto",
                        "schema": {
                            "$ref": "#/definitions/VirtualDeviceInternalPatchRequestDto"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/VirtualDeviceCreateResponseDto"
                        }
                    },
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/VirtualDeviceCreateResponseDto"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Delete Virtual Devices",
                "description": "Delete a virtual device by its unique Id. For some device types (e.g. for Palo Alto devices), you also need to provide a deactivation key as a body parameter. For HA devices, the deleteRedundantDevice field must be marked True to delete both devices.",
                "operationId": "deleteVRouterUsingDELETE",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique ID of the virtual device.",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "deletionInfo",
                        "description": "deletionInfo",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/VirtualDeviceDeleteRequest"
                        }
                    },
                    {
                        "name": "deleteRedundantDevice",
                        "in": "query",
                        "required": false,
                        "type": "boolean",
                        "default": false,
                        "description": "Optional parameter in case you have a secondary device for high availability (HA). As both primary and secondary devices are deleted simultaneously, this field must be marked True for Equinix to successfully delete a device that has a secondary device."
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "The deletion is in progress. Call Get virtual device {uuid} API to check the status of your deletion."
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "404": {
                        "description": "Resource not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Update Device Draft",
                "description": "This API is for updating a virtual device draft <br/>and does not support device update as of now.",
                "operationId": "updateVirtualDeviceUsingPUT",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "draft",
                        "in": "query",
                        "description": "draft",
                        "required": true,
                        "type": "boolean",
                        "default": true
                    },
                    {
                        "in": "body",
                        "name": "virtualDevice",
                        "description": "Update virtual device details",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/VirtualDeviceRequest"
                        }
                    },
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique Id of a Virtual Device",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/aclTemplates": {
            "post": {
                "tags": [
                    "ACL Template"
                ],
                "summary": "Create ACL Template",
                "description": "This API is used to create a device ACL template. The response is the unique ID of the ACL template.",
                "operationId": "createDeviceACLTemplateUsingPost",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "body",
                        "name": "aclTemplateRequest",
                        "description": "Create a device ACL template.",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/DeviceACLTemplateRequest"
                        }
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "A reseller creating a device ACL template for a customer can pass the accountUcmId of the customer.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Device ACL template created. The response is the unique ID of the device ACL template.",
                        "schema": {
                            "$ref": "#/definitions/VirtualDeviceCreateResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "get": {
                "tags": [
                    "ACL Template"
                ],
                "summary": "Get ACL Templates",
                "description": "Returns all the device ACL templates. The ACL templates list the networks that require access to the device.",
                "operationId": "getDeviceACLTemplateUsingGET_1",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "query",
                        "name": "offset",
                        "description": "Specifies where to start a page. It is the starting point of the collection returned from the server.",
                        "required": false,
                        "type": "string",
                        "default": 0,
                        "format": "int32"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Specifies the page size.",
                        "required": false,
                        "type": "string",
                        "default": 20,
                        "format": "int32"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "Unique ID of the account. A reseller querying for the device ACLs of a customer should input the accountUcmId of the customer.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/DeviceACLPageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/aclTemplates/{uuid}": {
            "get": {
                "tags": [
                    "ACL Template"
                ],
                "summary": "Get ACL Template {uuid}",
                "description": "Returns the ACL Template details of any existing template. You must provide the unique ID of an existing template as a path parameter.",
                "operationId": "getDeviceTemplatebyUuid",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique Id of a device ACL template",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "A reseller creating a device ACL template for a customer can pass the accountUcmId of the customer.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "schema": {
                            "$ref": "#/definitions/DeviceACLDetailsResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "ACL Template"
                ],
                "summary": "Delete ACL template",
                "description": "Deletes a device ACL template. You must provide the unique Id of the ACL template.",
                "operationId": "deletedeviceACLUsingDELETE",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique ID of a device ACL template",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "A reseller deleting a device ACL template for a customer must pass the accountUcmId of the customer.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "The deletion is in progress."
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "404": {
                        "description": "Resource not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "ACL Template"
                ],
                "summary": "Update ACL Template",
                "description": "Updates a device ACL template. You must pass the unique Id of the ACL template as a path parameter.",
                "operationId": "updateDeviceACLTemplateUsingPUT",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique ID of a device ACL template",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "A reseller updating a device ACL template for a customer must pass the accountUcmId of the customer.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "aclTemplateRequest",
                        "description": "Create a device ACL template.",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/DeviceACLTemplateRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/devices/{uuid}/additionalBandwidths": {
            "put": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Update Additional Bandwidth",
                "description": "You can use this method to change or add additional bandwidth to a virtual device.",
                "operationId": "updateAdditionalBandwidth",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "The unique Id of a virtual device",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "Additional Bandwidth",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/AdditionalBandwidthRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/devices/{uuid}/interfaces": {
            "get": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Get Device Interfaces",
                "description": "Returns the interface details by the unique Id of an existing virtual device on the Network Edge platform.",
                "operationId": "getVirtualDeviceInterfacesUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/InterfaceBasicInfoResponse"
                            }
                        }
                    },
                    "404": {
                        "description": "Resource Not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/devices/{uuid}/ping": {
            "get": {
                "tags": [
                    "Virtual Device & Licensing"
                ],
                "summary": "Ping Virtual Device",
                "description": "It pings a virtual device to ensure it's reachable. You must pass the unique Id of the device as the path parameter.",
                "operationId": "pingDeviceUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Virtual Device unique Id",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/links": {
            "post": {
                "tags": [
                    "Device Link"
                ],
                "summary": "Create Device Link",
                "description": "Call this API to create a device link between virtual devices. You can include any devices that are registered and provisioned.",
                "operationId": "createLinkGroupUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "body",
                        "name": "deviceLinkGroup",
                        "description": "New Device Link Group",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/DeviceLinkRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Unique ID of the device link group.",
                        "schema": {
                            "$ref": "#/definitions/DeviceLinkGroupResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "get": {
                "tags": [
                    "Device Link"
                ],
                "description": "This method returns device links. You can link two or more devices that are registered and provisioned.",
                "summary": "Get Device Links.",
                "operationId": "getLinkGroupsUsingGET_1",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "metro",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "description": "Metro Code"
                    },
                    {
                        "name": "virtualDeviceUuid",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "description": "Unique Id of a virtual device."
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "description": "Unique Id of the account. A reseller querying for a customer's link groups can pass the accountUcmId of the customer's account. To get the accountUcmId of your customer's account, please check the Equinix account creation portal (ECP) or call Get account API."
                    },
                    {
                        "name": "pageNumber",
                        "in": "query",
                        "description": "Page number. Default value=1",
                        "required": false,
                        "type": "integer",
                        "default": 0,
                        "format": "int32"
                    },
                    {
                        "name": "size",
                        "in": "query",
                        "description": "Results per page. Default value=100",
                        "required": false,
                        "type": "integer",
                        "default": 20,
                        "format": "int32"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/DeviceLinkGroupDto"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/links/{uuid}": {
            "get": {
                "tags": [
                    "Device Link"
                ],
                "summary": "Get Device Link {uuid}",
                "description": "This API will return a device link by its unique Id. Authorization checks are performed on the users of this API.",
                "operationId": "getLinkGroupByUUIDUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique Id of a device link group.",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/DeviceLinkGroupDto"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "patch": {
                "tags": [
                    "Device Link"
                ],
                "summary": "Update Device Link",
                "description": "Call this API to update a device link. Authorization checks are performed on the users of this API.",
                "operationId": "updateLinkGroupUsingPATCH",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique Id of a device link group.",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "deviceLinkGroup",
                        "description": "Device Link Group",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/DeviceLinkRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Request fulfilled."
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Device Link"
                ],
                "summary": "Delete Device Link",
                "description": "This method deletes a device link group. Authorization checks are performed on the users of this API.",
                "operationId": "deleteLinkGroupUsingDELETE",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "*/*"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Unique Id of a device link group.",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Request fulfilled."
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "404": {
                        "description": "Resource not found",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/l2/serviceprofiles/services": {
            "get": {
                "tags": [
                    "Layer 2 Connections & Service Profiles"
                ],
                "summary": "Get L2 Service Profiles",
                "description": "Get the list of all active and valid Layer 2 service profiles to which connections can be created.",
                "operationId": "getProfilesByMetroUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    },
                    {
                        "name": "metroCode",
                        "in": "query",
                        "description": "metroCode",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi"
                    },
                    {
                        "name": "pageNumber",
                        "in": "query",
                        "description": "page number",
                        "required": false,
                        "type": "integer",
                        "default": 0,
                        "format": "int32"
                    },
                    {
                        "name": "pageSize",
                        "in": "query",
                        "description": "total number of records",
                        "required": false,
                        "type": "integer",
                        "default": 20,
                        "format": "int32"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "schema": {
                            "$ref": "#/definitions/GetServProfServicesResp"
                        }
                    },
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponseArray"
                        }
                    },
                    "404": {
                        "description": "Record Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/l2/serviceprofiles/services/{uuid}": {
            "get": {
                "tags": [
                    "Layer 2 Connections & Service Profiles"
                ],
                "summary": "Get L2 Service Profile {uuid}",
                "description": "Get all the pertinent details for a Layer 2 service profile specified by its uuid.",
                "operationId": "getProfileByIdUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    },
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "schema": {
                            "$ref": "#/definitions/GetServProfServicesResp"
                        }
                    },
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponseArray"
                        }
                    },
                    "404": {
                        "description": "Record Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/l2/connections/validateAuthorizationKey": {
            "get": {
                "tags": [
                    "Layer 2 Connections & Service Profiles"
                ],
                "summary": "Get L2 Validate Authorization Key",
                "description": "Validates authorization/service key or account ID to connect to cloud service providers. The participant must first use the provider console to establish a connection and obtain a valid account or service which could then be used to create connections to CSPs. Participants may validate their keys using this API.",
                "operationId": "validateAuthorizationKeyUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    },
                    {
                        "name": "authorizationKey",
                        "in": "query",
                        "description": "Could be AWS Account ID or Azure Service Key or Google Pairing Key or Oracle connection Id or any other authorization key",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "metroCode",
                        "in": "query",
                        "description": "metroCode",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "profileId",
                        "in": "query",
                        "description": "profileId",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "region",
                        "in": "query",
                        "description": "region",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "Content-Type",
                        "in": "header",
                        "description": "Content-Type",
                        "required": false,
                        "type": "string",
                        "default": "application/json"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "schema": {
                            "$ref": "#/definitions/GetValidateAuthKeyRes"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponseArray"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/l2/connections": {
            "post": {
                "tags": [
                    "Layer 2 Connections & Service Profiles"
                ],
                "summary": "Create L2 Connection",
                "description": "Create a new Layer 2 connection on a virtual device to a cloud service provider, another ECX participant or to your own assets in another metro.",
                "operationId": "createConnectionUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/PostConnectionRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/PostConnectionResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponseArray"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/l2/connections/{uuid}": {
            "patch": {
                "tags": [
                    "Layer 2 Connections & Service Profiles"
                ],
                "summary": "Update Connection {uuid}",
                "description": "Update (or approve) connection to complete the provisioning or to perform any updates to the Layer 2 connection. It is typically used to accept a hosted connection.",
                "operationId": "performUserActionUsingPATCH",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    },
                    {
                        "name": "action",
                        "in": "query",
                        "description": "action",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "connId",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/PatchRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/DeleteConnectionResponse"
                        }
                    },
                    "400": {
                        "description": "Bad request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponseArray"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "get": {
                "tags": [
                    "Layer 2 Connections & Service Profiles"
                ],
                "summary": "Get L2 Connection",
                "description": "Get connection details including its status, allocated bandwidth, VLAN tag, the service profile (or cloud provider) the connection has been created to etc.",
                "operationId": "getConnectionByUuidUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    },
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "Connection UUID",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/GETConnectionByUuidResponse"
                        }
                    },
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponseArray"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal server error",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Layer 2 Connections & Service Profiles"
                ],
                "summary": "Delete Connection {uuid}",
                "description": "Deletes a virtual connection specified by its unique Id. Once a connection has been successfully deleted, billing for that connections will also be stopped.",
                "operationId": "deleteConnectionUsingDELETE",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    },
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "connId",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "schema": {
                            "$ref": "#/definitions/DeleteConnectionResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/ErrorResponseArray"
                        }
                    }
                }
            }
        },
        "/ne/v1/bgp": {
            "post": {
                "tags": [
                    "BGP"
                ],
                "summary": "Create BGP Peering",
                "description": "Creates a BGP session to establish a point-to-point connection between your virtual device and cloud service provider. To create BGP peers, you must have a virtual device that is provisioned and registered and a provisioned connection.",
                "operationId": "addBgpConfigurationUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "body",
                        "name": "request",
                        "description": "BGP configuration details",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/BgpConfigAddRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/BgpAsyncResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "get": {
                "tags": [
                    "BGP"
                ],
                "summary": "Get BGP Peering",
                "description": "Returns BGP configurations on the Network Edge platform. Authorization checks are performed on the users of this API.",
                "operationId": "getBgpConfigurationsUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "virtualDeviceUuid",
                        "in": "query",
                        "description": "Unique Id of a virtual device",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "connectionUuid",
                        "in": "query",
                        "description": "Unique Id of a connection",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Provisioning status of BGP Peering",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "Unique Id of an account. A reseller querying for a customer's devices can input the accountUcmId of the customer's account.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Specifies where to start a page. It is the starting point of the collection returned from the server.",
                        "required": false,
                        "type": "string",
                        "default": 0
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Specifies the page size.",
                        "required": false,
                        "type": "string",
                        "default": 20
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/BgpInfo"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/bgp/{uuid}": {
            "put": {
                "tags": [
                    "BGP"
                ],
                "summary": "Update BGP Peering",
                "description": "Updates an existing BGP peering configuration identified by its unique Id. Authorization checks are performed on the users of this API.",
                "operationId": "updateBgpConfigurationUsingPUT",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "BGP config",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/BgpUpdateRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/BgpAsyncResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "get": {
                "tags": [
                    "BGP"
                ],
                "summary": "Get BGP Peering {uuid}",
                "description": "Gets a BGP peering configuration by its unique Id. Authorization checks are performed on the users of this API.",
                "operationId": "getBgpConfigurationUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/BgpInfo"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/vpn": {
            "post": {
                "tags": [
                    "VPN"
                ],
                "summary": "Create VPN Configuration",
                "description": "Creates a VPN configuration. You must have a provisioned virtual device with a registered license to create a VPN.",
                "operationId": "createVpnUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "body",
                        "name": "request",
                        "description": "VPN info",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/Vpn"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created Successfully"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "get": {
                "tags": [
                    "VPN"
                ],
                "summary": "Get VPN Configurations",
                "description": "Gets all VPN configurations by user name and specified parameter(s). Authorization checks are performed on the users of this API.",
                "operationId": "getVpnsUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "statusList",
                        "in": "query",
                        "description": "One or more desired status",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "multi",
                        "enum": [
                            "PROVISIONED",
                            "PROVISIONING",
                            "PROVISIONING_RETRYING",
                            "UPDATING",
                            "PROVISIONING_UPDATE_RETRYING",
                            "DEPROVISIONED",
                            "DEPROVISIONING",
                            "DEPROVISIONING_RETRYING",
                            "PROVISIONING_FAILED",
                            "PROVISIONING_UPDATE_FAILED",
                            "DEPROVISIONING_FAILED"
                        ]
                    },
                    {
                        "name": "virtualDeviceUuid",
                        "in": "query",
                        "description": "Unique Id of a virtual device",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Specifies where to start a page. It is the starting point of the collection returned from the server.",
                        "required": false,
                        "type": "string",
                        "default": 0,
                        "format": "int32"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Specifies the page size.",
                        "required": false,
                        "type": "string",
                        "default": 20,
                        "format": "int32"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/VpnResponseDto"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/vpn/{uuid}": {
            "get": {
                "tags": [
                    "VPN"
                ],
                "summary": "Get VPN Configuration {uuid}",
                "description": "Gets a VPN configuration by its unique Id. Authorization checks are performed on the users of this API.",
                "operationId": "getVpnByUuidUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Read Successfully",
                        "schema": {
                            "$ref": "#/definitions/VpnResponse"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not found",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "INTERNAL_SERVER_ERROR",
                                "INVALID_JSON_FORMAT",
                                "RESOURCE_NOT_FOUND",
                                "UNAUTHORIZED_USER",
                                "INVALID_REQUEST_FORMAT",
                                "ZONE_NOT_FOUND",
                                "SOURCE_ZONE_NOT_FOUND",
                                "DESTINATION_ZONE_NOT_FOUND",
                                "ZONES_NOT_PART_SAME_DEVICE",
                                "CONNECTION_ALREADY_PART_OF_ZONE",
                                "ZONE_PART_OF_FIREWALL",
                                "CONNECTION_NOT_AVAILABLE",
                                "ZONE_ALREADY_EXISTS",
                                "FIREWALL_NOT_FOUND",
                                "FIREWALL_ALREADY_EXISTS",
                                "RULE_ALREADY_EXISTS",
                                "RULE_NOT_FOUND",
                                "RULE_NOT_PART_OF_FIREWALL",
                                "VIRTUAL_DEVICE_NOT_FOUND",
                                "VIRTUAL_DEVICE_NOT_PROVISIONED",
                                "DEVICE_LICENSE_NOT_REGISTERED",
                                "MGMT_INTERFACE_NOT_AVAILABLE",
                                "INTERFACE_NOT_AVAILABLE",
                                "INTERFACE_NOT_PROVISIONED",
                                "NAT_CONFIG_ALREADY_EXISTS",
                                "NAT_CONFIG_NOT_FOUND",
                                "ADD_NAT_CONFIG_FAILED",
                                "EDIT_NAT_CONFIG_FAILED",
                                "REMOVE_NAT_CONFIG_FAILED",
                                "NAT_POOL_TYPE_CHANGE_DISABLED",
                                "INVALID_ACTION_TYPE",
                                "INVALID_ADD_ACTION",
                                "INVALID_MODIFY_ACTION",
                                "INVALID_STATIC_NAT_UUID",
                                "OVERLAP_IP_CONFLICT",
                                "CONNECTION_NOT_FOUND",
                                "BGP_NOT_FOUND",
                                "INVALID_IP_ADDRESS",
                                "INVALID_NETWORK_SERVICE_TYPE",
                                "IBX_NOT_FOUND",
                                "PRICE_SERVICE_REQUEST_INVALID",
                                "PRICE_SERVICE_REQUEST_FAILED",
                                "BGP_CONFIG_NOT_FOUND",
                                "BGP_NEIGHBOR_INFO_NOT_FOUND",
                                "LOCAL_IP_ADDRESS_NOT_IN_RANGE",
                                "REMOTE_IP_ADDRESS_NOT_IN_RANGE",
                                "CONNECTION_DEVICE_NOT_FOUND",
                                "CONNECTION_NOT_PROVISIONED",
                                "BROADCAST_ADDRESS_NOT_ALLOWED",
                                "NETWORK_ADDRESS_NOT_ALLOWED",
                                "OVERLAP_LOCAL_IP_ADDRESS",
                                "DATA_INTERFACE_NOT_AVAILABLE",
                                "ADD_BGP_CONFIG_FAILED",
                                "REMOVE_BGP_CONFIG_FAILED",
                                "INTERFACE_NOT_FOUND",
                                "UPDATE_BGP_CONFIG_FAILED",
                                "EXISTING_CONNECTION_BGP",
                                "BGP_EXISTING_NAT_SERVICES",
                                "BGP_EXISTING_FIREWALL_SERVICES",
                                "BGP_UPDATE_NOT_ALLOWED",
                                "BGP_EXISTING_VPN_SERVICES",
                                "REMOTE_LOCAL_SAME_IP_ADDRESS",
                                "BGP_FAILED_ASN_UPDATE",
                                "BGP_FAILED_INTERFACE_DESC",
                                "BGP_NSO_FAILED_FETCH",
                                "BGP_NSO_FAILED_UPDATE",
                                "BGP_FAILED_VPN_UPDATE",
                                "BGP_RETRY_FAILED",
                                "VPN_NAME_ALREADY_IN_USE",
                                "VPN_DEVICE_NOT_FOUND",
                                "VPN_DEVICE_USER_KEY_MISMATCH",
                                "VPN_DEVICE_NOT_REGISTERED",
                                "VPN_NO_CONFIGURED_CLOUD_BGP_FOUND",
                                "VPN_DEVICE_ASN_NOT_CONFIGURED",
                                "VPN_MATCHING_ASN",
                                "VPN_LIMIT_EXCEEDED",
                                "VPN_NO_INTERFACES_FOUND",
                                "VPN_SSH_INTERFACE_ID_NOT_FOUND",
                                "VPN_INVALID_SSH_INTERFACE_ID",
                                "VPN_CONFIG_NOT_FOUND",
                                "VPN_NSO_CREATE_TRANSIENT_FAILURE",
                                "VPN_NSO_CREATE_PERMANENT_FAILURE",
                                "VPN_NSO_DELETE_TRANSIENT_FAILURE",
                                "VPN_NSO_DELETE_PERMANENT_FAILURE",
                                "VPN_PEER_IP_ALREADY_IN_USE",
                                "VPN_DEVICE_MISSING_IPSEC_PACKAGE",
                                "VPN_INVALID_STATUS_LIST",
                                "VPN_RESTRICTED_ASN",
                                "VPN_UNAUTHORIZED_ACCESS",
                                "VPN_ALREADY_DELETED",
                                "VPN_RESTRICTED_IP_ADDRESS",
                                "VPN_DEVICE_NOT_IN_READY_STATE"
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "VPN"
                ],
                "summary": "Update VPN Configuration",
                "description": "Update a VPN configuration by its unique Id. Authorization checks are performed on the users of this API.",
                "operationId": "updateVpnConfigurationUsingPut",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "VPN info",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/Vpn"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "VPN"
                ],
                "summary": "Delete VPN Configuration",
                "description": "Deletes a VPN configuration by its unique Id. Authorization checks are performed on the users of this API.",
                "operationId": "removeVpnConfigurationUsingDELETE",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "204": {
                        "description": "No Content"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/sshUsers": {
            "get": {
                "tags": [
                    "SSH User"
                ],
                "summary": "Get SSH Users",
                "description": "Returns a list of all SSH Users associated with this account. Authorization checks are performed on the users of this API.",
                "operationId": "getSshUsersUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "username",
                        "in": "query",
                        "description": "SSH user name",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "virtualDeviceUuid",
                        "in": "query",
                        "description": "Virtual Device unique Id",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "verbose",
                        "in": "query",
                        "description": "Is detailed info required",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "accountUcmId",
                        "in": "query",
                        "description": "Unique ID of an account",
                        "type": "string"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Specifies where to start a page. It is the starting point of the collection returned from the server.",
                        "required": false,
                        "type": "string",
                        "default": 0,
                        "format": "int32"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Specifies the page size.",
                        "required": false,
                        "type": "string",
                        "default": 20,
                        "format": "int32"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/SshUserPageResponse"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "SSH User"
                ],
                "summary": "Create SSH User",
                "description": "Create a new SSH user and associate the user to a virtual device. Authorization checks are performed on users of this API.",
                "operationId": "createSshUserUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "in": "body",
                        "name": "request",
                        "description": "SSH user info",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/SshUserCreateRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created Successfully",
                        "schema": {
                            "$ref": "#/definitions/SshUserCreateResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/sshUsers/availability": {
            "get": {
                "tags": [
                    "SSH User"
                ],
                "summary": "SSH User Availability",
                "description": "Call this API to check whether a username is available for use. Failed response indicates that the given user name already exists or is restricted.",
                "operationId": "isSshUserAvailableForCreationUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "username",
                        "in": "query",
                        "description": "user name",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "The username is available"
                    },
                    "400": {
                        "description": "Invalid input",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/sshUsers/{uuid}": {
            "get": {
                "tags": [
                    "SSH User"
                ],
                "summary": "Get SSH User {uuid}",
                "description": "Returns ssh user details by unique Id. Authorization checks are performed on the users of this API.",
                "operationId": "getSshUserUsingGET",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Read Successfully",
                        "schema": {
                            "$ref": "#/definitions/SshUserInfoVerbose"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not found",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "INTERNAL_SERVER_ERROR",
                                "INVALID_JSON_FORMAT",
                                "RESOURCE_NOT_FOUND",
                                "UNAUTHORIZED_USER",
                                "INVALID_REQUEST_FORMAT",
                                "ZONE_NOT_FOUND",
                                "SOURCE_ZONE_NOT_FOUND",
                                "DESTINATION_ZONE_NOT_FOUND",
                                "ZONES_NOT_PART_SAME_DEVICE",
                                "CONNECTION_ALREADY_PART_OF_ZONE",
                                "ZONE_PART_OF_FIREWALL",
                                "CONNECTION_NOT_AVAILABLE",
                                "ZONE_ALREADY_EXISTS",
                                "FIREWALL_NOT_FOUND",
                                "FIREWALL_ALREADY_EXISTS",
                                "RULE_ALREADY_EXISTS",
                                "RULE_NOT_FOUND",
                                "RULE_NOT_PART_OF_FIREWALL",
                                "VIRTUAL_DEVICE_NOT_FOUND",
                                "VIRTUAL_DEVICE_NOT_PROVISIONED",
                                "DEVICE_LICENSE_NOT_REGISTERED",
                                "MGMT_INTERFACE_NOT_AVAILABLE",
                                "INTERFACE_NOT_AVAILABLE",
                                "INTERFACE_NOT_PROVISIONED",
                                "NAT_CONFIG_ALREADY_EXISTS",
                                "NAT_CONFIG_NOT_FOUND",
                                "ADD_NAT_CONFIG_FAILED",
                                "EDIT_NAT_CONFIG_FAILED",
                                "REMOVE_NAT_CONFIG_FAILED",
                                "NAT_POOL_TYPE_CHANGE_DISABLED",
                                "INVALID_ACTION_TYPE",
                                "INVALID_ADD_ACTION",
                                "INVALID_MODIFY_ACTION",
                                "INVALID_STATIC_NAT_UUID",
                                "OVERLAP_IP_CONFLICT",
                                "CONNECTION_NOT_FOUND",
                                "BGP_NOT_FOUND",
                                "INVALID_IP_ADDRESS",
                                "INVALID_NETWORK_SERVICE_TYPE",
                                "ERROR_DELETING_CONNECTION",
                                "IBX_NOT_FOUND",
                                "PRICE_SERVICE_REQUEST_INVALID",
                                "PRICE_SERVICE_REQUEST_FAILED",
                                "BGP_CONFIG_NOT_FOUND",
                                "BGP_NEIGHBOR_INFO_NOT_FOUND",
                                "LOCAL_IP_ADDRESS_NOT_IN_RANGE",
                                "REMOTE_IP_ADDRESS_NOT_IN_RANGE",
                                "CONNECTION_DEVICE_NOT_FOUND",
                                "CONNECTION_NOT_PROVISIONED",
                                "BROADCAST_ADDRESS_NOT_ALLOWED",
                                "NETWORK_ADDRESS_NOT_ALLOWED",
                                "OVERLAP_LOCAL_IP_ADDRESS",
                                "DATA_INTERFACE_NOT_AVAILABLE",
                                "ADD_BGP_CONFIG_FAILED",
                                "REMOVE_BGP_CONFIG_FAILED",
                                "INTERFACE_NOT_FOUND",
                                "UPDATE_BGP_CONFIG_FAILED",
                                "EXISTING_CONNECTION_BGP",
                                "BGP_EXISTING_NAT_SERVICES",
                                "BGP_EXISTING_FIREWALL_SERVICES",
                                "BGP_UPDATE_NOT_ALLOWED",
                                "BGP_EXISTING_VPN_SERVICES",
                                "REMOTE_LOCAL_SAME_IP_ADDRESS",
                                "BGP_FAILED_ASN_UPDATE",
                                "BGP_FAILED_INTERFACE_DESC",
                                "BGP_NSO_FAILED_FETCH",
                                "BGP_NSO_FAILED_UPDATE",
                                "BGP_FAILED_VPN_UPDATE",
                                "BGP_RETRY_FAILED",
                                "BGP_NOT_SUPPORTED",
                                "BGP_MULTI_ASN_NOT_SUPPORTED",
                                "VPN_NAME_ALREADY_IN_USE",
                                "VPN_DEVICE_NOT_FOUND",
                                "VPN_DEVICE_CUST_ORG_MISMATCH",
                                "VPN_DEVICE_NOT_REGISTERED",
                                "VPN_NO_CONFIGURED_CLOUD_BGP_FOUND",
                                "VPN_DEVICE_ASN_NOT_CONFIGURED",
                                "VPN_MATCHING_ASN",
                                "VPN_LIMIT_EXCEEDED",
                                "VPN_NO_INTERFACES_FOUND",
                                "VPN_SSH_INTERFACE_ID_NOT_FOUND",
                                "VPN_INVALID_SSH_INTERFACE_ID",
                                "VPN_CONFIG_NOT_FOUND",
                                "VPN_NSO_CREATE_TRANSIENT_FAILURE",
                                "VPN_NSO_CREATE_PERMANENT_FAILURE",
                                "VPN_NSO_DELETE_TRANSIENT_FAILURE",
                                "VPN_NSO_DELETE_PERMANENT_FAILURE",
                                "VPN_PEER_IP_ALREADY_IN_USE",
                                "VPN_DEVICE_MISSING_IPSEC_PACKAGE",
                                "VPN_INVALID_STATUS_LIST",
                                "VPN_RESTRICTED_ASN",
                                "VPN_UNAUTHORIZED_ACCESS",
                                "VPN_ALREADY_DELETED",
                                "VPN_RESTRICTED_IP_ADDRESS",
                                "VPN_NSO_UPDATE_TRANSIENT_FAILURE",
                                "VPN_NSO_UPDATE_PERMANENT_FAILURE",
                                "VPN_IN_PROVISIONING_STATE",
                                "VPN_TUNNEL_IP_OVERLAPS_DATA_BGP",
                                "VPN_TUNNEL_IP_OVERLAP",
                                "VPN_REMOTE_IP_SAME_AS_EXISTING_DATA_BGP",
                                "VPN_REMOTE_IP_ALREADY_IN_USE",
                                "VPN_REMOTE_IP_INVALID_FIRST_OCTET",
                                "VPN_TUNNEL_IP_INVALID_FIRST_OCTET",
                                "VPN_DEVICE_SSH_NOT_CONFIGURED",
                                "VPN_HA_SECONDARY_REQUEST_REQUIRED",
                                "VPN_HA_SECONDARY_DEVICE_REQUIRED",
                                "VPN_HA_ROLLED_BACK",
                                "VPN_HA_REDUNDANT_VPN_DELETED",
                                "VPN_STATUS_UPDATE_FAILED",
                                "VPN_STATUS_UPDATE_PROCESS_FAILED",
                                "VPN_DEVICE_CLOUD_SEQ_ID_NOT_CONFIGURED",
                                "SSH_CREATE_USER_FAILED",
                                "SSH_DELETE_USER_FAILED",
                                "TACACS_GET_USERS_FAILED",
                                "SSH_GET_USER_FAILED",
                                "SSH_UPDATE_USER_FAILED",
                                "SSH_REPLACE_DEVICE_ASSOCIATION_FAILED",
                                "SSH_APPEND_DEVICE_ASSOCIATION_FAILED",
                                "SSH_USER_ALREADY_EXISTS",
                                "SSH_USER_PARTIAL_FAILURE",
                                "SSH_USER_SERVICE_NOT_SUPPORTED",
                                "SSH_USER_UNAUTHORIZED_ACCESS",
                                "SSH_USER_DELETE_FAILED_ASSOCIATIONS_EXIST",
                                "SSH_USER_DEVICE_NOT_REGISTERED",
                                "SSH_USER_DEVICE_STATE_NOT_VALID",
                                "SSH_USER_PER_DEVICE_LIMIT_EXCEEDED",
                                "SSH_USER_DEVICE_IP_ADDRESS_NOT_SET",
                                "UNABLE_TO_GET_DEVICE_COUNT"
                            ]
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "SSH User"
                ],
                "summary": "Update SSH User Password",
                "description": "Update password for an SSH user. At this time password is the only information that is available for modification.",
                "operationId": "updateSshUserUsingPUT",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "uuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "request",
                        "description": "SSH user info",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/SshUserUpdateRequest"
                        }
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        },
        "/ne/v1/sshUsers/{sshUserUuid}/devices/{deviceUuid}": {
            "delete": {
                "tags": [
                    "SSH User"
                ],
                "summary": "Delete SSH User",
                "description": "The given SSH user is dissociated from the given device. The ssh user is deleted if there are no other devices associated with this user.",
                "operationId": "dissociateDeviceUsingDELETE",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "sshUserUuid",
                        "in": "path",
                        "description": "uuid",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "deviceUuid",
                        "in": "path",
                        "description": "device unique Id",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/SshUserInfoDissociateResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "SSH User"
                ],
                "summary": "Update SSH User {uuid}",
                "description": "Call this API to associate a device to an SSH user. The ssh user should be able to log onto the device if this operation is successful.",
                "operationId": "associateDeviceUsingPOST",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "parameters": [
                    {
                        "name": "sshUserUuid",
                        "in": "path",
                        "description": "The id of the SSH user",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "deviceUuid",
                        "in": "path",
                        "description": "The unique Id of the device",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "$ref": "#/parameters/authorizationHeader"
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created Successfully"
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "403": {
                        "description": "Unauthorized User",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "404": {
                        "description": "Resource Not Found",
                        "schema": {
                            "$ref": "#/definitions/FieldErrorResponse"
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "$ref": "#/definitions/ErrorMessageResponse"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "AgreementStatusResponse": {
            "type": "object",
            "properties": {
                "errorMessage": {
                    "type": "string"
                },
                "isValid": {
                    "type": "string"
                },
                "terms": {
                    "type": "string"
                },
                "termsVersionID": {
                    "type": "string"
                }
            }
        },
        "DNSLookupRequest": {
            "type": "object",
            "properties": {
                "fqdns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "velocloud.net"
                    ],
                    "description": "Domain names"
                },
                "uuid": {
                    "type": "string",
                    "description": "The unique Id of a virtual device",
                    "example": "4cfb5675-5c3f-4275-adba-0c9e3c26c96b"
                },
                "metroCode": {
                    "type": "string",
                    "description": "Metro code",
                    "example": "SY"
                }
            }
        },
        "DNSLookupResponse": {
            "type": "object",
            "properties": {
                "additionalProp": {
                    "$ref": "#/definitions/DNSLookupResponseDetails"
                }
            }
        },
        "DNSLookupResponseDetails": {
            "type": "object",
            "properties": {
                "cdn": {
                    "type": "boolean",
                    "example": true,
                    "description": "True or false"
                },
                "ips": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "104.24.100.23/32",
                        "104.24.101.23/32",
                        "172.67.218.217/32"
                    ],
                    "description": "Domain names"
                }
            }
        },
        "AgreementAcceptRequest": {
            "type": "object",
            "properties": {
                "accountNumber": {
                    "type": "string"
                },
                "apttusId": {
                    "type": "string"
                }
            }
        },
        "AgreementAcceptResponse": {
            "type": "object",
            "properties": {
                "status": {
                    "type": "string"
                }
            }
        },
        "metroCodes": {
            "type": "string",
            "example": "SV"
        },
        "versionDetails": {
            "type": "object",
            "properties": {
                "cause": {
                    "$ref": "#/definitions/versionDetails"
                },
                "version": {
                    "type": "string",
                    "example": "16.09.02"
                },
                "imageName": {
                    "type": "string",
                    "example": "csr-16.09.02"
                },
                "versionDate": {
                    "type": "string",
                    "example": {
                        "date": 1,
                        "day": 2,
                        "hours": 8,
                        "minutes": 0,
                        "month": 0,
                        "seconds": 0,
                        "time": 1546300800000,
                        "timezoneOffset": -480,
                        "year": 119
                    }
                },
                "status": {
                    "type": "string",
                    "example": "ACTIVE"
                },
                "stableVersion": {
                    "type": "string",
                    "example": true
                },
                "allowedUpgradableVersions": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "16.09.03"
                    }
                }
            }
        },
        "SshUserCreateRequest": {
            "type": "object",
            "required": [
                "deviceUuid",
                "password",
                "username"
            ],
            "properties": {
                "username": {
                    "type": "string",
                    "example": "user1",
                    "description": "At least 3 and upto a maximum of 32 alphanumeric characters. The only special characters allowed are - _"
                },
                "password": {
                    "type": "string",
                    "example": "pass12",
                    "description": "At least 6 and upto a maximum of 12 alphanumeric characters. The only special characters allowed are - _ $ @"
                },
                "deviceUuid": {
                    "type": "string",
                    "example": "3da0a663-20d9-4b8f-8c5d-d5cf706840c8",
                    "description": "The unique Id of a virtual device."
                }
            }
        },
        "SshUserCreateResponse": {
            "type": "object",
            "properties": {
                "uuid": {
                    "type": "string",
                    "example": "12828472-e6e9-4f2b-98f7-b79cf0fab4ff"
                }
            }
        },
        "SshUserInfoVerbose": {
            "type": "object",
            "properties": {
                "uuid": {
                    "type": "string",
                    "example": "The unique Id of the ssh user."
                },
                "username": {
                    "type": "string",
                    "example": "The user name of the ssh user."
                },
                "deviceUuids": {
                    "type": "array",
                    "description": "The devices associated with this ssh user.",
                    "items": {
                        "type": "string",
                        "example": "4cfb5675-5c3f-4275-adba-0c9e3c26c96b"
                    }
                },
                "metroStatusMap": {
                    "type": "object",
                    "description": "Status and error messages corresponding to the metros this user exists on",
                    "additionalProperties": {
                        "$ref": "#/definitions/MetroStatus"
                    }
                }
            }
        },
        "SshUserUpdateRequest": {
            "type": "object",
            "required": [
                "password"
            ],
            "properties": {
                "password": {
                    "type": "string",
                    "example": "pass12",
                    "description": "At least 6 and upto a maximum of 12 alphanumeric characters. The only special characters allowed are - _ $ @"
                }
            }
        },
        "SshUserInfoDissociateResponse": {
            "type": "object",
            "properties": {
                "sshUserDeleted": {
                    "type": "boolean",
                    "example": false,
                    "description": "true = the ssh user has been deleted since there are no more devices associated to this userfalse = the ssh user has not been deleted since some associations to devices exist."
                },
                "sshUserToDeviceAssociationDeleted": {
                    "type": "boolean",
                    "example": true
                }
            }
        },
        "MetroStatus": {
            "type": "object",
            "properties": {
                "status": {
                    "type": "string",
                    "example": "ACTIVE",
                    "description": "Whether the ssh user is active, pending, or failed in the metro."
                }
            }
        },
        "VirtualDeviceDeleteRequest": {
            "type": "object",
            "properties": {
                "deactivationKey": {
                    "type": "string",
                    "example": "8dfbd5ba3610234d9e550032603cc34762af140533e2c1de0111d3451d16eefd",
                    "description": "Some devices, e.g. Palo Alto devices, require a mandatory deactivation key for Equinix to successfully process the request."
                },
                "secondary": {
                    "$ref": "#/definitions/SecondaryDeviceDeleteRequest"
                }
            }
        },
        "SecondaryDeviceDeleteRequest": {
            "type": "object",
            "properties": {
                "deactivationKey": {
                    "type": "string",
                    "example": "8dfbd5ba3610234d9e550032603cc34762af140533e2c1de0111d3451d16eefd",
                    "description": "Object that holds the secondary deactivation key for HA (high availability) devices."
                }
            }
        },
        "VirtualDeviceCreateResponse": {
            "type": "object",
            "properties": {
                "uuid": {
                    "type": "string",
                    "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
                }
            }
        },
        "ErrorMessageResponse": {
            "type": "object",
            "properties": {
                "errorCode": {
                    "type": "string"
                },
                "errorMessage": {
                    "type": "string"
                },
                "moreInfo": {
                    "type": "string"
                },
                "property": {
                    "type": "string"
                }
            }
        },
        "PageResponseDto-VirtualDeviceType": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "description": "Array of available virtual device types",
                    "items": {
                        "$ref": "#/definitions/VirtualDeviceType"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/PaginationResponseDto"
                }
            }
        },
        "Throughput": {
            "type": "object",
            "properties": {
                "throughput": {
                    "type": "integer",
                    "format": "int32",
                    "example": 500
                },
                "throughputUnit": {
                    "type": "string",
                    "example": "Mbps"
                },
                "metroCodes": {
                    "type": "array",
                    "description": "Metros where the license is available",
                    "items": {
                        "$ref": "#/definitions/metroCodes"
                    }
                }
            }
        },
        "Throwable": {
            "type": "object",
            "properties": {
                "cause": {
                    "$ref": "#/definitions/Throwable"
                },
                "localizedMessage": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "stackTrace": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/StackTraceElement"
                    }
                },
                "suppressed": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Throwable"
                    }
                }
            }
        },
        "sshUsers": {
            "type": "object",
            "properties": {
                "sshUsername": {
                    "type": "string",
                    "description": "sshUsername. This should be minimum 3 and maximum 32 characters and include alphanumeric characters, dash, and underscore.",
                    "example": "cust0001_DC"
                },
                "sshPassword": {
                    "type": "string",
                    "description": "sshPassword",
                    "example": "projPass"
                },
                "sshUserUuid": {
                    "type": "string",
                    "description": "sshUserUuid",
                    "example": "999a3aa2-c49a-dddd-98a6-007424e73777"
                },
                "action": {
                    "type": "string",
                    "description": "action",
                    "example": "CREATE"
                }
            }
        },
        "SoftwarePackage": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Software package name",
                    "example": "Security"
                },
                "packageCode": {
                    "type": "string",
                    "example": "SEC",
                    "description": "Software package code"
                },
                "licenseType": {
                    "type": "string",
                    "example": "appx",
                    "description": "Software package license type"
                },
                "versionDetails": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/versionDetails"
                    }
                }
            }
        },
        "StackTraceElement": {
            "type": "object",
            "properties": {
                "className": {
                    "type": "string"
                },
                "fileName": {
                    "type": "string"
                },
                "lineNumber": {
                    "type": "integer",
                    "format": "int32"
                },
                "methodName": {
                    "type": "string"
                },
                "nativeMethod": {
                    "type": "boolean"
                }
            }
        },
        "VirtualDeviceType": {
            "type": "object",
            "properties": {
                "deviceTypeCode": {
                    "type": "string",
                    "example": "CSR1000V",
                    "description": "The type of the device."
                },
                "name": {
                    "type": "string",
                    "description": "The name of the device.",
                    "example": "CSR 1000V"
                },
                "description": {
                    "type": "string",
                    "example": "Extend your enterprise network to public and private clouds with the CSR 1000V series.",
                    "description": "The description of the device."
                },
                "vendor": {
                    "type": "string",
                    "description": "The vendor of the device.",
                    "example": "Cisco"
                },
                "category": {
                    "type": "string",
                    "example": "ROUTER",
                    "description": "The type of the virtual device, whether router or firewall."
                },
                "maxInterfaceCount": {
                    "type": "integer",
                    "description": "The maximum available number of interfaces."
                },
                "defaultInterfaceCount": {
                    "type": "integer",
                    "description": "The default number of interfaces."
                },
                "clusterMaxInterfaceCount": {
                    "type": "integer",
                    "description": "The maximum number of available interfaces in case you are clustering."
                },
                "clusterDefaultInterfaceCount": {
                    "type": "integer",
                    "description": "The default number of available interfaces in case you are clustering."
                },
                "availableMetros": {
                    "type": "array",
                    "description": "An array of metros where the device is available.",
                    "items": {
                        "$ref": "#/definitions/Metro"
                    }
                },
                "softwarePackages": {
                    "type": "array",
                    "description": "An array of available software packages",
                    "items": {
                        "$ref": "#/definitions/SoftwarePackage"
                    }
                },
                "deviceManagementTypes": {
                    "type": "object",
                    "properties": {
                        "EQUINIX-CONFIGURED": {
                            "type": "object",
                            "$ref": "#/definitions/EquinixConfiguredConfig"
                        },
                        "SELF-CONFIGURED": {
                            "type": "object",
                            "$ref": "#/definitions/SelfConfiguredConfig"
                        }
                    }
                }
            }
        },
        "AvailableZones": {
            "type": "object",
            "properties": {
                "zoneCode": {
                    "type": "string",
                    "description": "The zone code",
                    "example": "Zone1"
                },
                "zoneName": {
                    "type": "string",
                    "description": "The zone name",
                    "example": "Zone 1"
                },
                "clusterSupported": {
                    "type": "boolean",
                    "description": "Whether this zone supports cluster devices",
                    "example": false
                }
            }
        },
        "LicenseOptions": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The license name",
                    "example": "Subscription"
                },
                "type": {
                    "description": "The license type",
                    "type": "string",
                    "example": "Sub"
                },
                "metroCodes": {
                    "type": "array",
                    "description": "The metros where the license is available",
                    "items": {
                        "$ref": "#/definitions/metroCodes"
                    }
                }
            }
        },
        "DeviceACLTemplateRequest": {
            "type": "object",
            "required": [
                "name",
                "description",
                "metroCode",
                "inBoundRules",
                "srcType",
                "protocol",
                "srcPort",
                "dstPort",
                "subnets",
                "seqNo"
            ],
            "properties": {
                "name": {
                    "type": "string",
                    "example": "Test Template",
                    "description": "The device ACL template name."
                },
                "description": {
                    "type": "string",
                    "example": "Test Template Description",
                    "description": "The device ACL template description."
                },
                "metroCode": {
                    "type": "string",
                    "example": "DC",
                    "description": "Metro code."
                },
                "inBoundRules": {
                    "type": "array",
                    "description": "An array of inbound rules.",
                    "items": {
                        "$ref": "#/definitions/InboundRules"
                    }
                }
            }
        },
        "InboundRules": {
            "type": "object",
            "properties": {
                "srcType": {
                    "type": "string",
                    "example": "DOMAIN",
                    "description": "Source type."
                },
                "protocol": {
                    "type": "string",
                    "example": "DNS",
                    "description": "Protocol."
                },
                "srcPort": {
                    "type": "string",
                    "example": 53,
                    "description": "Source port."
                },
                "dstPort": {
                    "type": "string",
                    "example": "any",
                    "description": "Destination port."
                },
                "fqdn": {
                    "type": "string",
                    "example": "equinix.com",
                    "description": "This field is mandatory in case the source type is DOMAIN."
                },
                "subets": {
                    "type": "array",
                    "description": "An array of subnets.",
                    "items": {
                        "type": "string",
                        "example": "192.168.1.1/32"
                    }
                },
                "seqNo": {
                    "type": "integer",
                    "example": 1,
                    "description": "The sequence number of the inbound rule."
                }
            }
        },
        "VirtualDeviceRequest": {
            "type": "object",
            "required": [
                "deviceTypeCode",
                "virtualDeviceName",
                "hostNamePrefix",
                "licenseMode",
                "metroCode",
                "notifications",
                "version",
                "core",
                "deviceManagementType"
            ],
            "properties": {
                "accountNumber": {
                    "type": "string",
                    "example": 10478397,
                    "description": "Account number. Either an account number or accountReferenceId is required."
                },
                "accountReferenceId": {
                    "type": "string",
                    "example": 209809,
                    "description": "AccountReferenceId. This is a temporary ID that can be used to create a device when the account status is still pending, not active. Either an account number or accountReferenceId is required."
                },
                "deviceTypeCode": {
                    "type": "string",
                    "example": "CSR1000V",
                    "description": "Virtual device type (device type code)"
                },
                "hostNamePrefix": {
                    "type": "string",
                    "example": "mySR",
                    "description": "Host name prefix for identification. Only a-z, A-Z, 0-9 and hyphen(-) are allowed. It should start with a letter and end with a letter or a digit. Also, it should be minimum 2 and maximum 10 characters long."
                },
                "licenseFileId": {
                    "type": "string",
                    "example": "d6e21e0c-86dd-11e8-adc0-fa7ae01bbebc",
                    "description": "For Juniper devices you need to provide a licenseFileId if you want to BYOL (Bring Your Own License). You get a licenseFileId when you upload a license file by calling license upload API (Upload a license file before creating a virtual device). For Cisco devices, you do not need to provide a licenseFileId at the time of device creation. Once the device is provisioned, you can get the deviceSerialNo by calling Get virtual device {uuid} API. With the deviceSerialNo you can generate a license file on Cisco site. Afterward, you can upload the license file by calling license upload API (Upload a license file after creating a virtual device)."
                },
                "licenseMode": {
                    "type": "string",
                    "example": "SUB",
                    "description": "License type. One of SUB (Subscription) or BYOL (Bring Your Own License)"
                },
                "licenseToken": {
                    "type": "string",
                    "example": "V74191621",
                    "description": "In case you want to BYOL (Bring Your Own License) for a Palo Alto device, you must provide a license token. This field must have 8 alphanumeric characters."
                },
                "metroCode": {
                    "type": "string",
                    "example": "SV",
                    "description": "Metro code"
                },
                "zoneCode": {
                    "type": "string",
                    "example": "Zone1",
                    "description": "Zone code"
                },
                "packageCode": {
                    "type": "string",
                    "example": "IPBASE",
                    "description": "Software package code"
                },
                "version": {
                    "type": "string",
                    "example": "16.09.03"
                },
                "sshUsers": {
                    "type": "array",
                    "description": "An array of sshUsernames and passwords",
                    "items": {
                        "$ref": "#/definitions/sshUsers"
                    }
                },
                "throughput": {
                    "type": "integer",
                    "format": "int32",
                    "example": 1,
                    "description": "Device throughput. This is required for Cisco and Juniper devices."
                },
                "throughputUnit": {
                    "type": "string",
                    "example": "Gbps",
                    "description": "Throughput unit. This is required for Cisco and Juniper devices."
                },
                "virtualDeviceName": {
                    "type": "string",
                    "example": "Router1-csr1000v",
                    "description": "Virtual device name for identification. This should be minimum 3 and maximum 50 characters long."
                },
                "orderingContact": {
                    "type": "string",
                    "example": "subuser01"
                },
                "notifications": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "example": [
                        "test1@equinix.com",
                        "test2@equinix.com"
                    ],
                    "description": "Email addresses for notification. We need a minimum of 1 and no more than 5 email addresses."
                },
                "aclTemplateUuid": {
                    "type": "string",
                    "description": "The unique Id of a device ACL template.",
                    "example": "49289456-a63e-47d4-927c-5161cfb77501"
                },
                "additionalBandwidth": {
                    "type": "integer",
                    "format": "int32",
                    "example": 100,
                    "description": "Secondary additional bandwidth to be configured (in Mbps for HA). Default bandwidth provided is 15 Mbps."
                },
                "deviceManagementType": {
                    "type": "string",
                    "example": "EQUINIX-CONFIGURED",
                    "description": "Whether the device is SELF-CONFIGURED or EQUINIX-CONFIGURED"
                },
                "core": {
                    "type": "integer",
                    "format": "int32"
                },
                "interfaceCount": {
                    "type": "integer",
                    "format": "int32"
                },
                "siteId": {
                    "type": "string",
                    "example": "12345"
                },
                "systemIpAddress": {
                    "type": "string",
                    "example": "192.168.2.5"
                },
                "vendorConfig": {
                    "type": "object",
                    "$ref": "#/definitions/VendorConfig"
                },
                "userPublicKey": {
                    "type": "object",
                    "$ref": "#/definitions/UserPublicKeyConfig"
                },
                "sshInterfaceId": {
                    "type": "integer",
                    "example": 4,
                    "description": "You may specify any available interface on the device as the sshInterfaceId. This field is only applicable to self-configured devices."
                },
                "clusterDetails": {
                    "type": "object",
                    "$ref": "#/definitions/ClusterDetailsConfig"
                },
                "secondary": {
                    "$ref": "#/definitions/VirtualDevicHARequest"
                }
            }
        },
        "VirtualDevicHARequest": {
            "type": "object",
            "required": [
                "metroCode",
                "notifications",
                "virtualDeviceName",
                "hostNamePrefix"
            ],
            "properties": {
                "accountNumber": {
                    "type": "string",
                    "example": 10478398
                },
                "accountReferenceId": {
                    "type": "string",
                    "example": 209805
                },
                "additionalBandwidth": {
                    "type": "integer",
                    "format": "int32",
                    "example": 100,
                    "description": "Secondary additional bandwidth to be configured (in Mbps for HA). Default bandwidth provided is 15 Mbps."
                },
                "licenseFileId": {
                    "type": "string",
                    "example": "d6e21e0c-86dd-11e8-adc0-fa7ae01bbebc"
                },
                "licenseToken": {
                    "type": "string",
                    "example": "V74191621"
                },
                "metroCode": {
                    "type": "string",
                    "example": "SV"
                },
                "zoneCode": {
                    "type": "string",
                    "example": "Zone1",
                    "description": "Zone code"
                },
                "notifications": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": [
                            "test1@example.com",
                            "test2@example.com"
                        ]
                    }
                },
                "aclTemplateUuid": {
                    "type": "string",
                    "description": "The unique Id of a device ACL template.",
                    "example": "39289456-a63e-47d4-927c-5161cfb77500"
                },
                "sshUsers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SshUserOperationRequest"
                    }
                },
                "virtualDeviceName": {
                    "type": "string",
                    "example": "Router1-csr1000v",
                    "description": "Virtual Device Name"
                },
                "hostNamePrefix": {
                    "type": "string",
                    "example": "mySR",
                    "description": "Host name prefix for identification. Only a-z, A-Z, 0-9 and hyphen(-) are allowed. It should start with a letter and end with a letter or a digit. Also, it should be minimum 2 and maximum 10 characters long."
                },
                "siteId": {
                    "type": "string",
                    "example": "12345"
                },
                "systemIpAddress": {
                    "type": "string",
                    "example": "192.168.2.5"
                },
                "vendorConfig": {
                    "type": "object",
                    "$ref": "#/definitions/VendorConfig"
                },
                "sshInterfaceId": {
                    "type": "integer",
                    "example": 4,
                    "description": "You may specify any available interface on the device as the sshInterfaceId. This field is only applicable to self-configured devices."
                }
            }
        },
        "ClusterDetailsConfig": {
            "type": "object",
            "properties": {
                "clusterName": {
                    "type": "string",
                    "description": "The cluster name.",
                    "example": "My Cluster"
                },
                "hostNames": {
                    "type": "array",
                    "description": "An array with two hostnames.",
                    "items": {
                        "type": "string",
                        "example": [
                            "hostName1",
                            "hostName2"
                        ]
                    }
                }
            }
        },
        "SshUserOperationRequest": {
            "type": "object",
            "required": [
                "action"
            ],
            "properties": {
                "sshUserUuid": {
                    "type": "string",
                    "example": "999a3aa2-c49a-dddd-98a6-007424e73777",
                    "description": "Required for DELETE operation."
                },
                "action": {
                    "type": "string",
                    "example": "CREATE",
                    "description": "SSH operation to be performed",
                    "enum": [
                        "CREATE",
                        "DELETE",
                        "REUSE"
                    ]
                },
                "sshUsername": {
                    "type": "string",
                    "example": "cust0001_DC",
                    "description": "SSH User name"
                },
                "sshPassword": {
                    "type": "string",
                    "example": "projPass",
                    "description": "SSH Password"
                }
            }
        },
        "FieldErrorResponse": {
            "type": "object",
            "properties": {
                "errorCode": {
                    "type": "string"
                },
                "errorMessage": {
                    "type": "string"
                },
                "moreInfo": {
                    "type": "string"
                },
                "property": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "Charges": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string",
                    "description": "The description of the charge, whether it is for the virtual device, the device license, or the additional bandwidth.",
                    "example": "VIRTUAL_DEVICE"
                },
                "monthlyRecurringCharges": {
                    "type": "string",
                    "description": "The monthly charges.",
                    "example": 200
                }
            }
        },
        "Metro": {
            "type": "object",
            "properties": {
                "metroCode": {
                    "description": "Metro code",
                    "type": "string",
                    "example": "DC"
                },
                "metroDescription": {
                    "description": "Metro description",
                    "type": "string",
                    "example": "Ashburn"
                },
                "region": {
                    "description": "A region have several metros.",
                    "type": "string",
                    "example": "AMER"
                },
                "availableZones": {
                    "type": "array",
                    "description": "An array of available zones in the metro.",
                    "items": {
                        "$ref": "#/definitions/AvailableZones"
                    }
                }
            }
        },
        "PageResponse": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "type": "object"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/PaginationResponseDto"
                }
            }
        },
        "PageResponse-PublicKeys": {
            "type": "object",
            "properties": {
                "uuid": {
                    "type": "string",
                    "example": "877a3aa2-c49a-4af1-98a6-007424e737ae",
                    "description": "The unique Id of the keyName and keyValue combination"
                },
                "keyName": {
                    "type": "string",
                    "example": "myKeyName",
                    "description": "Key name"
                },
                "keyValue": {
                    "type": "string",
                    "example": "myKeyValue",
                    "description": "Key value"
                }
            }
        },
        "PublicKeyRequest": {
            "type": "object",
            "properties": {
                "accountUcmId": {
                    "type": "string",
                    "example": 678967,
                    "description": "This field is for resellers adding a public key for a customer"
                },
                "keyName": {
                    "type": "string",
                    "example": "myKeyName",
                    "description": "Key name"
                },
                "keyValue": {
                    "type": "string",
                    "example": "myKeyValue",
                    "description": "Key value"
                }
            }
        },
        "VirtualDeviceDetailsResponse": {
            "type": "object",
            "properties": {
                "accountName": {
                    "type": "string",
                    "example": "ABC INC"
                },
                "accountNumber": {
                    "type": "string",
                    "example": "133911"
                },
                "createdBy": {
                    "type": "string",
                    "example": "cust0001"
                },
                "createdDate": {
                    "type": "string",
                    "example": "2018-01-30T10:30:31.387Z"
                },
                "deviceSerialNo": {
                    "type": "string",
                    "example": "53791666484"
                },
                "deviceTypeCategory": {
                    "type": "string",
                    "example": "ROUTER"
                },
                "deviceTypeCode": {
                    "type": "string",
                    "example": "CSR1000V"
                },
                "deviceTypeName": {
                    "type": "string",
                    "example": "CSR 1000v"
                },
                "expiry": {
                    "type": "string",
                    "example": {
                        "date": 7,
                        "day": 4,
                        "hours": 8,
                        "minutes": 0,
                        "month": 1,
                        "seconds": 0,
                        "time": 1549497600000,
                        "timezoneOffset": -480,
                        "year": 119
                    }
                },
                "region": {
                    "type": "string",
                    "example": "AMER"
                },
                "deviceTypeVendor": {
                    "type": "string",
                    "example": "Cisco"
                },
                "hostName": {
                    "type": "string",
                    "example": "VR-SV-CSR1000V-cust0001-1"
                },
                "uuid": {
                    "type": "string",
                    "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
                },
                "lastUpdatedBy": {
                    "type": "string",
                    "example": "cust0002"
                },
                "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-01-30T10:30:31.387Z"
                },
                "licenseFileId": {
                    "type": "string",
                    "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
                },
                "licenseName": {
                    "type": "string",
                    "example": "Bring your own license"
                },
                "licenseStatus": {
                    "type": "string",
                    "example": "REGISTERED"
                },
                "licenseType": {
                    "type": "string",
                    "example": "BYOL"
                },
                "metroCode": {
                    "type": "string",
                    "example": "SV"
                },
                "metroName": {
                    "type": "string",
                    "example": "Silicon Valley"
                },
                "zoneCode": {
                    "type": "string",
                    "example": "zone1",
                    "description": "Zone code"
                },
                "zoneName": {
                    "type": "string",
                    "example": "Zone 1",
                    "description": "Zone name"
                },
                "name": {
                    "type": "string",
                    "example": "AWS-Azure-Router-csr1000v"
                },
                "notifications": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "test@equinix.com"
                    }
                },
                "packageCode": {
                    "type": "string",
                    "example": "SEC"
                },
                "packageName": {
                    "type": "string",
                    "example": "Security"
                },
                "version": {
                    "type": "string",
                    "example": "16.09.02"
                },
                "purchaseOrderNumber": {
                    "type": "string",
                    "example": "PO1223"
                },
                "redundancyType": {
                    "type": "string",
                    "example": "PRIMARY"
                },
                "redundantUuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa67xx"
                },
                "sshIpAddress": {
                    "type": "string",
                    "example": "10.195.11.23"
                },
                "sshIpFqdn": {
                    "type": "string",
                    "example": "test-device-168-201-97-149.eis.lab.equinix.com"
                },
                "status": {
                    "type": "string",
                    "example": "PROVISIONED"
                },
                "throughput": {
                    "type": "integer",
                    "format": "int32",
                    "example": 500
                },
                "throughputUnit": {
                    "type": "string",
                    "example": "Mbps"
                },
                "aclTemplateUuid": {
                    "type": "string",
                    "example": "49289456-a63e-47d4-927c-5161cfb77501"
                },
                "core": {
                    "type": "object",
                    "$ref": "#/definitions/CoresDisplayConfig"
                },
                "pricingDetails": {
                    "type": "object",
                    "$ref": "#/definitions/PricingSiebelConfig"
                },
                "interfaceCount": {
                    "type": "integer",
                    "example": 10
                },
                "deviceManagementType": {
                    "type": "string",
                    "example": "EQUINIX-CONFIGURED"
                },
                "userPublicKey": {
                    "type": "object",
                    "$ref": "#/definitions/UserPublicKeyConfig"
                },
                "managementIp": {
                    "type": "string",
                    "example": "10.195.237.228/26"
                },
                "managementGatewayIp": {
                    "type": "string",
                    "example": "10.195.237.254"
                },
                "publicIp": {
                    "type": "string",
                    "example": "149.97.198.95/31"
                },
                "publicGatewayIp": {
                    "type": "string",
                    "example": "149.97.198.94"
                },
                "primaryDnsName": {
                    "type": "string",
                    "example": "4.0.0.53"
                },
                "secondaryDnsName": {
                    "type": "string",
                    "example": "129.250.35.250"
                },
                "termLength": {
                    "type": "string",
                    "example": 12
                },
                "additionalBandwidth": {
                    "type": "string",
                    "example": 200
                },
                "siteId": {
                    "type": "string",
                    "example": "12345"
                },
                "systemIpAddress": {
                    "type": "string",
                    "example": "192.168.2.5"
                },
                "vendorConfig": {
                    "type": "object",
                    "$ref": "#/definitions/VendorConfig"
                },
                "interfaces": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/InterfaceBasicInfoResponse"
                    }
                },
                "asn": {
                    "type": "number",
                    "example": 1029,
                    "description": "The ASN number."
                }
            }
        },
        "UserPublicKeyConfig": {
            "type": "object",
            "description": "An object with public key details of a self-configured device.",
            "properties": {
                "username": {
                    "type": "string",
                    "description": "The username of a self-configured device.",
                    "example": "test-user-1"
                },
                "publicKeyName": {
                    "type": "string",
                    "description": "The public key name of a self-configured device.",
                    "example": "test-pk-2"
                },
                "publicKey": {
                    "type": "string",
                    "description": "The public key of a self-configured device.",
                    "example": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU\\nGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3\\nPbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA\\nt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw"
                }
            }
        },
        "PricingSiebelConfig": {
            "type": "object",
            "description": "An object that has the pricing and other details of a Siebel order.",
            "properties": {
                "termLength": {
                    "type": "string",
                    "description": "The termlength of the Siebel order.",
                    "example": 36
                },
                "orderNumber": {
                    "type": "string",
                    "description": "The order number.",
                    "example": "1-198735018693"
                },
                "core": {
                    "type": "integer",
                    "description": "The core selection on Siebel.",
                    "example": 4
                },
                "throughput": {
                    "type": "string",
                    "description": "Throughput.",
                    "example": 1
                },
                "ThroughputUnit": {
                    "type": "string",
                    "description": "The throughput unit.",
                    "example": "Gbps"
                },
                "packageCode": {
                    "type": "string",
                    "description": "The software package code.",
                    "example": "AX"
                },
                "additionalBandwidth": {
                    "type": "string",
                    "description": "The additional bandwidth selection on Siebel.",
                    "example": 100
                },
                "primary": {
                    "type": "object",
                    "description": "An object that has the charges associated with the primary device.",
                    "properties": {
                        "currency": {
                            "type": "string",
                            "description": "The currency of the charges.",
                            "example": "USD"
                        },
                        "charges": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Charges"
                            }
                        }
                    }
                },
                "secondary": {
                    "type": "object",
                    "description": "An object that has the charges associated with the secondary device.",
                    "properties": {
                        "currency": {
                            "type": "string",
                            "description": "The currency of the charges.",
                            "example": "USD"
                        },
                        "charges": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/Charges"
                            }
                        }
                    }
                }
            }
        },
        "CoresDisplayConfig": {
            "type": "object",
            "properties": {
                "core": {
                    "type": "integer",
                    "example": 4,
                    "description": "The number of cores."
                },
                "memory": {
                    "type": "integer",
                    "example": 4,
                    "description": "The amount of memory."
                },
                "unit": {
                    "type": "string",
                    "example": "GB",
                    "description": "The unit of memory."
                }
            }
        },
        "InterfaceBasicInfoResponse": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "number",
                    "example": 1
                },
                "ipv4Mask": {
                    "type": "string",
                    "example": "255.255.255.0"
                },
                "ipv4Subnet": {
                    "type": "string",
                    "example": "192.168.0.5"
                },
                "name": {
                    "type": "string",
                    "example": "ethernet1"
                },
                "status": {
                    "type": "string",
                    "example": "ASSIGNED"
                },
                "operationStatus": {
                    "type": "string",
                    "example": "DOWN"
                },
                "macAddress": {
                    "type": "string",
                    "example": "fa16.3e1c.a8d8"
                },
                "ipAddress": {
                    "type": "string",
                    "example": "2.2.2.2"
                },
                "assignedType": {
                    "type": "string",
                    "example": "Equinix Managed"
                },
                "type": {
                    "type": "string",
                    "example": "DATA",
                    "description": "The type of interface."
                }
            }
        },
        "PageResponseDto-MetroResponse": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/MetroResponse"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/PaginationResponseDto"
                },
                "data": {
                    "example": 1
                }
            }
        },
        "PageResponseDto-MetroAccountResponse": {
            "type": "object",
            "properties": {
                "accountCreateUrl": {
                    "type": "string",
                    "description": "accountCreateUrl"
                },
                "content": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/MetroAccountResponse"
                    }
                },
                "totalCount": {
                    "type": "integer",
                    "format": "int64",
                    "description": "Total count"
                },
                "errorMessage": {
                    "type": "string",
                    "description": "error Message"
                },
                "errorCode": {
                    "type": "string",
                    "description": "error Code"
                }
            }
        },
        "MetroAccountResponse": {
            "type": "object",
            "properties": {
                "accountName": {
                    "type": "string",
                    "description": "account Name",
                    "example": "nfv1"
                },
                "accountNumber": {
                    "type": "integer",
                    "description": "account number",
                    "example": 2252619
                },
                "accountUcmId": {
                    "type": "string",
                    "description": "account UcmId",
                    "example": "92D27009-EA33-4b60-B4FB-D3C4ED589649"
                },
                "accountStatus": {
                    "type": "string",
                    "description": "account status",
                    "example": "Active"
                },
                "referenceId": {
                    "type": "string",
                    "description": "referenceId",
                    "example": ""
                }
            }
        },
        "PageResponseDto": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "array",
                    "items": {
                        "type": "object"
                    }
                },
                "data": {
                    "type": "array",
                    "items": {
                        "type": "object"
                    }
                },
                "pagination": {
                    "$ref": "#/definitions/PaginationResponseDto"
                }
            }
        },
        "DeviceACLPageResponse": {
            "type": "object",
            "properties": {
                "pagination": {
                    "$ref": "#/definitions/PaginationResponseDto"
                },
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/DeviceACLDetailsResponse"
                    }
                }
            }
        },
        "DeviceACLDetailsResponse": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The name of the device ACL template.",
                    "example": "New template"
                },
                "uuid": {
                    "type": "string",
                    "description": "The unique Id of the device ACL template.",
                    "example": "be7ef79e-31e7-4769-be5b-e192496f48aa"
                },
                "description": {
                    "type": "string",
                    "description": "The description of the device ACL template.",
                    "example": "My description"
                },
                "inBoundRules": {
                    "type": "array",
                    "description": "An array of inbound rules",
                    "items": {
                        "$ref": "#/definitions/InboundRules"
                    }
                },
                "metroCode": {
                    "type": "string",
                    "example": "SV",
                    "description": "The metro code"
                },
                "metroName": {
                    "type": "string",
                    "example": "Silicon Valley",
                    "description": "The metro name"
                },
                "virtualDeviceName": {
                    "type": "string",
                    "example": "Test Device",
                    "description": "The name of the virtual device associated with this template."
                },
                "virtualDeviceUuid": {
                    "type": "string",
                    "example": "ce7ef79e-31e7-4769-be5b-e192496f48ab",
                    "description": "The unique Id of the virtual device associated with this template."
                },
                "deviceACLstatus": {
                    "type": "string",
                    "example": "PROVISIONING",
                    "description": "Device ACL status"
                },
                "createdBy": {
                    "type": "string",
                    "example": "nfvsit01",
                    "description": "Created by"
                },
                "createdDate": {
                    "type": "string",
                    "example": "2020/10/03T19:41:17.976Z",
                    "description": "Created date"
                }
            }
        },
        "VirtualDevicePageResponse": {
            "type": "object",
            "properties": {
                "pagination": {
                    "$ref": "#/definitions/PaginationResponseDto"
                },
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/VirtualDeviceDetailsResponse"
                    }
                }
            }
        },
        "PaginationResponseDto": {
            "type": "object",
            "properties": {
                "offset": {
                    "type": "integer",
                    "example": 0,
                    "description": "It is the starting point of the collection returned fromt the server"
                },
                "limit": {
                    "type": "integer",
                    "description": "The page size",
                    "example": 20
                },
                "total": {
                    "type": "integer",
                    "description": "The total number of results",
                    "example": 1
                }
            }
        },
        "SshUserPageResponse": {
            "type": "object",
            "properties": {
                "pagination": {
                    "$ref": "#/definitions/PaginationResponseDto"
                },
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SshUserInfoVerbose"
                    }
                }
            }
        },
        "PriceResponse": {
            "type": "object",
            "properties": {
                "billingCommencementDate": {
                    "type": "string"
                },
                "billingEnabled": {
                    "type": "boolean"
                },
                "charges": {
                    "type": "array",
                    "description": "An array of the monthly recurring charges.",
                    "items": {
                        "$ref": "#/definitions/Charges"
                    }
                },
                "currency": {
                    "type": "string"
                }
            }
        },
        "CompositePriceResponse": {
            "type": "object",
            "properties": {
                "primary": {
                    "$ref": "#/definitions/PriceResponse"
                },
                "secondary": {
                    "$ref": "#/definitions/PriceResponse"
                },
                "termLength": {
                    "type": "string",
                    "example": "24"
                }
            }
        },
        "LicenseUploadResponse": {
            "type": "object",
            "properties": {
                "fileId": {
                    "type": "string"
                }
            }
        },
        "LicenseUpdateRequest": {
            "type": "object",
            "properties": {
                "token": {
                    "type": "string",
                    "example": "A1025025"
                }
            }
        },
        "AdditionalBandwidthRequest": {
            "type": "object",
            "properties": {
                "additionalBandwidth": {
                    "type": "integer",
                    "example": 100
                }
            }
        },
        "MetroResponse": {
            "type": "object",
            "properties": {
                "metroCode": {
                    "type": "string",
                    "description": "Metro code",
                    "example": "SV"
                },
                "metroDescription": {
                    "type": "string",
                    "description": "Metro description",
                    "example": "Silicon Valley"
                },
                "availableZones": {
                    "type": "array",
                    "description": "An array of available zones in the metro.",
                    "items": {
                        "$ref": "#/definitions/AvailableZones"
                    }
                },
                "region": {
                    "type": "string",
                    "description": "Region within which the metro is located",
                    "example": "AMER"
                }
            }
        },
        "PostConnectionRequest": {
            "type": "object",
            "properties": {
                "primaryName": {
                    "type": "string",
                    "example": "v3-api-test-pri"
                },
                "virtualDeviceUuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "profileUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "authorizationKey": {
                    "type": "string",
                    "example": 444111000222
                },
                "speed": {
                    "type": "integer",
                    "example": 50
                },
                "speedUnit": {
                    "type": "string",
                    "example": "MB"
                },
                "notifications": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "sandboxuser@example-company.com"
                    }
                },
                "purchaseOrderNumber": {
                    "type": "string",
                    "example": "312456323"
                },
                "sellerMetroCode": {
                    "type": "string",
                    "example": "SV"
                },
                "interfaceId": {
                    "type": "integer",
                    "example": 5
                },
                "secondaryName": {
                    "type": "string",
                    "example": "v3-api-test-sec1"
                },
                "namedTag": {
                    "type": "string",
                    "example": "Private"
                },
                "secondaryVirtualDeviceUuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "secondaryProfileUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "secondaryAuthorizationKey": {
                    "type": "string",
                    "example": 444111000222
                },
                "secondarySellerMetroCode": {
                    "type": "string",
                    "example": "SV"
                },
                "secondarySpeed": {
                    "type": "integer",
                    "example": 50
                },
                "secondarySpeedUnit": {
                    "type": "string",
                    "example": "MB"
                },
                "secondaryNotifications": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "sandboxuser@example-company.com"
                    }
                },
                "secondaryInterfaceId": {
                    "type": "integer",
                    "example": 6
                },
                "primaryZSideVlanCTag": {
                    "type": "integer",
                    "example": 101
                },
                "secondaryZSideVlanCTag": {
                    "type": "integer",
                    "example": 102
                },
                "primaryZSidePortUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "primaryZSideVlanSTag": {
                    "type": "integer",
                    "example": 301
                },
                "secondaryZSidePortUUID": {
                    "type": "string",
                    "example": "xxxxx192-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "secondaryZSideVlanSTag": {
                    "type": "integer",
                    "example": 302
                }
            }
        },
        "PostConnectionResponse": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string",
                    "example": "Connection created successfully"
                },
                "primaryConnectionId": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "secondaryConnectionId": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "status": {
                    "type": "string",
                    "example": "SUCCESS"
                }
            }
        },
        "BgpConnectionInfo": {
            "type": "object",
            "properties": {
                "bgpStatus": {
                    "type": "string"
                },
                "isPrimary": {
                    "type": "boolean"
                },
                "metro": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "providerStatus": {
                    "type": "string"
                },
                "redundantConnection": {
                    "$ref": "#/definitions/BgpConnectionInfo"
                },
                "redundantUUID": {
                    "type": "string"
                },
                "sellerOrganizationName": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "BgpConfigAddRequest": {
            "type": "object",
            "properties": {
                "authenticationKey": {
                    "description": "Provide a key value that you can use later to authenticate.",
                    "type": "string",
                    "example": "pass123"
                },
                "connectionUuid": {
                    "type": "string",
                    "example": "f79eead8-b837-41d3-9095-9b15c2c4996d",
                    "description": "The unique Id of a connection between the virtual device and the cloud service provider"
                },
                "localAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 10012,
                    "description": "Local ASN (autonomous system network). This is the ASN of the virtual device."
                },
                "localIpAddress": {
                    "type": "string",
                    "example": "100.210.1.221/30",
                    "description": "Local IP Address. This is the IP address of the virtual device in CIDR format."
                },
                "remoteAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 10013,
                    "description": "Remote ASN (autonomous system network). This is the ASN of the cloud service provider."
                },
                "remoteIpAddress": {
                    "type": "string",
                    "example": "100.210.1.31",
                    "description": "Remote IP Address. This is the IP address of the cloud service provider."
                }
            }
        },
        "BgpInfo": {
            "type": "object",
            "properties": {
                "authenticationKey": {
                    "type": "string"
                },
                "connectionUuid": {
                    "type": "string"
                },
                "createdBy": {
                    "type": "string"
                },
                "createdByEmail": {
                    "type": "string"
                },
                "createdByFullName": {
                    "type": "string"
                },
                "createdDate": {
                    "type": "string"
                },
                "deletedBy": {
                    "type": "string"
                },
                "deletedByEmail": {
                    "type": "string"
                },
                "deletedByFullName": {
                    "type": "string"
                },
                "deletedDate": {
                    "type": "string"
                },
                "lastUpdatedBy": {
                    "type": "string"
                },
                "lastUpdatedByEmail": {
                    "type": "string"
                },
                "lastUpdatedByFullName": {
                    "type": "string"
                },
                "lastUpdatedDate": {
                    "type": "string"
                },
                "localAsn": {
                    "type": "integer",
                    "format": "int64"
                },
                "localIpAddress": {
                    "type": "string"
                },
                "provisioningStatus": {
                    "type": "string"
                },
                "remoteAsn": {
                    "type": "integer",
                    "format": "int64"
                },
                "remoteIpAddress": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                },
                "virtualDeviceUuid": {
                    "type": "string"
                }
            }
        },
        "BgpAsyncResponse": {
            "type": "object",
            "properties": {
                "uuid": {
                    "type": "string"
                }
            }
        },
        "Vpn": {
            "type": "object",
            "required": [
                "password",
                "peerIp",
                "peerSharedKey",
                "remoteAsn",
                "remoteIpAddress",
                "siteName",
                "tunnelIp",
                "virtualDeviceUuid"
            ],
            "properties": {
                "siteName": {
                    "type": "string",
                    "example": "Chicago"
                },
                "virtualDeviceUuid": {
                    "type": "string",
                    "example": "f79eead8-b837-41d3-9095-9b15c2c4996d",
                    "description": "The unique Id of the primary device."
                },
                "configName": {
                    "type": "string",
                    "example": "Traffic from AWS cloud"
                },
                "peerIp": {
                    "type": "string",
                    "example": "110.11.12.222"
                },
                "peerSharedKey": {
                    "type": "string",
                    "example": "5bb2424e888bd"
                },
                "remoteAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65413,
                    "description": "Remote Customer ASN - Customer side"
                },
                "remoteIpAddress": {
                    "type": "string",
                    "example": "100.210.1.31",
                    "description": "Remote Customer IP Address - Customer side"
                },
                "password": {
                    "type": "string",
                    "example": "pass123",
                    "description": "BGP Password"
                },
                "localAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65414,
                    "description": "Local ASN - Equinix side"
                },
                "tunnelIp": {
                    "type": "string",
                    "example": "192.168.7.2/30",
                    "description": "Local Tunnel IP Address in CIDR format"
                },
                "secondary": {
                    "description": "Secondary VPN details. Required if VPN is for a HA enabled device.",
                    "$ref": "#/definitions/VpnRequest"
                }
            }
        },
        "VpnRequest": {
            "type": "object",
            "required": [
                "password",
                "peerIp",
                "peerSharedKey",
                "remoteAsn",
                "remoteIpAddress",
                "tunnelIp"
            ],
            "properties": {
                "configName": {
                    "type": "string",
                    "example": "Traffic from AWS cloud"
                },
                "peerIp": {
                    "type": "string",
                    "example": "110.11.12.222"
                },
                "peerSharedKey": {
                    "type": "string",
                    "example": "5bb2424e888bd"
                },
                "remoteAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65413,
                    "description": "Remote Customer ASN - Customer side"
                },
                "remoteIpAddress": {
                    "type": "string",
                    "example": "100.210.1.31",
                    "description": "Remote Customer IP Address - Customer side"
                },
                "password": {
                    "type": "string",
                    "example": "pass123",
                    "description": "BGP Password"
                },
                "localAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65414,
                    "description": "Local ASN - Equinix side"
                },
                "tunnelIp": {
                    "type": "string",
                    "example": "192.168.7.2/30",
                    "description": "Local Tunnel IP Address in CIDR format"
                }
            }
        },
        "VpnResponseDto": {
            "type": "object",
            "properties": {
                "pagination": {
                    "$ref": "#/definitions/PaginationResponseDto"
                },
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/VpnResponse"
                    }
                }
            }
        },
        "VpnResponse": {
            "type": "object",
            "required": [
                "password",
                "peerIp",
                "peerSharedKey",
                "remoteAsn",
                "remoteIpAddress",
                "siteName",
                "tunnelIp",
                "virtualDeviceUuid"
            ],
            "properties": {
                "siteName": {
                    "type": "string",
                    "example": "Chicago"
                },
                "uuid": {
                    "type": "string",
                    "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
                },
                "virtualDeviceUuid": {
                    "type": "string",
                    "example": "f79eead8-b837-41d3-9095-9b15c2c4996d"
                },
                "configName": {
                    "type": "string",
                    "example": "Traffic from AWS cloud"
                },
                "status": {
                    "type": "string",
                    "example": "PROVISIONED"
                },
                "peerIp": {
                    "type": "string",
                    "example": "110.11.12.222"
                },
                "peerSharedKey": {
                    "type": "string",
                    "example": "5bb2424e888bd"
                },
                "remoteAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65413,
                    "description": "Remote Customer ASN - Customer side"
                },
                "remoteIpAddress": {
                    "type": "string",
                    "example": "100.210.1.31",
                    "description": "Remote Customer IP Address - Customer side"
                },
                "password": {
                    "type": "string",
                    "example": "pass123",
                    "description": "BGP Password"
                },
                "localAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65414,
                    "description": "Local ASN - Equinix side"
                },
                "tunnelIp": {
                    "type": "string",
                    "example": "192.168.7.2/30",
                    "description": "Local Tunnel IP Address in CIDR format"
                },
                "bgpState": {
                    "type": "string",
                    "example": "ESTABLISHED"
                },
                "inboundBytes": {
                    "type": "string",
                    "example": "8780"
                },
                "inboundPackets": {
                    "type": "string",
                    "example": "8780"
                },
                "outboundBytes": {
                    "type": "string",
                    "example": "8765"
                },
                "outboundPackets": {
                    "type": "string",
                    "example": "8765"
                },
                "tunnelStatus": {
                    "type": "string",
                    "example": "UP"
                },
                "custOrgId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65555
                },
                "createdDate": {
                    "type": "string",
                    "example": "2018-05-18 06:34:26"
                },
                "createdByFirstName": {
                    "type": "string",
                    "example": "John"
                },
                "createdByLastName": {
                    "type": "string",
                    "example": "Smith"
                },
                "createdByEmail": {
                    "type": "string",
                    "example": "alpha@beta.com"
                },
                "createdByUserKey": {
                    "type": "integer",
                    "format": "int64",
                    "example": 123
                },
                "createdByAccountUcmId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 456
                },
                "createdByUserName": {
                    "type": "string",
                    "example": "jsmith"
                },
                "createdByCustOrgId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 7863
                },
                "createdByCustOrgName": {
                    "type": "string",
                    "example": "My Awesome Org"
                },
                "createdByUserStatus": {
                    "type": "string",
                    "example": "ACTIVATED"
                },
                "createdByCompanyName": {
                    "type": "string",
                    "example": "My Awesome Company"
                },
                "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-07-21 05:20:20"
                },
                "updatedByFirstName": {
                    "type": "string",
                    "example": "John"
                },
                "updatedByLastName": {
                    "type": "string",
                    "example": "Smith"
                },
                "updatedByEmail": {
                    "type": "string",
                    "example": "alpha@beta.com"
                },
                "updatedByUserKey": {
                    "type": "integer",
                    "format": "int64",
                    "example": 123
                },
                "updatedByAccountUcmId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 456
                },
                "updatedByUserName": {
                    "type": "string",
                    "example": "jsmith"
                },
                "updatedByCustOrgId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 7863
                },
                "updatedByCustOrgName": {
                    "type": "string",
                    "example": "My Awesome Org"
                },
                "updatedByUserStatus": {
                    "type": "string",
                    "example": "ACTIVATED"
                },
                "updatedByCompanyName": {
                    "type": "string",
                    "example": "My Awesome Company"
                }
            }
        },
        "BgpUpdateRequest": {
            "type": "object",
            "properties": {
                "authenticationKey": {
                    "type": "string",
                    "example": "pass123",
                    "description": "Authentication Key"
                },
                "localAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 10012,
                    "description": "Local ASN"
                },
                "localIpAddress": {
                    "type": "string",
                    "example": "100.210.1.221/30",
                    "description": "Local IP Address with subnet"
                },
                "remoteAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 10013,
                    "description": "Remote ASN"
                },
                "remoteIpAddress": {
                    "type": "string",
                    "example": "100.210.1.31",
                    "description": "Remote IP Address"
                }
            }
        },
        "ErrorResponse": {
            "type": "object",
            "properties": {
                "errorCode": {
                    "type": "string",
                    "example": "ErrorCode"
                },
                "errorMessage": {
                    "type": "string",
                    "example": "Error message"
                },
                "moreInfo": {
                    "type": "string",
                    "example": "More Info"
                },
                "property": {
                    "type": "string",
                    "example": "Property"
                }
            }
        },
        "ErrorResponseArray": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/ErrorResponse"
            }
        },
        "GetValidateAuthKeyRes": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string",
                    "example": "Authorization key provided is valid"
                },
                "status": {
                    "type": "string",
                    "example": "VALID"
                },
                "primary": {
                    "$ref": "#/definitions/GetValidateAuthkeyresPrimary"
                },
                "secondary": {
                    "$ref": "#/definitions/GetValidateAuthkeyresSecondary"
                }
            }
        },
        "GetValidateAuthkeyresPrimary": {
            "type": "object",
            "properties": {
                "bandwidth": {
                    "type": "string",
                    "example": "50MB"
                }
            }
        },
        "GetValidateAuthkeyresSecondary": {
            "type": "object",
            "properties": {
                "bandwidth": {
                    "type": "string",
                    "example": "50MB"
                }
            }
        },
        "GetServProfServicesResp": {
            "type": "object",
            "properties": {
                "isLastPage": {
                    "type": "boolean",
                    "example": true
                },
                "totalCount": {
                    "type": "integer",
                    "example": 55
                },
                "isFirstPage": {
                    "type": "boolean",
                    "example": true
                },
                "pageSize": {
                    "type": "integer",
                    "example": 1000
                },
                "pageNumber": {
                    "type": "integer",
                    "example": 1
                },
                "content": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/GetServProfServicesRespContent"
                    }
                }
            }
        },
        "GetServProfServicesRespContent": {
            "type": "object",
            "properties": {
                "uuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "name": {
                    "type": "string",
                    "example": "test"
                },
                "authKeyLabel": {
                    "type": "string",
                    "example": "Authorization Key"
                },
                "connectionNameLabel": {
                    "type": "string",
                    "example": "Connection Name"
                },
                "requiredRedundancy": {
                    "type": "boolean",
                    "example": false
                },
                "allowCustomSpeed": {
                    "type": "boolean",
                    "example": false
                },
                "speedBands": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SpeedBand"
                    }
                },
                "metros": {
                    "$ref": "#/definitions/GetServProfServicesRespContentMetros"
                },
                "createdDate": {
                    "type": "string",
                    "example": "2018-03-22T04:34:48.231Z"
                },
                "createdBy": {
                    "type": "string",
                    "example": "Sandbox User"
                },
                "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-04-03T00:30:57.055Z"
                },
                "lastUpdatedBy": {
                    "type": "string",
                    "example": "Sandbox User"
                },
                "vlanSameAsPrimary": {
                    "type": "boolean",
                    "example": false
                },
                "tagType": {
                    "type": "string",
                    "example": "CTAGED"
                },
                "ctagLabel": {
                    "type": "string",
                    "example": "Seller-Side C-Tag"
                },
                "apiAvailable": {
                    "type": "boolean",
                    "example": false
                },
                "selfProfile": {
                    "type": "boolean",
                    "example": false
                },
                "profileEncapsulation": {
                    "type": "string",
                    "example": "Dot1q"
                },
                "authorizationKey": {
                    "type": "string",
                    "example": "535235"
                },
                "organizationName": {
                    "type": "string",
                    "example": "Equinix-ADMIN"
                },
                "private": {
                    "type": "boolean",
                    "example": false
                },
                "features": {
                    "$ref": "#/definitions/GetServProfServicesRespContentfeatures"
                }
            }
        },
        "SpeedBand": {
            "type": "object",
            "properties": {
                "speed": {
                    "type": "number",
                    "format": "double",
                    "example": 50
                },
                "unit": {
                    "type": "string",
                    "example": "MB"
                }
            }
        },
        "GetServProfServicesRespContentMetros": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string",
                    "example": "SV"
                },
                "name": {
                    "type": "string",
                    "example": "Silicon Valley"
                },
                "ibxs": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "SV1"
                    }
                },
                "inTrail": {
                    "type": "boolean",
                    "example": false
                },
                "displayName": {
                    "type": "string",
                    "example": "Silicon Valley"
                }
            }
        },
        "GetServProfServicesRespContentfeatures": {
            "type": "object",
            "properties": {
                "cloudReach": {
                    "type": "boolean",
                    "example": true
                },
                "testProfile": {
                    "type": "boolean",
                    "example": false
                }
            }
        },
        "PatchRequest": {
            "type": "object",
            "properties": {
                "accessKey": {
                    "type": "string",
                    "example": "AKIAIXKQARIFBC3QJKYQ"
                },
                "secretKey": {
                    "type": "string",
                    "example": "ARIFW1lWbqNSOqSkCAOXAhep22UGyLJvkDBAIG"
                }
            }
        },
        "DeleteConnectionResponse": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string",
                    "example": "Message"
                },
                "primaryConnectionId": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                }
            }
        },
        "GETConnectionByUuidResponse": {
            "type": "object",
            "properties": {
                "buyerOrganizationName": {
                    "type": "string",
                    "example": "Forsythe Solutions Group, Inc."
                },
                "uuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "name": {
                    "type": "string",
                    "example": "Test-123"
                },
                "vlanSTag": {
                    "type": "integer",
                    "format": "int32",
                    "example": 1015
                },
                "portUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "portName": {
                    "type": "string",
                    "example": "TEST-CH2-CX-SEC-01"
                },
                "asideEncapsulation": {
                    "type": "string",
                    "example": "dot1q"
                },
                "metroCode": {
                    "type": "string",
                    "example": "CH"
                },
                "metroDescription": {
                    "type": "string",
                    "example": "Chicago"
                },
                "providerStatus": {
                    "type": "string",
                    "example": "PROVISIONED"
                },
                "status": {
                    "type": "string",
                    "example": "PROVISIONED"
                },
                "billingTier": {
                    "type": "string",
                    "example": "Up to 500MB"
                },
                "authorizationKey": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "speed": {
                    "type": "integer",
                    "format": "int32",
                    "example": 500
                },
                "speedUnit": {
                    "type": "string",
                    "example": "MB"
                },
                "redundancyType": {
                    "type": "string",
                    "example": "secondary"
                },
                "redundancyGroup": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "sellerMetroCode": {
                    "type": "string",
                    "example": "CH"
                },
                "sellerMetroDescription": {
                    "type": "string",
                    "example": "Chicago"
                },
                "sellerServiceName": {
                    "type": "string",
                    "example": "XYZ Cloud Service"
                },
                "sellerServiceUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "sellerOrganizationName": {
                    "type": "string",
                    "example": "EQUINIX-CLOUD-EXCHANGE"
                },
                "notifications": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "sandboxuser@example-company.com, sandboxuser@example-company.com"
                    }
                },
                "purchaseOrderNumber": {
                    "type": "string",
                    "example": "O-1234567890"
                },
                "namedTag": {
                    "type": "string",
                    "example": "Private"
                },
                "createdDate": {
                    "type": "string",
                    "example": "2017-09-26T22:46:24.312Z"
                },
                "createdBy": {
                    "type": "string",
                    "example": "sandboxuser@example-company.com"
                },
                "createdByFullName": {
                    "type": "string",
                    "example": "Sandbox User"
                },
                "createdByEmail": {
                    "type": "string",
                    "example": "sandboxuser@example-company.com"
                },
                "lastUpdatedBy": {
                    "type": "string",
                    "example": "sandboxuser@example-company.com"
                },
                "lastUpdatedDate": {
                    "type": "string",
                    "example": "2017-09-26T23:01:46Z"
                },
                "lastUpdatedByFullName": {
                    "type": "string",
                    "example": "Sandbox User"
                },
                "lastUpdatedByEmail": {
                    "type": "string",
                    "example": "sandboxuser@example-company.com"
                },
                "zSidePortName": {
                    "type": "string",
                    "example": "TEST-CHG-06GMR-Tes-2-TES-C"
                },
                "zSidePortUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                },
                "zSideVlanCTag": {
                    "type": "integer",
                    "format": "int32",
                    "example": 515
                },
                "zSideVlanSTag": {
                    "type": "integer",
                    "format": "int32",
                    "example": 2
                },
                "remote": {
                    "type": "boolean",
                    "example": false
                },
                "private": {
                    "type": "boolean",
                    "example": "false,"
                },
                "self": {
                    "type": "boolean",
                    "example": "false,"
                },
                "redundantUuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                }
            }
        },
        "OrderTermsResponse": {
            "type": "object",
            "properties": {
                "terms": {
                    "type": "string"
                }
            }
        },
        "OrderSummaryResponse": {
            "type": "object",
            "properties": {
                "accountNumber": {
                    "type": "integer",
                    "format": "int32"
                },
                "agreementId": {
                    "type": "string"
                },
                "charges": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/DeviceElement"
                    }
                },
                "currency": {
                    "type": "string"
                },
                "errorCode": {
                    "type": "string"
                },
                "errorMessage": {
                    "type": "string"
                },
                "esignAgreementId": {
                    "type": "string"
                },
                "ibxCountry": {
                    "type": "string"
                },
                "ibxRegion": {
                    "type": "string"
                },
                "initialTerm": {
                    "type": "integer",
                    "format": "int32"
                },
                "metro": {
                    "type": "string"
                },
                "monthlyRecurringCharges": {
                    "type": "number",
                    "format": "double"
                },
                "nonRecurringCharges": {
                    "type": "number",
                    "format": "double"
                },
                "nonRenewalNotice": {
                    "type": "string"
                },
                "orderTerms": {
                    "type": "string"
                },
                "piPercentage": {
                    "type": "string"
                },
                "productDescription": {
                    "type": "string"
                },
                "quantity": {
                    "type": "integer",
                    "format": "int32"
                },
                "quoteContentType": {
                    "type": "string"
                },
                "quoteFileName": {
                    "type": "string"
                },
                "referenceId": {
                    "type": "string"
                },
                "renewalPeriod": {
                    "type": "integer",
                    "format": "int32"
                },
                "requestSignType": {
                    "type": "string"
                },
                "signStatus": {
                    "type": "string"
                },
                "signType": {
                    "type": "string"
                },
                "speed": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "totalCharges": {
                    "type": "number",
                    "format": "double"
                }
            }
        },
        "DeviceElement": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "monthlyRecurringCharges": {
                    "type": "number",
                    "format": "double"
                },
                "nonRecurringCharges": {
                    "type": "number",
                    "format": "double"
                },
                "productCode": {
                    "type": "string"
                }
            }
        },
        "DeviceLinkRequest": {
            "type": "object",
            "required": [
                "groupName",
                "subnet"
            ],
            "properties": {
                "groupName": {
                    "type": "string",
                    "example": "linkGroup",
                    "description": "Group name."
                },
                "subnet": {
                    "type": "string",
                    "example": "192.164.0.0/29",
                    "description": "Subnet of the link group."
                },
                "linkDevices": {
                    "type": "array",
                    "description": "An array of devices to link.",
                    "items": {
                        "$ref": "#/definitions/LinkDeviceInfo"
                    }
                },
                "links": {
                    "type": "array",
                    "description": "An array of links.",
                    "items": {
                        "$ref": "#/definitions/LinkInfo"
                    }
                }
            }
        },
        "MetroDeviceInfo": {
            "type": "object",
            "properties": {
                "devices": {
                    "type": "array",
                    "description": "An array of devices that are part of a device link group.",
                    "items": {
                        "$ref": "#/definitions/DeviceInfo"
                    }
                },
                "metro": {
                    "type": "string",
                    "description": "Name of the metro.",
                    "example": "Dallas"
                },
                "metroCode": {
                    "type": "string",
                    "description": "Metro Code",
                    "example": "DA"
                },
                "throughput": {
                    "type": "string",
                    "description": "Throughput of the metro.",
                    "example": "500"
                },
                "throughputUnit": {
                    "type": "string",
                    "description": "Throughput unit.",
                    "example": "Mbps"
                }
            }
        },
        "DeviceInfo": {
            "type": "object",
            "properties": {
                "aside": {
                    "$ref": "#/definitions/JsonNode"
                },
                "category": {
                    "type": "string",
                    "description": "Category of the device.",
                    "example": "ROUTER"
                },
                "cloudProfileProvisioningStatus": {
                    "type": "string",
                    "example": "PROVISIONED"
                },
                "connectionStatus": {
                    "type": "string"
                },
                "connectionUuid": {
                    "type": "string"
                },
                "deviceName": {
                    "type": "string",
                    "description": "Name of the device.",
                    "example": "CSR-Device01"
                },
                "deviceTypeCode": {
                    "type": "string",
                    "description": "Device type code.",
                    "example": "CSR1000V"
                },
                "deviceUUID": {
                    "type": "string",
                    "description": "Unique Id of the device.",
                    "example": "9ea5a0e4-2bf7-45c2-9aa7-e846a8cd5560"
                },
                "interfaceId": {
                    "type": "string",
                    "example": "123"
                },
                "interfaceOverlayStatus": {
                    "type": "string",
                    "example": "PROVISIONED"
                },
                "interfaceUUID": {
                    "type": "string",
                    "description": "Unique Id of the interface used to link the device.",
                    "example": "6d5b942a-429e-494e-87e0-993845951cf"
                },
                "ipAssigned": {
                    "type": "string",
                    "description": "Assigned IP address of the device.",
                    "example": "10.0.0.2/27"
                },
                "networkDetails": {
                    "$ref": "#/definitions/JsonNode"
                },
                "status": {
                    "type": "string",
                    "description": "Status of the device.",
                    "example": "PROVISIONING"
                },
                "throughput": {
                    "type": "string",
                    "description": "Throughput of the device.",
                    "example": "500"
                },
                "throughputUnit": {
                    "type": "string",
                    "description": "Throughput unit of the device.",
                    "example": "Mbps"
                },
                "vxlan": {
                    "type": "string",
                    "example": "123"
                }
            }
        },
        "JsonNode": {
            "type": "object",
            "properties": {
                "array": {
                    "type": "boolean"
                },
                "bigDecimal": {
                    "type": "boolean"
                },
                "bigInteger": {
                    "type": "boolean"
                },
                "binary": {
                    "type": "boolean"
                },
                "boolean": {
                    "type": "boolean"
                },
                "containerNode": {
                    "type": "boolean"
                },
                "double": {
                    "type": "boolean"
                },
                "float": {
                    "type": "boolean"
                },
                "floatingPointNumber": {
                    "type": "boolean"
                },
                "int": {
                    "type": "boolean"
                },
                "integralNumber": {
                    "type": "boolean"
                },
                "long": {
                    "type": "boolean"
                },
                "missingNode": {
                    "type": "boolean"
                },
                "nodeType": {
                    "type": "string",
                    "enum": [
                        "ARRAY",
                        "BINARY",
                        "BOOLEAN",
                        "MISSING",
                        "NULL",
                        "NUMBER",
                        "OBJECT",
                        "POJO",
                        "STRING"
                    ]
                },
                "null": {
                    "type": "boolean"
                },
                "number": {
                    "type": "boolean"
                },
                "object": {
                    "type": "boolean"
                },
                "pojo": {
                    "type": "boolean"
                },
                "short": {
                    "type": "boolean"
                },
                "textual": {
                    "type": "boolean"
                },
                "valueNode": {
                    "type": "boolean"
                }
            }
        },
        "LinkInfo": {
            "type": "object",
            "properties": {
                "accountNumber": {
                    "type": "string",
                    "description": "Account number. Either an account number or an accountreferenceId is required to create a link group.",
                    "example": 345678
                },
                "throughput": {
                    "type": "string",
                    "example": "1000",
                    "description": "Metro Throughput."
                },
                "throughputUnit": {
                    "type": "string",
                    "example": "Mbps",
                    "description": "Throughput unit."
                },
                "sourceMetroCode": {
                    "type": "string",
                    "example": "SY",
                    "description": "Source metro code."
                },
                "sourceZoneCode": {
                    "type": "string",
                    "example": "Zone1",
                    "description": "Source zone code."
                },
                "destinationMetroCode": {
                    "type": "string",
                    "example": "SY",
                    "description": "Destination metro code."
                },
                "destinationZoneCode": {
                    "type": "string",
                    "example": "Zone2",
                    "description": "Destination metro code."
                }
            }
        },
        "LinkDeviceInfo": {
            "type": "object",
            "required": [
                "deviceUuid"
            ],
            "description": "Unique Id of a device.",
            "properties": {
                "asn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 25658,
                    "description": "The ASN number of the device. The request will fail if you provide a new ASN for a device that already has an ASN."
                },
                "deviceUuid": {
                    "type": "string",
                    "example": "70754e55-a064-40c3-a911-6dc1f14b96fd",
                    "description": "device"
                },
                "interfaceId": {
                    "type": "integer",
                    "example": 6,
                    "description": "Any available interface of the device."
                }
            }
        },
        "DeviceLinkGroupResponse": {
            "type": "object",
            "properties": {
                "uuid": {
                    "type": "string",
                    "example": "a5d9182d-c529-451d-b137-3742d5a742ce"
                }
            }
        },
        "DeviceLinkGroupDto": {
            "type": "object",
            "properties": {
                "accountName": {
                    "type": "string",
                    "description": "Account name.",
                    "example": "Samsung"
                },
                "createdBy": {
                    "type": "string",
                    "description": "Created by username.",
                    "example": "nfv-sit1"
                },
                "createdDate": {
                    "type": "string",
                    "description": "Created date.",
                    "example": "2019-09-15T10:30:31.387Z"
                },
                "groupName": {
                    "type": "string",
                    "description": "Group name.",
                    "example": "vik-chain"
                },
                "id": {
                    "type": "integer",
                    "format": "int64",
                    "example": 1130
                },
                "lastUpdatedBy": {
                    "type": "string",
                    "example": "reg2-acc1"
                },
                "lastUpdatedDate": {
                    "type": "string",
                    "example": "2019-09-16T10:30:31.387Z"
                },
                "metroDevices": {
                    "type": "array",
                    "description": "An array of metros and the devices in the metros belonging to the group.",
                    "items": {
                        "$ref": "#/definitions/MetroDeviceInfo"
                    }
                },
                "source": {
                    "type": "string",
                    "example": "API"
                },
                "status": {
                    "type": "string",
                    "description": "Status of the device.",
                    "example": "PROVISIONING"
                },
                "subnet": {
                    "type": "string",
                    "description": "Subnet of the link group.",
                    "example": "10.0.0.0/27"
                },
                "uuid": {
                    "type": "string",
                    "description": "Unique Id of the linked group.",
                    "example": "6ea5a0e4-2bf7-45c2-9aa7-e846a8cd5567"
                }
            }
        },
        "EquinixConfiguredConfig": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "example": "EQUINIX-CONFIGURED",
                    "description": "Whether the device is EQUINIX-CONFIGURED or SELF-MANAGED."
                },
                "licenseOptions": {
                    "type": "object",
                    "properties": {
                        "SUB": {
                            "type": "object",
                            "$ref": "#/definitions/licenseOptionsConfig"
                        },
                        "BYOL": {
                            "type": "object",
                            "$ref": "#/definitions/licenseOptionsConfig"
                        }
                    }
                },
                "supportedServices": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SupportedServicesConfig"
                    }
                },
                "additionalFields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/AdditionalFieldsConfig"
                    }
                },
                "clusteringDetails": {
                    "type": "object",
                    "$ref": "#/definitions/ClusteringDetails"
                }
            }
        },
        "SelfConfiguredConfig": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "example": "SELF-CONFIGURED",
                    "description": "Whether the device is EQUINIX-CONFIGURED or SELF-MANAGED."
                },
                "licenseOptions": {
                    "type": "object",
                    "properties": {
                        "SUB": {
                            "type": "object",
                            "items": {
                                "$ref": "#/definitions/licenseOptionsConfig"
                            }
                        },
                        "BYOL": {
                            "type": "object",
                            "items": {
                                "$ref": "#/definitions/licenseOptionsConfig"
                            }
                        }
                    }
                },
                "supportedServices": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/SupportedServicesConfig"
                    }
                },
                "additionalFields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/AdditionalFieldsConfig"
                    }
                },
                "defaultAcls": {
                    "type": "object",
                    "$ref": "#/definitions/DefaultAclsConfig"
                },
                "clusteringDetails": {
                    "type": "object",
                    "$ref": "#/definitions/ClusteringDetails"
                }
            }
        },
        "ClusteringDetails": {
            "type": "object",
            "properties": {
                "clusteringEnabled": {
                    "type": "boolean",
                    "description": "Whether this device management type supports clustering."
                },
                "maxAllowedNodes": {
                    "type": "integer",
                    "description": "The number of nodes you can have for a cluster device."
                }
            }
        },
        "DefaultAclsConfig": {
            "type": "object",
            "properties": {
                "dnsServers": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "description": "An array of dns servers.",
                        "example": "8.8.8.8"
                    }
                },
                "ntpServers": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "STD",
                        "description": "Software packages that are compatible with this service."
                    }
                }
            }
        },
        "AdditionalFieldsConfig": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The name of field."
                },
                "required": {
                    "type": "boolean",
                    "description": "Whether or not the field is required at the time of device creation."
                },
                "isSameValueAllowedForPrimaryAndSecondary": {
                    "type": "boolean",
                    "description": "Whether or not you need two distinct values for primary and secondary devices at the time of device creation. This field is only useful for HA devices."
                }
            }
        },
        "SupportedServicesConfig": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The name of supported service."
                },
                "required": {
                    "type": "boolean",
                    "description": "Whether or not this supported service is a required input at the time of device creation."
                },
                "packageCodes": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "STD",
                        "description": "Software packages that are compatible with this service."
                    }
                },
                "supportedForClustering": {
                    "type": "boolean",
                    "description": "Whether the service is available for cluster devices."
                }
            }
        },
        "licenseOptionsConfig": {
            "type": "object",
            "properties": {
                "type": {
                    "type": "string",
                    "description": "The type of the license."
                },
                "name": {
                    "type": "string",
                    "description": "The name of the license."
                },
                "fileUploadSupportedCluster": {
                    "type": "boolean",
                    "description": "Whether you can upload a license file for cluster devices."
                },
                "cores": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/CoresConfig",
                        "description": "An array that has all the cores available for a license type."
                    }
                }
            }
        },
        "CoresConfig": {
            "type": "object",
            "properties": {
                "core": {
                    "type": "integer",
                    "example": 4,
                    "description": "The number of cores."
                },
                "memory": {
                    "type": "integer",
                    "example": 4,
                    "description": "The amount of memory."
                },
                "unit": {
                    "type": "string",
                    "example": "GB",
                    "description": "The unit of memory."
                },
                "flavor": {
                    "type": "string",
                    "example": "Small",
                    "description": "Small, medium or large."
                },
                "packageCodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/PackageCodes"
                    },
                    "description": "An array that has all the software packages and throughput options."
                },
                "supported": {
                    "type": "boolean",
                    "description": "Whether or not this core is supported."
                }
            }
        },
        "PackageCodes": {
            "type": "object",
            "properties": {
                "packageCode": {
                    "type": "string",
                    "description": "The type of package.",
                    "example": "APPX"
                },
                "excludedVersions": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "18.4R2-S1.4"
                    }
                },
                "excludedClusterVersions": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "18.4R2-S1.4"
                    }
                },
                "throughputs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ThroughputConfig"
                    }
                },
                "supported": {
                    "type": "boolean",
                    "description": "Whether this software package is supported."
                }
            }
        },
        "ThroughputConfig": {
            "type": "object",
            "properties": {
                "supported": {
                    "type": "boolean",
                    "description": "Whether this throughput is supported."
                },
                "throughput": {
                    "type": "string",
                    "description": "Throughput."
                },
                "throughputUnit": {
                    "type": "string",
                    "description": "Throughput unit."
                }
            }
        },
        "VendorConfig": {
            "type": "object",
            "properties": {
                "siteId": {
                    "type": "string",
                    "example": 567,
                    "description": "Physical location within the Viptela overlay network, such as a branch office, or a campus (relevant only for Cisco SDWANs)"
                },
                "systemIpAddress": {
                    "type": "string",
                    "description": "IP assigned to CSRSDWAN router and vSmart controller (relevant only for Cisco SDWANs)",
                    "example": "192.164.0.0"
                },
                "licenseKey": {
                    "type": "string",
                    "example": "6735-vwe64568-6a91-4112-8734-bea12d91f7y7"
                },
                "licenseSecret": {
                    "type": "string",
                    "example": "h5j0i45e83324pblbfca764532c4a640e7801f0"
                },
                "localId": {
                    "type": "string",
                    "example": "branch1@example.com"
                },
                "remoteId": {
                    "type": "string",
                    "example": "companyController1@example.com"
                },
                "controller1": {
                    "type": "string",
                    "example": "54.219.248.29"
                },
                "controller2": {
                    "type": "string",
                    "example": "54.177.220.115"
                },
                "serialNumber": {
                    "type": "string",
                    "example": 4545454
                },
                "adminPassword": {
                    "type": "string",
                    "example": 5678909
                },
                "activationKey": {
                    "type": "string",
                    "example": "GJUK-JM2X-59BJ-2TDJ"
                },
                "controllerFqdn": {
                    "type": "string",
                    "example": "demo.velocloud.net"
                },
                "rootPassword": {
                    "type": "string",
                    "example": "myPassw0rd!"
                },
                "accountName": {
                    "type": "string",
                    "example": "accountName",
                    "description": "The name of account."
                },
                "hostname": {
                    "type": "string",
                    "example": "hostName",
                    "description": "The host name."
                },
                "accountKey": {
                    "type": "string",
                    "example": "Primary Account Key1",
                    "description": "The account key."
                },
                "applianceTag": {
                    "type": "string",
                    "example": "applianceTag",
                    "description": "The appliance tag."
                }
            }
        },
        "VirtualDeviceInternalPatchRequestDto": {
            "type": "object",
            "properties": {
                "notifications": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "example": "test1@example.com"
                    }
                },
                "termLength": {
                    "type": "integer",
                    "description": "Term length in months. Please keep in mind that you cannot downgrade the term length.",
                    "example": 4
                },
                "virtualDeviceName": {
                    "type": "string",
                    "description": "Virtual device name. This should be minimum 3 and maximum 50 characters long.",
                    "example": "RCiscoSTROY"
                },
                "clusterName": {
                    "type": "string",
                    "description": "Cluster name. This should be minimum 3 and maximum 50 characters long.",
                    "example": "myCluster0123"
                },
                "status": {
                    "type": "string",
                    "description": "Status of the device",
                    "example": "PROVISIONED"
                }
            }
        },
        "VirtualDeviceCreateResponseDto": {
            "type": "object",
            "properties": {
                "secondaryUuid": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string",
                    "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
                }
            }
        }
    },
    "parameters": {
        "authorizationHeader": {
            "name": "Authorization",
            "in": "header",
            "description": "The OAuth Bearer token. Please add the prefix 'Bearer ' before the token.",
            "type": "string",
            "required": true,
            "x-prefix": "Bearer "
        }
    }
}