UNPKG

@itentialopensource/adapter-drivenets_networkcloud

Version:

This adapter integrates with system described as: drivenetsNetworkCloud+Api.

1,566 lines (1,565 loc) 94.9 kB
{ "openapi": "3.0.0", "paths": { "/network-cloud/login": { "post": { "summary": "Log into the Self Service Portal", "operationId": "AppController_login", "parameters": [ { "$ref": "#/components/parameters/x-trace-id" }, { "$ref": "#/components/parameters/x-request-id" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserLoginDTO" } } } }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessToken" } } } }, "401": { "description": "Unauthorized" } }, "tags": [ "Log in" ], "description": "Use the credentials provided to log into the Self Service Portal." } }, "/refresh-token": { "get": { "summary": "Retrieve a New Access Token", "operationId": "AppController_refreshToken", "parameters": [ { "$ref": "#/components/parameters/x-trace-id" }, { "$ref": "#/components/parameters/x-request-id" } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshedToken" } } } }, "401": { "description": "Access token is missing or invalid" } }, "security": [ { "bearer": [] } ], "tags": [ "Log in" ], "description": "Sends a request to Network Cloud+ to generate a new access token." } }, "/locations": { "get": { "operationId": "getLocations", "summary": "Retrieve Services for each PoP Location", "parameters": [ { "$ref": "#/components/parameters/x-trace-id" }, { "$ref": "#/components/parameters/x-request-id" }, { "name": "version", "required": true, "description": "The API version.", "in": "path", "example": "v1", "schema": { "type": "string", "enum": [ "v1", "v2", "v3", "v4" ] } } ], "responses": { "200": { "description": "Services per location", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicesPerLocationResponse" } } } }, "401": { "description": "Access token is missing or invalid" }, "403": { "description": "Service information error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Service not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal server error" } }, "tags": [ "Point of Presence (PoP) Services" ], "description": "Retrieve a list of all PoPs and the services available at each location." } }, "/locations/{location}": { "get": { "operationId": "getLocation", "summary": "Retrieve Services for a Specific PoP", "parameters": [ { "$ref": "#/components/parameters/x-trace-id" }, { "$ref": "#/components/parameters/x-request-id" }, { "name": "location", "required": true, "in": "path", "example": "LAXCA", "schema": {} }, { "name": "version", "required": true, "description": "The API version.", "in": "path", "example": "v1", "schema": { "type": "string", "enum": [ "v1", "v2", "v3", "v4" ] } } ], "responses": { "200": { "description": "Services per location information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicesPerLocationResponse" } } } }, "401": { "description": "Access token is missing or invalid" }, "403": { "description": "Service information error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Service not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "Internal server error" } }, "tags": [ "Point of Presence (PoP) Services" ], "description": "Retrieve a list of the services available at a specific POP location." } }, "/": { "post": { "operationId": "postServiceItem", "summary": "Add a Service", "parameters": [ { "$ref": "#/components/parameters/x-trace-id" }, { "$ref": "#/components/parameters/x-request-id" }, { "$ref": "#/components/parameters/x-account-id" }, { "name": "version", "required": true, "description": "The API version.", "in": "path", "example": "v1", "schema": { "type": "string", "enum": [ "v1", "v2", "v3", "v4" ] } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateServiceBodyRequest" } } } }, "responses": { "202": { "description": "Service configuration received successfully, config initiated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceBodyResponse" } } } }, "400": { "description": "Failed to add service", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Access token is missing or invalid" }, "500": { "description": "Internal server error" } }, "tags": [ "Services" ], "description": "The services you can add:\n\n- **Equinix Connect** - Creates a connection between Network Cloud+ and the customer's CPE in the Equinix network.\n\n- **Internet Gateway** - Connects a customer to the internet.\n\n- **Internet Service Provider** - Connects the internet gateway to an ISP.\n\nCombining one or more atomic services and then adding a policy create a solution. For example, the four atomic services above and several policies form the Internet Connect solution.\n\nThe response includes a unique service ID named 'ID' that references the specific service and its customer. You must save this ID to modify or delete a service." } }, "/{businessSid}": { "put": { "operationId": "putServiceItem", "summary": "Update a Service", "parameters": [ { "$ref": "#/components/parameters/x-trace-id" }, { "$ref": "#/components/parameters/x-request-id" }, { "$ref": "#/components/parameters/x-account-id" }, { "name": "businessSid", "required": true, "description": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.", "in": "path", "example": "34314231-3425423-123f23-23a2g42", "schema": {} }, { "name": "version", "required": true, "description": "The API version.", "in": "path", "example": "v1", "schema": { "type": "string", "enum": [ "v1", "v2", "v3", "v4" ] } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceBodyRequest" } } } }, "responses": { "202": { "description": "Service configuration received successfully, config initiated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceBodyResponse" } } } }, "204": { "description": "Service already configured" }, "400": { "description": "Failed to configure service", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Access token is missing or invalid" }, "423": { "description": "Service is locked. configuration in progress", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourceBusyResponse" } } } }, "500": { "description": "Internal server error" } }, "tags": [ "Services" ] }, "delete": { "operationId": "deleteServiceItem", "summary": "Delete a Service", "parameters": [ { "$ref": "#/components/parameters/x-trace-id" }, { "$ref": "#/components/parameters/x-request-id" }, { "$ref": "#/components/parameters/x-account-id" }, { "name": "businessSid", "required": true, "description": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.", "in": "path", "example": "34314231-3425423-123f23-23a2g42", "schema": {} }, { "name": "version", "required": true, "description": "The API version.", "in": "path", "example": "v1", "schema": { "type": "string", "enum": [ "v1", "v2", "v3", "v4" ] } } ], "responses": { "200": { "description": "Service deleted successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteServiceResponse" } } } }, "401": { "description": "Access token is missing or invalid" }, "403": { "description": "Failed to delete service", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Service not found" }, "500": { "description": "Internal server error" } }, "tags": [ "Services" ], "description": "Delete all services that form the business service ID." }, "get": { "operationId": "getServiceItem", "summary": "Retrieve Service Configuration", "parameters": [ { "name": "businessSid", "required": true, "description": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.", "in": "path", "example": "34314231-3425423-123f23-23a2g42", "schema": {} }, { "name": "version", "required": true, "description": "The API version.", "in": "path", "example": "v1", "schema": { "type": "string", "enum": [ "v1", "v2", "v3", "v4" ] } } ], "responses": { "200": { "description": "Service information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceBodyRequest" } } } }, "401": { "description": "Access token is missing or invalid" }, "403": { "description": "Error: Service info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Service not found" }, "500": { "description": "Internal server error" } }, "tags": [ "Services" ] } }, "/{businessSid}/state": { "get": { "operationId": "getServiceItemState", "summary": "Retrieve Service Operational State", "parameters": [ { "name": "businessSid", "required": true, "description": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.", "in": "path", "example": "34314231-3425423-123f23-23a2g42", "schema": {} }, { "name": "version", "required": true, "description": "The API version.", "in": "path", "example": "v1", "schema": { "type": "string", "enum": [ "v1", "v2", "v3", "v4" ] } } ], "responses": { "200": { "description": "Service state", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetServiceStateResponse" } } } }, "401": { "description": "Access token is missing or invalid" }, "403": { "description": "Service state error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Service not found" }, "500": { "description": "Internal server error" } }, "tags": [ "Service State" ], "description": "Get the operational state of a particular business service ID." } }, "/{businessSid}/monitoring": { "get": { "operationId": "getServiceMonitoring", "summary": "Retrieve Service monitoring data", "parameters": [ { "name": "businessSid", "required": true, "description": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.", "in": "path", "example": "34314231-3425423-123f23-23a2g42", "schema": {} }, { "name": "version", "required": true, "description": "The API version.", "in": "path", "example": "v1", "schema": { "type": "string", "enum": [ "v1", "v2", "v3", "v4" ] } } ], "responses": { "200": { "description": "Service monitoring data", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetServiceMonitoringResponse" } } } }, "401": { "description": "Access token is missing or invalid" }, "403": { "description": "Service state error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "Service not found" }, "500": { "description": "Internal server error" } }, "tags": [ "Service State" ] } }, "/serviceNode/command": { "post": { "operationId": "showCommand", "summary": "Show Command", "parameters": [ { "name": "version", "required": true, "description": "The API version.", "in": "path", "example": "v1", "schema": { "type": "string", "enum": [ "v1", "v2", "v3", "v4" ] } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ShowCommandBodyRequest" } } } }, "responses": { "200": { "description": "Show command response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommandResponse" } } } }, "400": { "description": "Show command response failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "401": { "description": "Access token is missing or invalid" }, "500": { "description": "Internal server error" } }, "tags": [ "Show Command" ], "description": "Show commands display information about the system and system configuration, useful for troubleshooting. Information about the show commands can be found in DriveNets Documentation portal." } } }, "info": { "title": "DriveNets Network Cloud+ API", "description": "API definitions for programmatic access to DriveNets Network Cloud+. The API calls are modelled after, and reflected in the Self-Service Portal User Interface.\n\nYou receive your username and password from DriveNets. The credentials for the API and the SSP are the same. When you first sign up with the SSP, a POST API request (/auth/login) is sent with the following payload:\n\n {\"username\":\"user@company.com\",\"password\":\"mypass\"}\n\nWhere “user@company.com” and “mypass” are the email address and password you provided during sign up.\n\nThe API call returns a token value. This is the authorization token for your account. This token is sent in the header of all API requests, as follows:\n\n Authorization: Bearer <token-value>\n\nThe REST API enables you to interact with the DriveNets Network Cloud+ systems to provision services for your customers from your server-side applications.\n### Base URL\nAll APIs are served over HTTPS and all the URLs referenced in the API documentation have the following base:\n\n https://:domain/network-cloud/v1/:resource/\n\nWhere:\n\n - domain - refers to the ISP Orchestration Gateway (e.g., portal.drivenets.net)\n\n - resource - refers to the resource on which the API call is made. A resource can be:\n\n - services\n\n - config\n\n - function\n\n - policy\n\n - version - refers to the API version.", "version": "1.0", "contact": {} }, "tags": [], "servers": [ { "url": "https://portal.drivenets.net" } ], "components": { "parameters": { "x-trace-id": { "name": "x-trace-id", "description": "An optional troubleshooting header that tracks a request to /from your API. It references multiple APIs in a configuration sequence. The ID transfers the request in the response body to enable you to view if any changes have occurred. You can only use hyphens and alphanumeric characters, for example -, a-z, A-Z, and 0-9.", "required": false, "in": "header", "example": "34314231-3425423-123f23-23a2g42", "schema": {} }, "x-request-id": { "name": "x-request-id", "description": "An optional troubleshooting header. A unique ID is passed to the server in the API call. The server includes that ID in every log created. It enables the server operator to easily search for a specific request in the log information using the unique ID instead of cross referencing timestamps and IP addresses when troubleshooting. You can only use hyphen and alphanumeric characters, for example -, a-z, A-Z, and 0-9.", "required": false, "in": "header", "example": "34314231-3425423-123f23-23a2g42", "schema": {} }, "x-account-id": { "name": "x-account-id", "description": "A unique ID issued by the Service Provider to identify a customer. You can only use hyphen and alphanumeric characters, for example -, a-z, A-Z, and 0-9.", "required": false, "in": "header", "example": "34314231-3425423-123f23-23a2g42", "schema": {} } }, "schemas": { "IPv4_Address": { "type": "object", "properties": { "ipv4Address": { "type": "string", "description": "An IP v4 address." }, "ipv4Prefix": { "type": "integer", "description": "The prefix of the address (CIDR)." } } }, "IPv6_Address": { "type": "object", "properties": { "ipv6Address": { "type": "string", "description": "An IP v6 address." }, "ipv6Prefix": { "type": "integer", "description": "The prefix of the address (CIDR)" } } }, "IP_Address": { "oneOf": [ { "$ref": "#/components/schemas/IPv4_Address" }, { "$ref": "#/components/schemas/IPv6_Address" } ] }, "Provider_Independent_Address": { "type": "array", "maxItems": 2, "description": "Public or private IP addresses provided by the customer. Two sets of addresses must be created for redundancy.", "items": { "type": "object", "properties": { "ipv4IndependentAddress": { "$ref": "#/components/schemas/IPv4_Address" }, "ipv6IndependentAddress": { "$ref": "#/components/schemas/IPv6_Address" }, "connectionPriority": { "type": "string", "description": "For redundancy select whether this IP address is a primary or secondary type.", "enum": [ "primary", "secondary" ] } } } }, "Provider_Aggregated_Address": { "type": "object", "description": "Private IP addresses provided from DriveNets' IP address pool. The subnet allocated is the same for all connections.", "properties": { "ipv4AggregatedAddress": { "type": "object", "properties": { "prefixSize": { "type": "integer", "description": "Define the prefix length for the user address.", "minimum": 24, "maximum": 30 } } }, "ipv6AggregatedAddress": { "type": "object", "properties": { "prefixSize": { "type": "integer", "description": "Define the prefix length for the user address.", "minimum": 64, "maximum": 126 } } } } }, "IG_Provider_Independent_Address": { "type": "object", "description": "Public or private IP addresses provided by the customer. Two sets of addresses must be created for redundancy.", "properties": { "ipv4IndependentAddress": { "$ref": "#/components/schemas/IPv4_Address" }, "ipv6IndependentAddress": { "$ref": "#/components/schemas/IPv6_Address" } } }, "IG_Provider_Aggregated_Address": { "type": "object", "description": "Private IP addresses provided from DriveNets' IP address pool. The subnet allocated is the same for all connections.", "properties": { "ipv4AggregatedAddress": { "type": "object", "properties": { "prefixSize": { "type": "integer", "description": "Define prefix length for the user address", "minimum": 24, "maximum": 30 } } }, "ipv6AggregatedAddress": { "type": "object", "properties": { "prefixSize": { "type": "integer", "description": "Define prefix length for the user address", "minimum": 64, "maximum": 126 } } } } }, "Azure_Provider_Private_Address": { "type": "array", "maxItems": 2, "description": "Private address provided by the account", "items": { "type": "object", "properties": { "ipv4PrivateAddress": { "$ref": "#/components/schemas/IPv4_Address" }, "ipv6ProviderCustomAddress": { "$ref": "#/components/schemas/IPv6_Address" }, "connectionPriority": { "type": "string", "enum": [ "primary", "secondary" ] } } } }, "AtomicServiceParams": { "oneOf": [ { "$ref": "#/components/schemas/L3VpnParams" } ] }, "CircuitParams": { "oneOf": [ { "$ref": "#/components/schemas/EquinixConnectParams" }, { "$ref": "#/components/schemas/InternetGatewayParams" }, { "$ref": "#/components/schemas/InternetServiceProviderParams" }, { "$ref": "#/components/schemas/AzureConnectParams" } ] }, "CircuitResponseParams": { "oneOf": [ { "$ref": "#/components/schemas/InternetGatewayParams" }, { "$ref": "#/components/schemas/InternetServiceProviderParams" }, { "$ref": "#/components/schemas/AzureConnectParams" }, { "$ref": "#/components/schemas/EquinixConnectResponseParams" } ] }, "FunctionParams": { "type": "object", "properties": { "location": { "type": "string" }, "direction": { "$ref": "#/components/schemas/FunctionDirection" }, "functionOrder": { "type": "integer", "default": 1, "minimum": 1, "maximum": 1 }, "params": { "oneOf": [ { "$ref": "#/components/schemas/NatParams" } ] } } }, "CreateServiceBodyRequest": { "type": "object", "properties": { "businessSid": { "type": "string", "description": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.", "example": "34314231-3425423-123f23-23a2g42" }, "businessSidDescription": { "type": "string", "description": "Business id description", "example": "vADI service of Pepsi" }, "atomicServices": { "type": "array", "description": "Entries for atomic services", "items": { "type": "object", "properties": { "atomicServiceTransactionTag": { "$ref": "#/components/schemas/TransactionTag" }, "atomicServiceType": { "type": "string", "description": "Type of the atomic service.", "enum": [ "EQUINIX_CONNECT", "INTERNET_GATEWAY", "INTERNET_SERVICE_PROVIDER", "AZURE_CONNECT" ] }, "atomicServiceParams": { "$ref": "#/components/schemas/AtomicServiceParams" }, "circuits": { "type": "array", "description": "Entries for atomic service circuits", "items": { "type": "object", "properties": { "circuitTransactionTag": { "type": "string", "description": "user provided circuit tag", "example": "MyCircuit" }, "params": { "$ref": "#/components/schemas/CircuitParams" } } } } }, "required": [ "atomicServiceTransactionTag", "atomicServiceType" ] } }, "policies": { "type": "array", "description": "Entries for policies", "items": { "type": "object", "properties": { "policyTransactionTag": { "type": "string", "description": "user provided policy tag" }, "policyParams": { "$ref": "#/components/schemas/CreatePolicyBodyRequest" }, "functions": { "type": "array", "description": "Entries for functions", "items": { "type": "object", "properties": { "functionTransactionTag": { "type": "string", "description": "user provided function tag" }, "functionType": { "type": "string", "description": "Type of function", "example": "NAT" }, "functionParams": { "$ref": "#/components/schemas/FunctionParams" } }, "required": [ "functionType", "functionParams" ] } } } } } }, "required": [ "businessSid", "atomicServices" ] }, "ServiceBodyRequest": { "type": "object", "properties": { "businessSidDescription": { "type": "string", "description": "Business id description", "example": "vADI service of Pepsi" }, "atomicServices": { "type": "array", "description": "Entries for atomic services", "items": { "type": "object", "properties": { "atomicServiceId": { "$ref": "#/components/schemas/componentId", "description": "Unique atomic service ID issued by the Network Cloud+ to identify an atomic service." }, "atomicServiceTransactionTag": { "$ref": "#/components/schemas/TransactionTag" }, "atomicServiceType": { "type": "string", "description": "Type of the atomic service.", "enum": [ "EQUINIX_CONNECT", "INTERNET_GATEWAY", "INTERNET_SERVICE_PROVIDER", "AZURE_CONNECT" ] }, "atomicServiceParams": { "$ref": "#/components/schemas/AtomicServiceParams" }, "circuits": { "type": "array", "description": "Entries for atomic service circuits", "items": { "type": "object", "properties": { "circuitId": { "type": "string", "description": "Unique circuit ID issued by the Network Cloud+ to identify an circuit." }, "circuitTransactionTag": { "type": "string", "description": "user provided circuit tag", "example": "MyCircuit" }, "params": { "$ref": "#/components/schemas/CircuitParams" } } } } } } }, "policies": { "type": "array", "description": "Entries for policies", "items": { "type": "object", "properties": { "policyId": { "type": "string", "description": "Unique policy ID issued by the Network Cloud+ to identify an policy." }, "policyTransactionTag": { "type": "string", "description": "user provided policy tag" }, "policyParams": { "$ref": "#/components/schemas/PolicyBodyRequest" }, "functions": { "type": "array", "description": "Entries for functions", "items": { "type": "object", "properties": { "functionId": { "type": "string", "description": "Unique function ID issued by the Network Cloud+ to identify an function." }, "functionTransactionTag": { "type": "string", "description": "user provided function tag." }, "functionType": { "type": "string", "description": "Type of function.", "example": "NAT" }, "functionParams": { "$ref": "#/components/schemas/FunctionParams" } } } } } } } } }, "ServiceBodyResponse": { "type": "object", "properties": { "businessSid": { "type": "string", "description": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.", "example": "34314231-3425423-123f23-23a2g42" }, "atomicServices": { "type": "array", "description": "Entries for atomic services", "items": { "type": "object", "properties": { "atomicServiceId": { "$ref": "#/components/schemas/componentId", "description": "Unique atomic service ID issued by the Network Cloud+ to identify an atomic service." }, "atomicServiceTransactionTag": { "$ref": "#/components/schemas/TransactionTag" }, "atomicServiceType": { "type": "string", "description": "Type of the atomic service.", "enum": [ "EQUINIX_CONNECT", "INTERNET_GATEWAY", "INTERNET_SERVICE_PROVIDER", "AZURE_CONNECT" ] }, "atomicServiceParams": { "$ref": "#/components/schemas/AtomicServiceParams" }, "circuits": { "type": "array", "description": "Entries for atomic service circuits", "items": { "type": "object", "properties": { "circuitId": { "type": "string", "description": "Unique circuit ID issued by the Network Cloud+ to identify an circuit." }, "circuitTransactionTag": { "type": "string", "description": "user provided circuit tag", "example": "MyCircuit" }, "params": { "$ref": "#/components/schemas/CircuitResponseParams" } } } } } } }, "policies": { "type": "array", "description": "Entries for policies", "items": { "type": "object", "properties": { "policyId": { "type": "string", "description": "Unique policy ID issued by the Network Cloud+ to identify an policy." }, "policyTransactionTag": { "type": "string", "description": "user provided policy tag" }, "policyParams": { "$ref": "#/components/schemas/PolicyBodyRequest" }, "functions": { "type": "array", "description": "Entries for functions", "items": { "type": "object", "properties": { "functionId": { "type": "string", "description": "Unique function ID issued by the Network Cloud+ to identify an function." }, "functionTransactionTag": { "type": "string", "description": "user provided function tag" }, "functionType": { "type": "string", "description": "Type of the function", "example": "NAT" }, "functionParams": { "$ref": "#/components/schemas/FunctionParams" } } } } } } } } }, "DeleteServiceResponse": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique service ID", "example": "abcdef-abcdef-12345-12345" } }, "required": [ "id" ] }, "EquinixConnectParams": { "type": "object", "properties": { "location": { "type": "string", "description": "Location of the peering location" }, "fabricSubType": { "type": "string", "enum": [ "zSideToken", "serviceProfile" ] }, "bandwidth": { "type": "string", "enum": [ "100mbps", "500mbps", "1gbps", "5gbps", "10gbps" ] }, "isRedundant": { "type": "boolean", "default": false }, "ipAddress": { "type": "object", "properties": { "providerIndependentAddress": { "$ref": "#/components/schemas/Provider_Independent_Address" }, "providerAggregatedAddress": { "$ref": "#/components/schemas/Provider_Aggregated_Address" } } }, "customerIpAddress": { "$ref": "#/components/schemas/Provider_Independent_Address" }, "routing": { "$ref": "#/components/schemas/Routing" }, "description": { "type": "string" } }, "required": [ "location", "bandwidth", "fabricSubType", "ipAddress", "routing" ] }, "EquinixConnectResponseParams": { "type": "object", "properties": { "location": { "type": "string", "description": "Location of the peering location" }, "fabricSubType": { "type": "string", "enum": [ "zSideToken", "serviceProfile" ] }, "bandwidth": { "type": "string", "enum": [ "100mbps", "500mbps", "1gbps", "5gbps", "10gbps" ] }, "isRedundant": { "type": "boolean", "default": false }, "ipAddress": { "type": "object", "properties": { "providerIndependentAddress": { "$ref": "#/components/schemas/Provider_Independent_Address" }, "providerAggregatedAddress": { "$ref": "#/components/schemas/Provider_Aggregated_Address" } } }, "customerIpAddress": { "$ref": "#/components/schemas/Provider_Independent_Address" }, "routing": { "$ref": "#/components/schemas/Routing" }, "description": { "type": "string" }, "authenticationKey": { "type": "string", "description": "Drivenets-assigned authentication key uuid, a 128-bit identifier." }, "serviceProfile": { "type": "string", "description": "Name of Drivenets service profile in Equinix to connect to." } } }, "AzureConnectParams": { "type": "object", "properties": { "sKey": { "type": "string", "description": "The s-key generated by Azure for the ExpressRoute service" }, "bandwidth": { "type": "string", "enum": [ "50mbps", "100mbps", "200mbps", "500mbps", "1gbps", "2gbps", "5gbps", "10gbps" ] }, "location": { "type": "string" }, "ipAddress": { "type": "object", "description": "The IP address to be used for Azure, bpth IPv4 (mask /30) and IPv6 (mask /126) addresses will be allocated from address pool, IPv4 address can be private.", "properties": { "customerPrivateIpAddress": { "$ref": "#/components/schemas/Azure_Provider_Private_Address" }, "providerAggregatedAddress": { "$ref": "#/components/schemas/Provider_Aggregated_Address" } } }, "routing": { "allOf": [ { "$ref": "#/components/schemas/AzureBgpRouting" }, { "$ref": "#/components/schemas/BgpSecret" } ] }, "outboundRoutingPolicy": { "$ref": "#/components/schemas/OutboundRoutingPolicy" }, "inboundRoutingPolicy": { "$ref": "#/components/schemas/InboundRoutingPolicy" } }, "required": [ "sKey", "ipAddress", "routing", "bandwidth", "location" ] }, "InternetGatewayParams": { "type": "object", "properties": { "location": { "type": "string", "description": "Location of the internet gataeway" }, "ipAddress": { "oneOf": [ { "$ref": "#/components/schemas/IG_Provider_Independent_Address" }, { "$ref": "#/components/schemas/IG_Provider_Aggregated_Address" } ] }, "ispRoutingPolicy": { "description": "Control inbound bgp routing policy between ISP and IG", "$ref": "#/components/schemas/InboundRoutingPolicy" }, "internetGatewayRedundancyMode": { "type": "string", "enum": [ "active-active", "active-standby" ] } }, "required": [ "location" ] }, "InternetServiceProviderParams": { "type": "object", "properties": { "location": { "type": "string" }, "bandwidth": { "type": "string", "enum": [ "50mbps", "100mbps", "200mbps", "500mbps", "1gbps", "2gbps", "5gbps", "10gbps" ] }, "provider": { "type": "string", "enum": [ "AT&T" ], "description": "The provider we're connected to" }, "isRedundant": { "type": "boolean", "default": false } },