Introduction

Welcome! This is the API reference, a lexicon of all possible API operations and their parameters. More conceptually and procedurally oriented guides and code samples may be found by visiting the Developer Portal.

Definition

Platform

NetFoundry’s web console and APIs are used to define networks by designing and instantly deploying AppWANs. AppWANs are software defined encrypted overlays capable of dynamically adjusting to meet performance requirements, that define how endpoints are permitted to access services (such as applications) across the Internet and/or existing private networks such as MPLS or SD-WAN deployments. One major benefit of AppWANs is that since they are abstracted above network infrastructure, they are completely service provider and network agnostic.

HTTP verbs

NetFoundry adheres closely to standard HTTP and REST conventions in its use of HTTP verbs.

Verb Usage

GET

Used to retrieve a resource

POST

Used to create a new resource

PUT

Used to update an existing resource, full updates only

DELETE

Used to delete an existing resource

The PATCH method is not used (yet).

HTTP status codes

NetFoundry adheres closely to standard HTTP and REST conventions in its use of HTTP status codes.

Status code Usage

200 OK

The actual response will depend on the request method used. In a GET request, the response will contain an entity corresponding to the requested resource. In a POST request, the response will contain an entity describing or containing the result of the action.

201 Created

The request has been fulfilled and resulted in a new resource being created.

202 Accepted

The request has been accepted and is being processed asynchronously Standard response for successful HTTP requests which invoke back-end services.

204 No Content

The server successfully processed the request, but is not returning any content.

400 Bad Request

The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).

401 Unauthorized

The request lacks valid authentication credentials for the target resource.

403 Forbidden

The request is authenticated with valid credentials however that set of credentials is not authorized to access this resource.

404 Not Found

The requested resource could not be found but may be available again in the future. Subsequent requests by the client are permissible.

Authentication

Authentication is delegated to Auth0. In order to use the API you will need to

  • perform an authentication request to Auth0

  • present the received access token in the Authorization header in every API request

Authentication request

Execute an http request per the example below to present your credentials and receive an access token that will enable you to interact with the API

NETFOUNDRY_API_TOKEN=$( \(1)
  curl \(2)
    --request POST \
    --silent \
    --show-error \
    --header 'content-type: application/json' \
    --data '{
        "client_id":"---redacted----",       (3)
        "client_secret": "---redacted----",  (4)
        "audience":"https://gateway.production.netfoundry.io/",
        "grant_type":"client_credentials"
    }' \
    https://netfoundry-production.auth0.com/oauth/token |\
    jq -r .access_token \(5)
) && echo $NETFOUNDRY_API_TOKEN (6)
1 creates an environment variable NETFOUNDRY_API_TOKEN to hold the token after successful request. The contents of this variable will be used in all subsequent requests
2 this example uses the cURL command to perform the request
3 you will need to insert your actual client ID
4 you will need to insert your actual secret
5 this example uses jq to parse the response from Auth0 and extract the token
6 this line prints the extracted token; it is included for convenience / debugging purposes only

API request using access token

Execute an http request per the example below (e.g. fetch networks). The access token is presented to the API via the Authorization header, which in turn leverages the NETFOUNDRY_API_TOKEN variable used in the previous example to store the extracted access token.

# get networks
curl -iX GET \
  https://gateway.production.netfoundry.io/rest/v1/networks \(1)
  -H "Authorization: Bearer $NETFOUNDRY_API_TOKEN" \(2)
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  --max-time 5
1 the URL used to fetch networks (see also Listing networks)
2 the Authorization header transmits the Bearer token

Resources

Organization

The Organization resource contains networks for a given entity.


Fetching a organization

A GET request fetches a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/organizations/20a6e816-7126-4d5b-9935-76b8dd414be9' -i -X GET \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyUnV0OGQyOVlrcjJNaTlMZXpYcGZ3IiwiaXNzIjoiTmV0Rm91bmRyeSIsInN1YiI6ImIwNTIzZWQyLWQ2ZDctNDc4My05OGZmLTZiNWZiNTRkYTk0NiIsImF1ZCI6ImlvLm5ldGZvdW5kcnkubmV0d29yayIsImlhdCI6MTU5NTM0NzM0MywiZXhwIjoxNTk1MzUwOTQzLCJncmFudHMtc3VwZXIiOiJbXSIsImdyYW50cy1jdXN0b20iOiJbXSIsImdyYW50cy1wdWJsaWMiOiJbXSIsImdyYW50cy1hY3Rpb24iOiJbe1wiaWRcIjpcIjFlZDEzZmYzLTQ3YmItNGViNS1iMzU1LWIxMWUxMWI2ZmU1MlwiLFwibGFzdE1vZGlmaWVkXCI6MTU5NTM0NzM0M31dIiwiZ3JhbnRzLXN0YW5kYXJkIjoiW10ifQ.bMT-W0Rv31DJO5FbPXueEqoMhtj7Cudag7wBOS3aC-T03vMdBiOmz1ytCEqrLwwruSNYKJRU_a2blQ28t1pmplByeroaNJta4CycV39BMTEDepdFeB0e2VaS0ToCELDKYdXCJvwjFa-cVdhJqjbYNTkhZt6oyQvSLvmWwYmdSIt5Y5mUPugK1gb1KgqL5jbEBfVEUqe0dOnxJWl6Yo-RDBbyIJykXsbyDFQS3g5RDLluaYwcKsvyL5jgrna7H2Jkz002oJLSBJ4aHo69nJU6WHLlwEuYHhdgkhFH2NbHRrC9wTpwIQW3hja_1v7aX_hRmEBccHLZQDYHQw7z84NB7Q'

Example response

Path Type Description

id

String

The organization’s id

name

String

The organization’s name

organizationShortName

String

The organization’s key name

mfaRequired

Boolean

Does the organization require mfa for login

zitiEnabled

Boolean

Is Ziti functionality enabled on this organization

billingAccountId

Null

Billing account id

awsAutoScalingGatewayEnabled

Boolean

Are AWS Auto-Scaling Gateways enabled on this organization

defaultAzureVirtualWanId

Null

Default Azure Virtual Wan to use for O365 service overlap checking

createdAt

Null

Record creation time

updatedAt

Null

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

active

Null

Flag indicating if organization is deleted

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 663

{"createdAt":null,"updatedAt":null,"name":"Test Org 01","organizationShortName":"TORG01","mfaRequired":false,"zitiEnabled":false,"awsAutoScalingGatewayEnabled":false,"defaultAzureVirtualWanId":null,"billingAccountId":null,"ownerIdentityId":null,"active":null,"id":"20a6e816-7126-4d5b-9935-76b8dd414be9","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/organizations/20a6e816-7126-4d5b-9935-76b8dd414be9"},"networks":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks"},"azureSubscription":{"href":"https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions?organizationId=20a6e816-7126-4d5b-9935-76b8dd414be9"}}}


Azure Subscription

The Azure Subscription resource contains credential sets and Azure Virtual Wan Sites


Listing Azure Subscriptions

A GET request lists all of the organizations' Azure Subscriptions.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.azureSubscriptions

Array

An array of Azure Subscription resources

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1845

{"_embedded":{"azureSubscriptions":[{"name":"AZ Sub 01","subscriptionId":"e77a671d-6390-4aa2-a1f7-56a6814c9744","tenantId":"042bd869-c49f-4aca-bd05-b6ac1317f744","applicationId":"48dd85db-1019-4a62-999c-92b79faa7444","applicationKey":"bcab5ab5-d2d9-4df4-b9f3-78555e5d1875","organizationId":"84c947b1-c70a-4b76-ac67-546cbc1c2839","ownerIdentityId":null,"createdAt":"2020-07-21T06:02:37.418+00:00","updatedAt":"2020-07-21T16:02:37.418+00:00","id":"384b6d84-5115-44f7-8c53-603d05eeef85","_links":{"organization":{"href":"http://localhost/organizations/feab7385-f000-41ba-aa08-b670f442c50a"},"self":{"href":"http://localhost/azureSubscriptions/384b6d84-5115-44f7-8c53-603d05eeef85"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/384b6d84-5115-44f7-8c53-603d05eeef85/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/384b6d84-5115-44f7-8c53-603d05eeef85/virtualWans"}}},{"name":"AZ Sub 02","subscriptionId":"4614ed3f-03cc-4bb9-9735-360991d6383a","tenantId":"e6f17070-e933-4bd2-836a-d7ae378f8786","applicationId":"3f311c4f-f912-4df7-bf88-8f5bccc2620b","applicationKey":"10e1820d-d6d7-4e54-a7c8-ad4bb5dde1de","organizationId":"135b36ac-a4be-4d93-8fc8-22871c8cf3b0","ownerIdentityId":null,"createdAt":"2020-07-21T06:02:37.418+00:00","updatedAt":"2020-07-21T16:02:37.418+00:00","id":"bf890a39-eca2-40b1-9a71-bedc46bd995a","_links":{"organization":{"href":"http://localhost/organizations/feab7385-f000-41ba-aa08-b670f442c50a"},"self":{"href":"http://localhost/azureSubscriptions/bf890a39-eca2-40b1-9a71-bedc46bd995a"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/bf890a39-eca2-40b1-9a71-bedc46bd995a/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/bf890a39-eca2-40b1-9a71-bedc46bd995a/virtualWans"}}}]},"_links":{"self":{"href":"http://localhost/azureSubscriptions"}}}


Fetching an Azure Subscription

A GET request fetches a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/68a36c87-63fc-45fd-98d8-2b4fab10f5d1' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

The Azure Subscription name

id

String

The Azure Subscription id

subscriptionId

String

The Subscription ID for the Azure Service Principal

tenantId

String

The Tenant ID (Directory ID) for your Azure AD Tenant

applicationId

String

The Application ID for your Azure App Registration

applicationKey

String

The Application Key for your Azure App Registration

organizationId

String

The id of the organization that this subscription is associated to.

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 884

{"name":"Test AZ Subscription 01","subscriptionId":"2a850576-4f0c-4e91-8dd7-99795450bd96","tenantId":"232e6a12-c9a7-4144-ae58-a68d311293a8","applicationId":"e92d3d84-4500-4c64-8b69-7a5ebaeb679f","applicationKey":"0a509b98-28f4-45d4-9226-b613598f95e1","organizationId":"8d1e7257-96a7-4353-aad7-0848b987f25f","ownerIdentityId":null,"createdAt":"2020-07-21T06:02:37.522+00:00","updatedAt":"2020-07-21T16:02:37.522+00:00","id":"68a36c87-63fc-45fd-98d8-2b4fab10f5d1","_links":{"organization":{"href":"http://localhost/organizations/7d0f09fd-e9be-4484-bc62-d4d5583d0090"},"self":{"href":"http://localhost/azureSubscriptions/68a36c87-63fc-45fd-98d8-2b4fab10f5d1"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/68a36c87-63fc-45fd-98d8-2b4fab10f5d1/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/68a36c87-63fc-45fd-98d8-2b4fab10f5d1/virtualWans"}}}


Creating an Azure Subscription

A POST request creates an Azure Subscription.

Request Fields

Path Type Description

name

String

The Azure Subscription name

subscriptionId

String

The Subscription ID for the Azure Service Principal

tenantId

String

The Tenant ID (Directory ID) for your Azure AD Tenant

applicationId

String

The Application ID for your Azure App Registration

applicationKey

String

The Application Key for your Azure App Registration

Example CURL request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test AZ Subscription 02","subscriptionId":"550d0b95-4e3e-42b7-a288-9a835d2965d4","tenantId":"ec68f811-14be-4727-bf2a-b38fc8553980","applicationId":"c8b9971d-22a5-4799-ba29-07d5101cf7e6","applicationKey":"a841b8ff-bb5c-4b7d-a2a9-3c5c08f432f6"}'

Example HTTP request

POST /rest/v1/azureSubscriptions HTTP/1.1
Content-Type: application/json
Content-Length: 251
Host: gateway.production.netfoundry.io

{"name":"Test AZ Subscription 02","subscriptionId":"550d0b95-4e3e-42b7-a288-9a835d2965d4","tenantId":"ec68f811-14be-4727-bf2a-b38fc8553980","applicationId":"c8b9971d-22a5-4799-ba29-07d5101cf7e6","applicationKey":"a841b8ff-bb5c-4b7d-a2a9-3c5c08f432f6"}

Example HTTPie request

$ echo '{"name":"Test AZ Subscription 02","subscriptionId":"550d0b95-4e3e-42b7-a288-9a835d2965d4","tenantId":"ec68f811-14be-4727-bf2a-b38fc8553980","applicationId":"c8b9971d-22a5-4799-ba29-07d5101cf7e6","applicationKey":"a841b8ff-bb5c-4b7d-a2a9-3c5c08f432f6"}' | http POST 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions' \
    'Content-Type:application/json'

Example response

Response Fields

Path Type Description

name

String

The Azure Subscription name

id

String

The Azure Subscription id

subscriptionId

String

The Subscription ID for the Azure Service Principal

tenantId

String

The Tenant ID (Directory ID) for your Azure AD Tenant

applicationId

String

The Application ID for your Azure App Registration

applicationKey

String

The Application Key for your Azure App Registration

organizationId

String

The id of the organization that this subscription is associated to.

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 884

{"name":"Test AZ Subscription 02","subscriptionId":"c9c886f9-8967-466a-874f-f909710fd05f","tenantId":"b1bb45c2-cf52-4b0f-90af-28b4bd0c0ef5","applicationId":"095c0e85-d316-46ea-9570-2301c377d13f","applicationKey":"94cbe5f6-80e1-42ec-8283-3bbdb29c087b","organizationId":"adc60680-0182-44bc-bc8b-aa50639ed2f4","ownerIdentityId":null,"createdAt":"2020-07-21T06:02:37.459+00:00","updatedAt":"2020-07-21T16:02:37.459+00:00","id":"5c20d3e3-f882-41af-a5ca-1d1fc8571402","_links":{"organization":{"href":"http://localhost/organizations/7024e852-9916-42f9-b774-6d21ab1c7a1a"},"self":{"href":"http://localhost/azureSubscriptions/5c20d3e3-f882-41af-a5ca-1d1fc8571402"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/5c20d3e3-f882-41af-a5ca-1d1fc8571402/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/5c20d3e3-f882-41af-a5ca-1d1fc8571402/virtualWans"}}}


Updating an Azure Subscription

A PUT request updates a specific Azure Subscription.

Example CURL request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/a7d3e2dc-675a-4339-9956-9a95b883ab81' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test AZ Subscription 01","subscriptionId":"09442fd5-d17d-4ba6-844e-01ba2fa3aab1","tenantId":"47957003-4cd9-47ee-b7ce-e8ae73451a7f","applicationId":"6a1fc000-5b5f-4e27-be70-1e48e794a6ac","applicationKey":"cf7df3d7-5db6-4ebe-a851-a2f0dc9c0f52","organizationId":null,"ownerIdentityId":null,"createdAt":null,"updatedAt":null,"id":null}'

Example HTTP request

PUT /rest/v1/azureSubscriptions/a7d3e2dc-675a-4339-9956-9a95b883ab81 HTTP/1.1
Content-Type: application/json
Content-Length: 340
Host: gateway.production.netfoundry.io

{"name":"Test AZ Subscription 01","subscriptionId":"09442fd5-d17d-4ba6-844e-01ba2fa3aab1","tenantId":"47957003-4cd9-47ee-b7ce-e8ae73451a7f","applicationId":"6a1fc000-5b5f-4e27-be70-1e48e794a6ac","applicationKey":"cf7df3d7-5db6-4ebe-a851-a2f0dc9c0f52","organizationId":null,"ownerIdentityId":null,"createdAt":null,"updatedAt":null,"id":null}

Example HTTPie request

$ echo '{"name":"Test AZ Subscription 01","subscriptionId":"09442fd5-d17d-4ba6-844e-01ba2fa3aab1","tenantId":"47957003-4cd9-47ee-b7ce-e8ae73451a7f","applicationId":"6a1fc000-5b5f-4e27-be70-1e48e794a6ac","applicationKey":"cf7df3d7-5db6-4ebe-a851-a2f0dc9c0f52","organizationId":null,"ownerIdentityId":null,"createdAt":null,"updatedAt":null,"id":null}' | http PUT 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/a7d3e2dc-675a-4339-9956-9a95b883ab81' \
    'Content-Type:application/json'

Example response

Path Type Description

id

String

The Azure Subscription id

name

String

The Azure Subscription name

subscriptionId

String

The Subscription ID for the Azure Service Principal

tenantId

String

The Tenant ID (Directory ID) for your Azure AD Tenant

applicationId

String

The Application ID for your Azure App Registration

applicationKey

String

The Application Key for your Azure App Registration

organizationId

String

The id of the organization that this subscription is associated to.

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 884

{"name":"Test AZ Subscription 01","subscriptionId":"cdf9684a-0b24-4302-a754-f985eff25482","tenantId":"581cee31-ae40-4e87-9bd4-3ee90f7f39f3","applicationId":"88a24c32-5e72-418d-8460-2a64d8d63d58","applicationKey":"b2f7cd73-97df-47ca-a109-cd6ef9df46af","organizationId":"51eb673f-ece4-440d-bdb8-97f1634e5c08","ownerIdentityId":null,"createdAt":"2020-07-21T06:02:37.494+00:00","updatedAt":"2020-07-21T16:02:37.494+00:00","id":"a7d3e2dc-675a-4339-9956-9a95b883ab81","_links":{"organization":{"href":"http://localhost/organizations/515b432f-695e-45a0-b516-ef3b027c4077"},"self":{"href":"http://localhost/azureSubscriptions/a7d3e2dc-675a-4339-9956-9a95b883ab81"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/a7d3e2dc-675a-4339-9956-9a95b883ab81/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/a7d3e2dc-675a-4339-9956-9a95b883ab81/virtualWans"}}}


Deleting an Azure Subscription

A DELETE request deletes an Azure Subscription.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/87922251-58c9-4305-8b17-34bb5aee1ebf' -i -X DELETE \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001


Certificate Authority

The Certificate Authority resource is for managing and veriyfing third-party CAs.


Listing Certificate Authorities

A GET request lists all of the organizations' Certificate Authorities.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/f4e66cc9-14f2-4d55-9a0d-cd5626390149/cas/' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.cas

Array

An array of Certificate Authority resources

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1495

{"_embedded":{"cas":[{"isAuthEnabled":true,"isOttCaEnrollmentEnabled":true,"isAutoCaEnrollmentEnabled":true,"isVerified":false,"verificationToken":null,"fingerprint":null,"jwt":null,"createdAt":"2020-07-21T16:02:12.172+00:00","updatedAt":"2020-07-21T16:02:12.172+00:00","name":"Test CertificateAuthorityResponse 01","id":"9c083452-be38-4752-adbb-78452a067982","_links":{"self":{"href":"http://localhost/networks/f4e66cc9-14f2-4d55-9a0d-cd5626390149/cas/9c083452-be38-4752-adbb-78452a067982"},"verify":{"href":"http://localhost/networks/f4e66cc9-14f2-4d55-9a0d-cd5626390149/cas/9c083452-be38-4752-adbb-78452a067982/verify"},"network":{"href":"http://localhost/networks/f4e66cc9-14f2-4d55-9a0d-cd5626390149"}}},{"isAuthEnabled":true,"isOttCaEnrollmentEnabled":true,"isAutoCaEnrollmentEnabled":true,"isVerified":false,"verificationToken":null,"fingerprint":null,"jwt":null,"createdAt":"2020-07-21T16:02:12.172+00:00","updatedAt":"2020-07-21T16:02:12.172+00:00","name":"Test CertificateAuthorityResponse 02","id":"0bf7f06e-ecc7-4dd1-96e3-e6daf310b581","_links":{"self":{"href":"http://localhost/networks/f4e66cc9-14f2-4d55-9a0d-cd5626390149/cas/0bf7f06e-ecc7-4dd1-96e3-e6daf310b581"},"verify":{"href":"http://localhost/networks/f4e66cc9-14f2-4d55-9a0d-cd5626390149/cas/0bf7f06e-ecc7-4dd1-96e3-e6daf310b581/verify"},"network":{"href":"http://localhost/networks/f4e66cc9-14f2-4d55-9a0d-cd5626390149"}}}]},"_links":{"self":{"href":"http://localhost/networks/f4e66cc9-14f2-4d55-9a0d-cd5626390149/cas"}}}


Fetching a Certificate Authority

A GET request fetches a specific Certificate Authority.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/ee10e166-c11a-4111-b8c3-8c497b1b6402/cas/353872cc-8f5e-4cda-a36d-af6f65e1967b' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

The CA’s name

id

String

The CA’s id

isAuthEnabled

Boolean

Enable Auth for the CA

isAutoCaEnrollmentEnabled

Boolean

Enable Auto CA enrollment

isOttCaEnrollmentEnabled

Boolean

Enable One-Time Token CA enrollment

isVerified

Boolean

Is the CA verified

verificationToken

Null

CA Verification token

fingerprint

Null

Fingerprint of the CA

jwt

Null

JWT for auto-enrolling identities

createdAt

String

Record creation time

updatedAt

String

Record last modification time

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 687

{"isAuthEnabled":true,"isOttCaEnrollmentEnabled":true,"isAutoCaEnrollmentEnabled":true,"isVerified":false,"verificationToken":null,"fingerprint":null,"jwt":null,"createdAt":"2020-07-21T16:02:12.142+00:00","updatedAt":"2020-07-21T16:02:12.142+00:00","name":"Test CertificateAuthorityResponse 01","id":"353872cc-8f5e-4cda-a36d-af6f65e1967b","_links":{"self":{"href":"http://localhost/networks/ee10e166-c11a-4111-b8c3-8c497b1b6402/cas/353872cc-8f5e-4cda-a36d-af6f65e1967b"},"verify":{"href":"http://localhost/networks/ee10e166-c11a-4111-b8c3-8c497b1b6402/cas/353872cc-8f5e-4cda-a36d-af6f65e1967b/verify"},"network":{"href":"http://localhost/networks/ee10e166-c11a-4111-b8c3-8c497b1b6402"}}}


Creating a Certificate Authority

A POST request creates a Certificate Authority

Request Fields

Path Type Description

name

String

The CA’s name

isAuthEnabled

Boolean

Enable Auth for the CA

isAutoCaEnrollmentEnabled

Boolean

Enable Auto CA enrollment

isOttCaEnrollmentEnabled

Boolean

Enable One-Time Token CA enrollment

certPem

String

CA Contents

Example CURL request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/20a1e222-c62c-4552-bf65-145d1f755cc8/cas' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test CertificateAuthorityResponse 01","certPem":"Cert PEM","isAutoCaEnrollmentEnabled":true,"isAuthEnabled":true,"isOttCaEnrollmentEnabled":false}'

Example HTTP request

POST /rest/v1/networks/20a1e222-c62c-4552-bf65-145d1f755cc8/cas HTTP/1.1
Content-Type: application/json
Content-Length: 155
Host: gateway.production.netfoundry.io

{"name":"Test CertificateAuthorityResponse 01","certPem":"Cert PEM","isAutoCaEnrollmentEnabled":true,"isAuthEnabled":true,"isOttCaEnrollmentEnabled":false}

Example HTTPie request

$ echo '{"name":"Test CertificateAuthorityResponse 01","certPem":"Cert PEM","isAutoCaEnrollmentEnabled":true,"isAuthEnabled":true,"isOttCaEnrollmentEnabled":false}' | http POST 'https://gateway.production.netfoundry.io/rest/v1/networks/20a1e222-c62c-4552-bf65-145d1f755cc8/cas' \
    'Content-Type:application/json'

Example response

Response Fields

Path Type Description

name

String

The CA’s name

id

String

The CA’s id

isAuthEnabled

Boolean

Enable Auth for the CA

isAutoCaEnrollmentEnabled

Boolean

Enable Auto CA enrollment

isOttCaEnrollmentEnabled

Boolean

Enable One-Time Token CA enrollment

isVerified

Boolean

Is the CA verified

verificationToken

Null

CA Verification token

fingerprint

Null

Fingerprint of the CA

jwt

Null

JWT for auto-enrolling identities

createdAt

String

Record creation time

updatedAt

String

Record last modification time

_links

Object

Links to other resources

HTTP/1.1 201 Created
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 687

{"isAuthEnabled":true,"isOttCaEnrollmentEnabled":true,"isAutoCaEnrollmentEnabled":true,"isVerified":false,"verificationToken":null,"fingerprint":null,"jwt":null,"createdAt":"2020-07-21T16:02:11.981+00:00","updatedAt":"2020-07-21T16:02:11.981+00:00","name":"Test CertificateAuthorityResponse 01","id":"651ef5d4-7d69-4595-abf3-891f353ac4b6","_links":{"self":{"href":"http://localhost/networks/20a1e222-c62c-4552-bf65-145d1f755cc8/cas/651ef5d4-7d69-4595-abf3-891f353ac4b6"},"verify":{"href":"http://localhost/networks/20a1e222-c62c-4552-bf65-145d1f755cc8/cas/651ef5d4-7d69-4595-abf3-891f353ac4b6/verify"},"network":{"href":"http://localhost/networks/20a1e222-c62c-4552-bf65-145d1f755cc8"}}}


Verifying a Certificate Authority

A POST request verifies a specific Certificate Authority.

Example CURL request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/f6df5be2-fabf-48dc-8de6-38fa36a0cab9/cas/5038025d-f0ba-4dbc-b3ed-dd82c91b4772/verify' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"certificate":"Verification Cert Contents Here"}'

Example HTTP request

POST /rest/v1/networks/f6df5be2-fabf-48dc-8de6-38fa36a0cab9/cas/5038025d-f0ba-4dbc-b3ed-dd82c91b4772/verify HTTP/1.1
Content-Type: application/json
Content-Length: 49
Host: gateway.production.netfoundry.io

{"certificate":"Verification Cert Contents Here"}

Example HTTPie request

$ echo '{"certificate":"Verification Cert Contents Here"}' | http POST 'https://gateway.production.netfoundry.io/rest/v1/networks/f6df5be2-fabf-48dc-8de6-38fa36a0cab9/cas/5038025d-f0ba-4dbc-b3ed-dd82c91b4772/verify' \
    'Content-Type:application/json'

Example response

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001


Updating a Certificate Authority

A PUT request creates a Certificate Authority

Request Fields

Path Type Description

name

String

The CA’s name

isAuthEnabled

Boolean

Enable Auth for the CA

isAutoCaEnrollmentEnabled

Boolean

Enable Auto CA enrollment

isOttCaEnrollmentEnabled

Boolean

Enable One-Time Token CA enrollment

Example CURL request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/c85b583f-bbdf-4c5e-aac8-964564fe9c54/cas/8dd1d65c-c0db-477a-913f-49dc573ce913' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test CertificateAuthorityResponse Updated 01","isAutoCaEnrollmentEnabled":true,"isAuthEnabled":true,"isOttCaEnrollmentEnabled":false}'

Example HTTP request

PUT /rest/v1/networks/c85b583f-bbdf-4c5e-aac8-964564fe9c54/cas/8dd1d65c-c0db-477a-913f-49dc573ce913 HTTP/1.1
Content-Type: application/json
Content-Length: 142
Host: gateway.production.netfoundry.io

{"name":"Test CertificateAuthorityResponse Updated 01","isAutoCaEnrollmentEnabled":true,"isAuthEnabled":true,"isOttCaEnrollmentEnabled":false}

Example HTTPie request

$ echo '{"name":"Test CertificateAuthorityResponse Updated 01","isAutoCaEnrollmentEnabled":true,"isAuthEnabled":true,"isOttCaEnrollmentEnabled":false}' | http PUT 'https://gateway.production.netfoundry.io/rest/v1/networks/c85b583f-bbdf-4c5e-aac8-964564fe9c54/cas/8dd1d65c-c0db-477a-913f-49dc573ce913' \
    'Content-Type:application/json'

Example response

Response Fields

Path Type Description

name

String

The CA’s name

id

String

The CA’s id

isAuthEnabled

Boolean

Enable Auth for the CA

isAutoCaEnrollmentEnabled

Boolean

Enable Auto CA enrollment

isOttCaEnrollmentEnabled

Boolean

Enable One-Time Token CA enrollment

isVerified

Boolean

Is the CA verified

verificationToken

Null

CA Verification token

fingerprint

Null

Fingerprint of the CA

jwt

Null

JWT for auto-enrolling identities

createdAt

String

Record creation time

updatedAt

String

Record last modification time

_links

Object

Links to other resources

HTTP/1.1 201 Created
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 687

{"isAuthEnabled":true,"isOttCaEnrollmentEnabled":true,"isAutoCaEnrollmentEnabled":true,"isVerified":false,"verificationToken":null,"fingerprint":null,"jwt":null,"createdAt":"2020-07-21T16:02:12.040+00:00","updatedAt":"2020-07-21T16:02:12.040+00:00","name":"Test CertificateAuthorityResponse 01","id":"3ea4d877-1d96-4137-a680-feb3d9ca7759","_links":{"self":{"href":"http://localhost/networks/c85b583f-bbdf-4c5e-aac8-964564fe9c54/cas/3ea4d877-1d96-4137-a680-feb3d9ca7759"},"verify":{"href":"http://localhost/networks/c85b583f-bbdf-4c5e-aac8-964564fe9c54/cas/3ea4d877-1d96-4137-a680-feb3d9ca7759/verify"},"network":{"href":"http://localhost/networks/c85b583f-bbdf-4c5e-aac8-964564fe9c54"}}}


Deleting a Certificate Authority

A DELETE request deletes a Certificate Authority

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/8945aed6-ef85-482a-8418-3e677ea2b59b/cas/b9160066-9749-4b4e-a8f1-5e9aeef28517' -i -X DELETE \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001


Network

The Network resource is used to create, modify and list networks for an Organization.


Listing networks

A GET request lists all of the organizations' networks. The backend will apply a default page size of 1000 and return the first page.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.networks

Array

An array of Network resources

_links

Object

Links to other resources and pages

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3160

{"_embedded":{"networks":[{"createdAt":"2020-07-21T06:01:56.786+00:00","updatedAt":"2020-07-21T16:01:56.786+00:00","name":"Test Network 01","caName":"CA_42c9d6cb-24cf-4488-8958-1c511f82ad8f","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"afc4e62f-17ab-4160-8c15-b1cfa3e654f5","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"fe965967-31a7-424d-adce-5af6d020b757","_links":{"self":{"href":"http://localhost/networks/fe965967-31a7-424d-adce-5af6d020b757"},"organization":{"href":"http://localhost/organizations/afc4e62f-17ab-4160-8c15-b1cfa3e654f5"},"networkControllerHosts":{"href":"http://localhost/networks/fe965967-31a7-424d-adce-5af6d020b757/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/fe965967-31a7-424d-adce-5af6d020b757/endpoints"},"endpointGroups":{"href":"http://localhost/networks/fe965967-31a7-424d-adce-5af6d020b757/endpointGroups"},"services":{"href":"http://localhost/networks/fe965967-31a7-424d-adce-5af6d020b757/services"},"appWans":{"href":"http://localhost/networks/fe965967-31a7-424d-adce-5af6d020b757/appWans"},"gatewayClusters":{"href":"http://localhost/networks/fe965967-31a7-424d-adce-5af6d020b757/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/fe965967-31a7-424d-adce-5af6d020b757/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/fe965967-31a7-424d-adce-5af6d020b757/networkConfigMetadata"}}},{"createdAt":"2020-07-21T06:01:56.788+00:00","updatedAt":"2020-07-21T16:01:56.788+00:00","name":"Test Network 02","caName":"CA_fbadd144-0d31-47ab-835f-931bdb25cc2c","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"afc4e62f-17ab-4160-8c15-b1cfa3e654f5","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"f9cc3950-aef3-496e-a491-4905661e6a75","_links":{"self":{"href":"http://localhost/networks/f9cc3950-aef3-496e-a491-4905661e6a75"},"organization":{"href":"http://localhost/organizations/afc4e62f-17ab-4160-8c15-b1cfa3e654f5"},"networkControllerHosts":{"href":"http://localhost/networks/f9cc3950-aef3-496e-a491-4905661e6a75/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/f9cc3950-aef3-496e-a491-4905661e6a75/endpoints"},"endpointGroups":{"href":"http://localhost/networks/f9cc3950-aef3-496e-a491-4905661e6a75/endpointGroups"},"services":{"href":"http://localhost/networks/f9cc3950-aef3-496e-a491-4905661e6a75/services"},"appWans":{"href":"http://localhost/networks/f9cc3950-aef3-496e-a491-4905661e6a75/appWans"},"gatewayClusters":{"href":"http://localhost/networks/f9cc3950-aef3-496e-a491-4905661e6a75/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/f9cc3950-aef3-496e-a491-4905661e6a75/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/f9cc3950-aef3-496e-a491-4905661e6a75/networkConfigMetadata"}}}]},"_links":{"self":{"href":"http://localhost/networks"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Listing Networks Paged

A GET request returns a paginated list all of the organizations networks.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks?page=0&size=10&sort=name,ASC' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.networks

Array

An array of Network resources

_links

Object

Links to other resources and pages

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3189

{"_embedded":{"networks":[{"createdAt":"2020-07-21T06:01:56.998+00:00","updatedAt":"2020-07-21T16:01:56.998+00:00","name":"Test Network 01","caName":"CA_c4ed9e57-827e-469e-b38c-348f8caec93a","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"ecb9a794-5024-40be-bff9-8ac61dd80701","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"fd3f526a-bf42-4827-99ed-692dd2b75a6b","_links":{"self":{"href":"http://localhost/networks/fd3f526a-bf42-4827-99ed-692dd2b75a6b"},"organization":{"href":"http://localhost/organizations/ecb9a794-5024-40be-bff9-8ac61dd80701"},"networkControllerHosts":{"href":"http://localhost/networks/fd3f526a-bf42-4827-99ed-692dd2b75a6b/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/fd3f526a-bf42-4827-99ed-692dd2b75a6b/endpoints"},"endpointGroups":{"href":"http://localhost/networks/fd3f526a-bf42-4827-99ed-692dd2b75a6b/endpointGroups"},"services":{"href":"http://localhost/networks/fd3f526a-bf42-4827-99ed-692dd2b75a6b/services"},"appWans":{"href":"http://localhost/networks/fd3f526a-bf42-4827-99ed-692dd2b75a6b/appWans"},"gatewayClusters":{"href":"http://localhost/networks/fd3f526a-bf42-4827-99ed-692dd2b75a6b/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/fd3f526a-bf42-4827-99ed-692dd2b75a6b/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/fd3f526a-bf42-4827-99ed-692dd2b75a6b/networkConfigMetadata"}}},{"createdAt":"2020-07-21T06:01:56.999+00:00","updatedAt":"2020-07-21T16:01:56.999+00:00","name":"Test Network 02","caName":"CA_bb86ba63-ed44-492e-9616-c74521764035","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"ecb9a794-5024-40be-bff9-8ac61dd80701","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"ce9008e5-9b9a-4051-9d31-0ef517131fd0","_links":{"self":{"href":"http://localhost/networks/ce9008e5-9b9a-4051-9d31-0ef517131fd0"},"organization":{"href":"http://localhost/organizations/ecb9a794-5024-40be-bff9-8ac61dd80701"},"networkControllerHosts":{"href":"http://localhost/networks/ce9008e5-9b9a-4051-9d31-0ef517131fd0/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/ce9008e5-9b9a-4051-9d31-0ef517131fd0/endpoints"},"endpointGroups":{"href":"http://localhost/networks/ce9008e5-9b9a-4051-9d31-0ef517131fd0/endpointGroups"},"services":{"href":"http://localhost/networks/ce9008e5-9b9a-4051-9d31-0ef517131fd0/services"},"appWans":{"href":"http://localhost/networks/ce9008e5-9b9a-4051-9d31-0ef517131fd0/appWans"},"gatewayClusters":{"href":"http://localhost/networks/ce9008e5-9b9a-4051-9d31-0ef517131fd0/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/ce9008e5-9b9a-4051-9d31-0ef517131fd0/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/ce9008e5-9b9a-4051-9d31-0ef517131fd0/networkConfigMetadata"}}}]},"_links":{"self":{"href":"http://localhost/networks?page=0,size=10,sort=name,asc"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Fetching a network

A GET request fetches a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

The network’s name

id

String

The network’s id

caName

String

The network’s ca name

productFamily

String

The network’s product family

productVersion

String

The version of the network core software

o365BreakoutCategory

String

Optional O365 Category for checking conflicts between network services in O365 routes. Options: NONE, ALLOW, OPTIMIZE

mfaClientId

String

Optional OKTA Client ID for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later

mfaIssuerId

String

Optional OKTA Issuer URL for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later

status

Number

Provisioning status of the network

organizationId

String

The id of the organization that this network belongs to.

createdAt

String

Record creation time

updatedAt

String

Record last modification time

provisionedAt

Null

The provisioned status of the Network

ownerIdentityId

Null

Identity Id of the owner

networkConfigMetadataId

Null

The network config metadata id

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1506

{"createdAt":"2020-07-21T06:01:54.973+00:00","updatedAt":"2020-07-21T16:01:54.973+00:00","name":"Test Network 01","caName":"CA_193d8f89-db0a-4a2c-8927-9f985d769bbd","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"0130a70f-dff7-412d-84d5-70ad265c0eda","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"6f3eeb44-2d3e-4b15-ad37-867ee6cd615f","_links":{"self":{"href":"http://localhost/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f"},"organization":{"href":"http://localhost/organizations/0130a70f-dff7-412d-84d5-70ad265c0eda"},"networkControllerHosts":{"href":"http://localhost/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f/endpoints"},"endpointGroups":{"href":"http://localhost/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f/endpointGroups"},"services":{"href":"http://localhost/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f/services"},"appWans":{"href":"http://localhost/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f/appWans"},"gatewayClusters":{"href":"http://localhost/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/6f3eeb44-2d3e-4b15-ad37-867ee6cd615f/networkConfigMetadata"}}}


Fetching a network as code

A GET request fetches a specific network and all its resources as yml.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/54f5d6c2-75c7-422a-b9cc-daf99bbfd714/blueprint' -i -X GET \
    -H 'Accept: application/yml'

Example response

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/yml;charset=UTF-8
Content-Length: 177

network:
  name: Network12
  productFamily: DVN
  productVersion: 1.0.0-123
  gateways: []
  clients: []
  endpointGroups: []
  services: []
  appWans: []
  gatewayClusters: []


Fetching a list of network controllers

A GET request fetches the Network Controllers for a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/4ef1b6c3-0f15-4118-8735-8001ef5c9776/networkControllerHosts' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.networkControllerHosts

Array

An array of Network Controller resources

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 363

{"_embedded":{"networkControllerHosts":[{"ipAddress":"143.2.19.7","status":300,"providerId":null}]},"_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/4ef1b6c3-0f15-4118-8735-8001ef5c9776/networkControllerHosts"},"network":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/4ef1b6c3-0f15-4118-8735-8001ef5c9776"}}}


Fetching network config metadata of a network

A GET request fetches the Network Config Metadata for a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/1fe05911-3397-4a63-b8f4-05e968c4a599/networkConfigMetadata' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

The network config metadata name

id

String

The network config metadata id

awsNetworkControllerSize

Null

The size of aws network controller, eg: T2Medium

awsGatewaySize

Null

The size of aws gateway, eg: T2Micro

awsTransferNodeSize

Null

The size of aws transfer node, eg: T2Micro

azureTransferNodeSize

Null

The size of azure transfer node, eg: Standard_B1s

networkControllerVolumeSize

Number

The size of network controller volume

transferNodeVolumeSize

Number

The size of transfer node volume

gatewayVolumeSize

Number

The size of gateway volume

alicloudTransferNodeSize

Null

The size of ali cloud transfer node

gcpTransferNodeSize

Null

The size of GCP transfer node

createdAt

Null

Record creation time

updatedAt

Null

Record last modification time

_links

Object

Links to other resources and pages

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 481

{"createdAt":null,"updatedAt":null,"name":"small","awsNetworkControllerSize":null,"awsGatewaySize":null,"awsTransferNodeSize":null,"azureTransferNodeSize":null,"alicloudTransferNodeSize":null,"gcpTransferNodeSize":null,"networkControllerVolumeSize":0,"transferNodeVolumeSize":0,"gatewayVolumeSize":0,"id":"9004d5da-c3ef-4ad7-aa72-ae51772521d8","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/9004d5da-c3ef-4ad7-aa72-ae51772521d8"}}}


Creating a network

A POST request creates a network.

Request Fields

Path Type Description

name

String

Required: The network’s name

networkConfigName

String

Optional configuration name for sizing. Default is medium

productFamily

String

Optional product family. One of * DVN: disable Ziti LTS endpoints * ZITI_ENABLED (default): enable Ziti LTS endpoints e.g. Tunneler LTS.

productVersion

String

The network’s product version a.k.a. "network version". Typically you will use the latest which is always the default.

locationCode

String

Optional locationCode (from LocationMetadata) in which to home your network’s dedicated controller. The default is AWS N Virginia. Partial match (startsWith())

o365BreakoutCategory

String

Optional O365 Category for checking conflicts between network services in O365 routes. Options: NONE, ALLOW, OPTIMIZE

subscriptionId

String

Optional subscriptionId that this network should be charged against. Subscription IDs can be determined by calling http://gateway.netfoundry.io/v2/billing/organizations/{organizationId}/subscriptions

Example CURL request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test Network 01","productFamily":"DVN","productVersion":"3.6.6.11042","networkConfigName":"medium","locationCode":null,"o365BreakoutCategory":"NONE","subscriptionId":null}'

Example HTTP request

POST /rest/v1/networks HTTP/1.1
Content-Type: application/json
Content-Length: 180
Host: gateway.production.netfoundry.io

{"name":"Test Network 01","productFamily":"DVN","productVersion":"3.6.6.11042","networkConfigName":"medium","locationCode":null,"o365BreakoutCategory":"NONE","subscriptionId":null}

Example HTTPie request

$ echo '{"name":"Test Network 01","productFamily":"DVN","productVersion":"3.6.6.11042","networkConfigName":"medium","locationCode":null,"o365BreakoutCategory":"NONE","subscriptionId":null}' | http POST 'https://gateway.production.netfoundry.io/rest/v1/networks' \
    'Content-Type:application/json'

Example response

Response Fields

Path Type Description

name

String

The network’s name

id

String

The network’s id

caName

String

The network’s ca name

productFamily

String

The network’s product family

productVersion

String

The version of the network core software

o365BreakoutCategory

String

Optional O365 Category for checking conflicts between network services in O365 routes

mfaClientId

String

Optional OKTA Client ID for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later

mfaIssuerId

String

Optional OKTA Issuer URL for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later

status

Number

Provisioning status of the network

organizationId

String

The id of the organization that this network belongs to.

createdAt

String

Record creation time

updatedAt

String

Record last modification time

provisionedAt

Null

The provisioned status of the Network

networkConfigMetadataId

Null

The network config metadata id

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1506

{"createdAt":"2020-07-21T06:01:56.467+00:00","updatedAt":"2020-07-21T16:01:56.467+00:00","name":"Test Network 01","caName":"CA_2ca78112-4868-4559-b99f-b7071e558fc5","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"fc38e467-9ec1-4a29-87be-9c1459096b4e","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"6646cc05-fcb9-46f3-a225-788bf82a5974","_links":{"self":{"href":"http://localhost/networks/6646cc05-fcb9-46f3-a225-788bf82a5974"},"organization":{"href":"http://localhost/organizations/fc38e467-9ec1-4a29-87be-9c1459096b4e"},"networkControllerHosts":{"href":"http://localhost/networks/6646cc05-fcb9-46f3-a225-788bf82a5974/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/6646cc05-fcb9-46f3-a225-788bf82a5974/endpoints"},"endpointGroups":{"href":"http://localhost/networks/6646cc05-fcb9-46f3-a225-788bf82a5974/endpointGroups"},"services":{"href":"http://localhost/networks/6646cc05-fcb9-46f3-a225-788bf82a5974/services"},"appWans":{"href":"http://localhost/networks/6646cc05-fcb9-46f3-a225-788bf82a5974/appWans"},"gatewayClusters":{"href":"http://localhost/networks/6646cc05-fcb9-46f3-a225-788bf82a5974/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/6646cc05-fcb9-46f3-a225-788bf82a5974/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/6646cc05-fcb9-46f3-a225-788bf82a5974/networkConfigMetadata"}}}


Creating a network from yaml

A POST request creates a network and other resources on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/organizations/49d69ed2-7b5a-4b0a-8290-9bdd5ee68fbb/networks' -i -X POST \
    -H 'Content-Type: multipart/form-data' \
    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJTUzhQUzJ1QU44VnU3cDNmcjNKbHBRIiwiaXNzIjoiTmV0Rm91bmRyeSIsInN1YiI6ImM3NjFkNWEwLTk1ZDAtNDZiNi04NjkyLWY4OWFjMGU5NTZiMiIsImF1ZCI6ImlvLm5ldGZvdW5kcnkubmV0d29yayIsImlhdCI6MTU5NTM0NzM0MywiZXhwIjoxNTk1MzUwOTQzLCJncmFudHMtc3VwZXIiOiJbXSIsImdyYW50cy1jdXN0b20iOiJbXSIsImdyYW50cy1wdWJsaWMiOiJbXSIsImdyYW50cy1hY3Rpb24iOiJbe1wiaWRcIjpcIjFhMmNlMDEzLWNkOTItNGM4Ny1hYjk1LTQ2NGRiZTFmNjczNFwiLFwibGFzdE1vZGlmaWVkXCI6MTU5NTM0NzM0M30se1wiaWRcIjpcImY0MjEyNGRiLTJiYzQtNDBhNS1hNjQ0LWViM2QxODlmYjc2N1wiLFwibGFzdE1vZGlmaWVkXCI6MTU5NTM0NzM0M31dIiwiZ3JhbnRzLXN0YW5kYXJkIjoiW10ifQ.sSHJw0gX9pQAHUbD1SCjWJkyGjgr82fhyTbURhCr8LtmOG1GBg8pNZg7A_1Dpx2U0Sz_jy_O9vhZBAZMag_S3VC7fNkAZcTd5knQxsbC8znjwPRgElWJHWqLnXzsgPlD4gx6V0yWUqD4dON8BtEhtg_dRoBJiVkcspX8mwd7eObxsOGdIykXLNu17vsg1tcgyLjsXNn_W_KpEruKZep-0gXYbi5R8IkdiZ8yWEWUpJ2ElC6-GuOZ1-DnV6C1WUwnnBGD0iCyYG63HWUVEJJYa2-fZzuAX6xPCqq3ArVSbXOLkYwLMA5hHQ82kh4sU3aGROAPIY5s8azr9dMuLSNV5A' \
    -F 'file=@hello;type=multipart/form-data'

Example response

Path Type Description

businessKey

Null

The businessKey of the process

network

Object

Network Data

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1857

{"businessKey":null,"network":{"createdAt":"2020-07-21T06:02:23.443+00:00","updatedAt":"2020-07-21T16:02:23.443+00:00","name":"Test Network 01","caName":"CA_270ba7de-b96b-49be-b4cf-4679b5911dad","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"49d69ed2-7b5a-4b0a-8290-9bdd5ee68fbb","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"59711c90-a405-42ef-9dc5-07247ae00df1","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/59711c90-a405-42ef-9dc5-07247ae00df1"},"organization":{"href":"https://gateway.production.netfoundry.io/rest/v1/organizations/160e460e-b26b-4dd3-ad37-372a28e64148"},"networkControllerHosts":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/59711c90-a405-42ef-9dc5-07247ae00df1/networkControllerHosts"},"endpoints":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/59711c90-a405-42ef-9dc5-07247ae00df1/endpoints"},"endpointGroups":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/59711c90-a405-42ef-9dc5-07247ae00df1/endpointGroups"},"services":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/59711c90-a405-42ef-9dc5-07247ae00df1/services"},"appWans":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/59711c90-a405-42ef-9dc5-07247ae00df1/appWans"},"gatewayClusters":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/59711c90-a405-42ef-9dc5-07247ae00df1/gatewayClusters"},"virtualWanSites":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/59711c90-a405-42ef-9dc5-07247ae00df1/virtualWanSites"},"networkConfigMetadata":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/59711c90-a405-42ef-9dc5-07247ae00df1/networkConfigMetadata"}}}}


Updating a Network

A PUT request updates a specific network. The request should contain the network name.

Example CURL request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test Network 01 Updated","o365BreakoutCategory":"NONE","mfaClientId":"1234","mfaIssuerId":"https://okta"}'

Example HTTP request

PUT /rest/v1/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30 HTTP/1.1
Content-Type: application/json
Content-Length: 114
Host: gateway.production.netfoundry.io

{"name":"Test Network 01 Updated","o365BreakoutCategory":"NONE","mfaClientId":"1234","mfaIssuerId":"https://okta"}

Example HTTPie request

$ echo '{"name":"Test Network 01 Updated","o365BreakoutCategory":"NONE","mfaClientId":"1234","mfaIssuerId":"https://okta"}' | http PUT 'https://gateway.production.netfoundry.io/rest/v1/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30' \
    'Content-Type:application/json'

Example response

Path Type Description

name

String

The network’s name

id

String

The network’s id

caName

String

The network’s ca name

productFamily

String

The network’s product family

productVersion

String

The version of the network core software

o365BreakoutCategory

String

Optional O365 Category for checking conflicts between network services in O365 routes. Options: NONE, ALLOW, OPTIMIZE

mfaClientId

String

Optional OKTA Client ID for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later

mfaIssuerId

String

Optional Optional OKTA Issuer URL for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later

status

Number

Provisioning status of the network

organizationId

String

The id of the organization that this network belongs to.

createdAt

String

Record creation time

updatedAt

String

Record last modification time

provisionedAt

Null

The provisioned status of the Network

ownerIdentityId

Null

Identity Id of the owner

networkConfigMetadataId

Null

The network config metadata id

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1514

{"createdAt":"2020-07-21T06:01:56.709+00:00","updatedAt":"2020-07-21T16:01:56.709+00:00","name":"Test Network 01 Updated","caName":"CA_4056b21e-a4bc-48a5-9f4d-26497f725a57","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"a48b386a-0dac-4fff-a877-9ceadc29e8de","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"adb36bb8-7342-460e-b19d-4fb5b0e6ec30","_links":{"self":{"href":"http://localhost/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30"},"organization":{"href":"http://localhost/organizations/a48b386a-0dac-4fff-a877-9ceadc29e8de"},"networkControllerHosts":{"href":"http://localhost/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30/endpoints"},"endpointGroups":{"href":"http://localhost/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30/endpointGroups"},"services":{"href":"http://localhost/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30/services"},"appWans":{"href":"http://localhost/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30/appWans"},"gatewayClusters":{"href":"http://localhost/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/adb36bb8-7342-460e-b19d-4fb5b0e6ec30/networkConfigMetadata"}}}


Deleting a Network

A DELETE request deletes a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/23f94264-328f-4c85-baaa-a9dc8307f25e' -i -X DELETE \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001


Listing all Network processes

A GET request fetches all the running Network processes.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/network-processes' -i -X GET \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 224

[{"businessKey":"0d7dd7f9-ab1e-4f7a-a8d4-774440b8f5b3","processDefinitionKey":"createNetworkFromDepotAsync","processInstanceId":123,"workFlowStatus":[{"task":"Started","status":"InProgress","calledProcessInstanceId":null}]}]


Fetching a Network process

A GET request fetches the Network processes with a specific business key.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/network-processes/b02dca95-94c6-4ed2-936f-34df05998f12' -i -X GET \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 224

[{"businessKey":"b02dca95-94c6-4ed2-936f-34df05998f12","processDefinitionKey":"createNetworkFromDepotAsync","processInstanceId":123,"workFlowStatus":[{"task":"Started","status":"InProgress","calledProcessInstanceId":null}]}]


NetworkConfigMetadata

The NetworkConfigMetadata resource is used to list NetworkConfigMetadatas.


Fetching all network config metadata

A GET request fetches all network config metadata.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.networkConfigMetadatas

Array

An array of Network Config Metadata resources

_links

Object

Links to other resources and pages

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 624

{"_embedded":{"networkConfigMetadatas":[{"createdAt":null,"updatedAt":null,"name":"small","awsNetworkControllerSize":null,"awsGatewaySize":null,"awsTransferNodeSize":null,"azureTransferNodeSize":null,"alicloudTransferNodeSize":null,"gcpTransferNodeSize":null,"networkControllerVolumeSize":0,"transferNodeVolumeSize":0,"gatewayVolumeSize":0,"id":"2c4bce1e-8da1-4448-b7af-fe477c77e08d","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/2c4bce1e-8da1-4448-b7af-fe477c77e08d"}}}]},"_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata"}}}


Fetching a network config metadata

A GET request fetches a specific network config metadata.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/e56240b5-7f46-459e-91d7-4ab9fa40ffb6' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

The network config metadata name

id

String

The network config metadata id

awsNetworkControllerSize

Null

The size of aws network controller, eg: T2Medium

awsGatewaySize

Null

The size of aws gateway, eg: T2Micro

awsTransferNodeSize

Null

The size of aws transfer node, eg: T2Micro

azureTransferNodeSize

Null

The size of azure transfer node, eg: Standard_B1s

networkControllerVolumeSize

Number

The size of network controller volume

transferNodeVolumeSize

Number

The size of transfer node volume

gatewayVolumeSize

Number

The size of gateway volume

alicloudTransferNodeSize

Null

The size of ali cloud transfer node

gcpTransferNodeSize

Null

The size of GCP transfer node

createdAt

Null

Record creation time

updatedAt

Null

Record last modification time

_links

Object

Links to other resources and pages

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 481

{"createdAt":null,"updatedAt":null,"name":"small","awsNetworkControllerSize":null,"awsGatewaySize":null,"awsTransferNodeSize":null,"azureTransferNodeSize":null,"alicloudTransferNodeSize":null,"gcpTransferNodeSize":null,"networkControllerVolumeSize":0,"transferNodeVolumeSize":0,"gatewayVolumeSize":0,"id":"e56240b5-7f46-459e-91d7-4ab9fa40ffb6","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/e56240b5-7f46-459e-91d7-4ab9fa40ffb6"}}}


Creating a network config metadata

A POST request creates a specific network config metadata.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"name":"small","awsNetworkControllerSize":"T2Medium","awsGatewaySize":"T2Large","awsTransferNodeSize":"T2Large","azureTransferNodeSize":"T2Large","alicloudTransferNodeSize":"T2Large","gcpTransferNodeSize":"T2Large","networkControllerVolumeSize":20,"transferNodeVolumeSize":10,"gatewayVolumeSize":10}'

Example response

Path Type Description

name

String

The network config metadata name

id

String

The network config metadata id

awsNetworkControllerSize

Null

The size of aws network controller, eg: T2Medium

awsGatewaySize

Null

The size of aws gateway, eg: T2Micro

awsTransferNodeSize

Null

The size of aws transfer node, eg: T2Micro

azureTransferNodeSize

Null

The size of azure transfer node, eg: Standard_B1s

networkControllerVolumeSize

Number

The size of network controller volume

transferNodeVolumeSize

Number

The size of transfer node volume

gatewayVolumeSize

Number

The size of gateway volume

alicloudTransferNodeSize

Null

The size of ali cloud transfer node

gcpTransferNodeSize

Null

The size of GCP transfer node

createdAt

Null

Record creation time

updatedAt

Null

Record last modification time

_links

Object

Links to other resources and pages

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 481

{"createdAt":null,"updatedAt":null,"name":"small","awsNetworkControllerSize":null,"awsGatewaySize":null,"awsTransferNodeSize":null,"azureTransferNodeSize":null,"alicloudTransferNodeSize":null,"gcpTransferNodeSize":null,"networkControllerVolumeSize":0,"transferNodeVolumeSize":0,"gatewayVolumeSize":0,"id":"1daf5cda-c6a4-44c2-94f7-84ea8ec4fc4d","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/1daf5cda-c6a4-44c2-94f7-84ea8ec4fc4d"}}}


Updating a network config metadata

A PUT request updates a specific network config metadata.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/6aaaf04c-f759-4c9f-a9b2-4eb51ea0f87f' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{"name":"small","awsNetworkControllerSize":"T2Medium","awsGatewaySize":"T2Large","awsTransferNodeSize":"T2Large","azureTransferNodeSize":"T2Large","alicloudTransferNodeSize":"T2Large","gcpTransferNodeSize":"T2Large","networkControllerVolumeSize":20,"transferNodeVolumeSize":10,"gatewayVolumeSize":10}'

Example response

Path Type Description

name

String

The network config metadata name

id

String

The network config metadata id

awsNetworkControllerSize

Null

The size of aws network controller, eg: T2Medium

awsGatewaySize

Null

The size of aws gateway, eg: T2Micro

awsTransferNodeSize

Null

The size of aws transfer node, eg: T2Micro

azureTransferNodeSize

Null

The size of azure transfer node, eg: Standard_B1s

networkControllerVolumeSize

Number

The size of network controller volume

transferNodeVolumeSize

Number

The size of transfer node volume

gatewayVolumeSize

Number

The size of gateway volume

alicloudTransferNodeSize

Null

The size of ali cloud transfer node

gcpTransferNodeSize

Null

The size of GCP transfer node

createdAt

Null

Record creation time

updatedAt

Null

Record last modification time

_links

Object

Links to other resources and pages

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 481

{"createdAt":null,"updatedAt":null,"name":"small","awsNetworkControllerSize":null,"awsGatewaySize":null,"awsTransferNodeSize":null,"azureTransferNodeSize":null,"alicloudTransferNodeSize":null,"gcpTransferNodeSize":null,"networkControllerVolumeSize":0,"transferNodeVolumeSize":0,"gatewayVolumeSize":0,"id":"6aaaf04c-f759-4c9f-a9b2-4eb51ea0f87f","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/6aaaf04c-f759-4c9f-a9b2-4eb51ea0f87f"}}}


Deleting a network config metadata

A DELETE request deletes a specific network config metadata.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/27f13427-1202-4f04-97c6-a6219401cffc' -i -X DELETE \
    -H 'Accept: application/json'

Example response

HTTP/1.1 202 Accepted


GeoRegion

The GeoRegion resource is used to list GeoRegions.


Listing GeoRegions

A GET request lists all of the GeoRegions.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/geoRegions' -i -X GET \
    -H 'Accept: application/json'

Example response

Response Fields

Path Type Description

_embedded.geoRegions

Array

An array of GeoRegion resources

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 589

{"_embedded":{"geoRegions":[{"createdAt":"2020-07-21T06:02:01.205+00:00","updatedAt":"2020-07-21T16:02:01.205+00:00","name":"Geo Region 01","id":"9bbca6aa-767c-4c48-b4ab-dac0ead018fc","_links":{"self":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"}}},{"createdAt":"2020-07-21T06:02:01.205+00:00","updatedAt":"2020-07-21T16:02:01.205+00:00","name":"Geo Region 02","id":"9bbca6aa-767c-4c48-b4ab-dac0ead018fc","_links":{"self":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"}}}]},"_links":{"self":{"href":"http://localhost/geoRegions"}}}


Fetching a GeoRegion

A GET request fetches a specific GeoRegion.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

The GeoRegion name

id

String

The GeoRegion id

createdAt

String

Record creation time

updatedAt

String

Record last modification time

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 250

{"createdAt":"2020-07-21T06:02:01.128+00:00","updatedAt":"2020-07-21T16:02:01.128+00:00","name":"Geo Region 01","id":"9bbca6aa-767c-4c48-b4ab-dac0ead018fc","_links":{"self":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"}}}


Data Center

The Data Center resource is used to list Data Centers.


Listing Data Centers

A GET request lists all of the Data Centers.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/dataCenters' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.dataCenters

Array

An array of DataCenter resources

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1301

{"_embedded":{"dataCenters":[{"createdAt":"2020-07-21T06:02:08.532+00:00","updatedAt":"2020-07-21T16:02:08.532+00:00","name":"dc01","address":"123 That Street","city":"Nashville","stateCode":"TN","stateName":"Great State","continentName":"North America","continentCode":"NA","countryName":"United States","countryCode":"US","isp":"aws","lat":1.0,"lng":2.0,"locationCode":"us-east-1b","locationName":"us-east-1","provider":"aws","id":null,"_links":{"self":{"href":"http://localhost/dataCenters/b7ca6442-8e58-4c11-8567-8bd7f8fe546c"},"geoRegions":{"href":"http://localhost/dataCenters/b7ca6442-8e58-4c11-8567-8bd7f8fe546c/geoRegions"}}},{"createdAt":"2020-07-21T06:02:08.532+00:00","updatedAt":"2020-07-21T16:02:08.532+00:00","name":"dc01","address":"123 That Street","city":"Nashville","stateCode":"TN","stateName":"Great State","continentName":"North America","continentCode":"NA","countryName":"United States","countryCode":"US","isp":"aws","lat":1.0,"lng":2.0,"locationCode":"us-east-2c","locationName":"us-east-2","provider":"aws","id":null,"_links":{"self":{"href":"http://localhost/dataCenters/ce1f7e2b-0ed1-45a2-94a0-5a80f6429ed6"},"geoRegions":{"href":"http://localhost/dataCenters/ce1f7e2b-0ed1-45a2-94a0-5a80f6429ed6/geoRegions"}}}]},"_links":{"self":{"href":"http://localhost/dataCenters"}}}


Fetching a Data Center by ID

A GET request fetches a specific Data Center.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/dataCenters/ee95bc58-d81c-4d91-a78b-4c4b6dd137f5' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

DataCenter friendly name

id

Null

DataCenter id

address

String

The DC address

city

String

The DC city

stateCode

String

The DC state code

stateName

String

The DC state name

continentName

String

The continent name

continentCode

String

The continent code

countryName

String

The country name

countryCode

String

The country code

isp

String

The ISP for the DC

lat

Number

The DC latitude

lng

Number

The DC longitude

locationCode

String

The location code

locationName

String

The location name

provider

String

The DC provider

createdAt

String

Record creation time

updatedAt

String

Record last modification time

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 605

{"createdAt":"2020-07-21T06:02:08.597+00:00","updatedAt":"2020-07-21T16:02:08.597+00:00","name":"dc01","address":"123 That Street","city":"Nashville","stateCode":"TN","stateName":"Great State","continentName":"North America","continentCode":"NA","countryName":"United States","countryCode":"US","isp":"aws","lat":1.0,"lng":2.0,"locationCode":"us-east-1a","locationName":"us-east-1","provider":"aws","id":null,"_links":{"self":{"href":"http://localhost/dataCenters/ee95bc58-d81c-4d91-a78b-4c4b6dd137f5"},"geoRegions":{"href":"http://localhost/dataCenters/ee95bc58-d81c-4d91-a78b-4c4b6dd137f5/geoRegions"}}}


Fetching a Data Center by Location Code

A GET request that fetches a specific Data Center by Location Code.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/dataCenters?locationCode=us-east-2a' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

DataCenter friendly name

id

Null

DataCenter id

address

String

The DC address

city

String

The DC city

stateCode

String

The DC state code

stateName

String

The DC state name

continentName

String

The continent name

continentCode

String

The continent code

countryName

String

The country name

countryCode

String

The country code

isp

String

The ISP for the DC

lat

Number

The DC latitude

lng

Number

The DC longitude

locationCode

String

The location code

locationName

String

The location name

provider

String

The DC provider

createdAt

String

Record creation time

updatedAt

String

Record last modification time

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 605

{"createdAt":"2020-07-21T06:02:08.667+00:00","updatedAt":"2020-07-21T16:02:08.667+00:00","name":"dc01","address":"123 That Street","city":"Nashville","stateCode":"TN","stateName":"Great State","continentName":"North America","continentCode":"NA","countryName":"United States","countryCode":"US","isp":"aws","lat":1.0,"lng":2.0,"locationCode":"us-east-2a","locationName":"us-east-2","provider":"aws","id":null,"_links":{"self":{"href":"http://localhost/dataCenters/248cd4c7-39a0-49ac-99c2-7a5dc23a6721"},"geoRegions":{"href":"http://localhost/dataCenters/248cd4c7-39a0-49ac-99c2-7a5dc23a6721/geoRegions"}}}


Endpoint

The Endpoint resource is used to create, modify and list endpoints for a Network.


Listing endpoints

A GET request lists all of the endpoints for a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.endpoints

Array

An array of Endpoint resources

_links

Object

Links to other resources and pages

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3179

{"_embedded":{"endpoints":[{"createdAt":"2020-07-21T06:02:34.321+00:00","updatedAt":"2020-07-21T16:02:34.321+00:00","name":"Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"8162a1f7-c64e-478a-9fba-b0fc396e1c4e","componentId":"","_links":{"self":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints/8162a1f7-c64e-478a-9fba-b0fc396e1c4e"},"network":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467"},"appWans":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints/8162a1f7-c64e-478a-9fba-b0fc396e1c4e/appWans"},"services":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints/8162a1f7-c64e-478a-9fba-b0fc396e1c4e/services"},"endpointGroups":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints/8162a1f7-c64e-478a-9fba-b0fc396e1c4e/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}},{"createdAt":"2020-07-21T06:02:34.321+00:00","updatedAt":"2020-07-21T16:02:34.321+00:00","name":"Endpoint 02","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"fd90bd0f-6e15-4e0d-bd98-3231b21db166","componentId":"","_links":{"self":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints/fd90bd0f-6e15-4e0d-bd98-3231b21db166"},"network":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467"},"appWans":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints/fd90bd0f-6e15-4e0d-bd98-3231b21db166/appWans"},"services":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints/fd90bd0f-6e15-4e0d-bd98-3231b21db166/services"},"endpointGroups":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints/fd90bd0f-6e15-4e0d-bd98-3231b21db166/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}}]},"_links":{"self":{"href":"http://localhost/networks/590f9291-7778-47d9-af25-962686d6e467/endpoints?page=0,size=10,sort=name,asc"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Listing endpoints paginated

A GET request returns a paged representation all of the endpoints for a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints?page=0&size=10&sort=name,ASC' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.endpoints

Array

An array of Endpoint resources

_links

Object

Links to other resources and pages

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3179

{"_embedded":{"endpoints":[{"createdAt":"2020-07-21T06:02:34.009+00:00","updatedAt":"2020-07-21T16:02:34.009+00:00","name":"Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"11d42601-2f05-44e1-9cd3-5eb88568e865","componentId":"","_links":{"self":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints/11d42601-2f05-44e1-9cd3-5eb88568e865"},"network":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244"},"appWans":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints/11d42601-2f05-44e1-9cd3-5eb88568e865/appWans"},"services":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints/11d42601-2f05-44e1-9cd3-5eb88568e865/services"},"endpointGroups":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints/11d42601-2f05-44e1-9cd3-5eb88568e865/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}},{"createdAt":"2020-07-21T06:02:34.010+00:00","updatedAt":"2020-07-21T16:02:34.010+00:00","name":"Endpoint 02","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"474482a9-3f62-4a3b-89c8-d92dc2455af9","componentId":"","_links":{"self":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints/474482a9-3f62-4a3b-89c8-d92dc2455af9"},"network":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244"},"appWans":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints/474482a9-3f62-4a3b-89c8-d92dc2455af9/appWans"},"services":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints/474482a9-3f62-4a3b-89c8-d92dc2455af9/services"},"endpointGroups":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints/474482a9-3f62-4a3b-89c8-d92dc2455af9/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}}]},"_links":{"self":{"href":"http://localhost/networks/0c5696cb-f65d-43c7-81dd-3ffaad7cd244/endpoints?page=0,size=10,sort=name,asc"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Listing endpoints for network group

A GET request returns a list of all the endpoints for a network group.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networkgroups/0b7d791b-9142-483f-9e4b-30b1ef6ed616/endpoints' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.endpoints

Array

An array of Endpoint resources

_links

Object

Links to other resources and pages

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1424

{"_embedded":{"endpoints":[{"createdAt":"2020-07-21T06:02:33.962+00:00","updatedAt":"2020-07-21T16:02:33.962+00:00","name":"Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"a54c01a3-b2c5-4783-9561-e305b467b2b2","componentId":""},{"createdAt":"2020-07-21T06:02:33.962+00:00","updatedAt":"2020-07-21T16:02:33.962+00:00","name":"Endpoint 02","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"e64d5b94-ce75-4cb9-8ee9-a3c0e110b8c6","componentId":""}]},"_links":{"self":{"href":"http://localhost/networkgroups/0b7d791b-9142-483f-9e4b-30b1ef6ed616/endpoints"}}}


Fetching an endpoint

A GET request fetches a specific endpoint.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/7c22681a-a099-41e6-b03d-e0918daef32b/endpoints/f2809da0-7b3a-45fd-ad8e-afa553126b2f' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

The endpoint’s name

id

String

The endpoint’s id

endpointType

String

The endpoint’s type

clientType

String

The endpoint’s client type

clientVersion

String

The endpoint’s client version

componentId

String

The Component ID of the endpoint resource

registrationKey

String

The one-time use registration key

registrationAttemptsLeft

Number

Remaining registration attempts

status

Number

Provisioning status of the endpoint

currentState

Number

Current state of the endpoint

stateLastUpdated

Null

Last time state of the endpoint was updated

haEndpointType

String

HAGW Endpoint that is part of High Availability Cluster

gatewayClusterId

Null

The ID of the Gateway Cluster that this Endpoint belongs to, or null if not clustered.

endpointProtectionRole

Null

HA Protection role for Endpoint

o365BreakoutNextHopIp

Null

Office 365 breakout optimization traffic next hop

source

Null

The source creating the Endpoint

clientMfaEnable

String

Is Client MFA Required on this endpoint.

status

Number

Provisioning status of the endpoint

createdAt

String

Record creation time

updatedAt

String

Record last modification time

syncId

Null

Client sync process that created this endpoint.

countryId

Null

The Country ID of the endpoint resource

networkId

Null

The Network ID of the endpoint resource

ownerIdentityId

Null

Identity Id of the owner

geoRegionId

Null

ID of the geo region for this endpoint

dataCenterId

Null

ID of the data centerfor this endpoint

sessionIdentityId

Null

Identity ID of the identity that authenticates this endpoint

sessionStatus

Number

Status of the endpoints NF Auth Session

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1482

{"createdAt":"2020-07-21T06:02:34.270+00:00","updatedAt":"2020-07-21T16:02:34.270+00:00","name":"Test Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"f2809da0-7b3a-45fd-ad8e-afa553126b2f","componentId":"","_links":{"self":{"href":"http://localhost/networks/7c22681a-a099-41e6-b03d-e0918daef32b/endpoints/f2809da0-7b3a-45fd-ad8e-afa553126b2f"},"network":{"href":"http://localhost/networks/7c22681a-a099-41e6-b03d-e0918daef32b"},"appWans":{"href":"http://localhost/networks/7c22681a-a099-41e6-b03d-e0918daef32b/endpoints/f2809da0-7b3a-45fd-ad8e-afa553126b2f/appWans"},"services":{"href":"http://localhost/networks/7c22681a-a099-41e6-b03d-e0918daef32b/endpoints/f2809da0-7b3a-45fd-ad8e-afa553126b2f/services"},"endpointGroups":{"href":"http://localhost/networks/7c22681a-a099-41e6-b03d-e0918daef32b/endpoints/f2809da0-7b3a-45fd-ad8e-afa553126b2f/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}}


Creating an endpoint

A POST request creates an endpoint on a specific network.

When creating an endpoint, either a GeoRegion Id or a DataCenter Id needs to be supplied. If you are creating a public hosted gateway (endpointType: GW) then a dataCenterId must be specified otherwise you will specify a geoRegionId.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/f32dcce5-4cd2-4cd4-a9d9-a2310e2d942c/endpoints' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test Endpoint 01","endpointType":"GW","geoRegionId":"15095af7-689e-46c5-95bf-2772116a65c0","dataCenterId":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"source":null,"syncId":null,"clientMfaEnable":"NO","subscriptionId":null,"countryId":null,"sessionIdentityId":null}'

Example response

Path Type Description

name

String

The endpoint’s name

id

String

The endpoint’s id

endpointType

String

The endpoint’s type

clientType

String

The endpoint’s client type

clientVersion

String

The endpoint’s client version

componentId

String

The Component ID of the endpoint resource

registrationKey

String

The one-time use registration key

registrationAttemptsLeft

Number

Remaining registration attempts

status

Number

Provisioning status of the endpoint

currentState

Number

Current state of the endpoint

stateLastUpdated

Null

Last time state of the endpoint was updated

haEndpointType

String

HAGW Endpoint that is part of High Availability Cluster

gatewayClusterId

Null

The ID of the Gateway Cluster that this Endpoint belongs to, or null if not clustered.

endpointProtectionRole

Null

HA Protection role for Endpoint

o365BreakoutNextHopIp

Null

Office 365 breakout optimization traffic next hop

source

Null

The source creating the Endpoint

clientMfaEnable

String

Is Client MFA Required on this endpoint.

createdAt

String

Record creation time

updatedAt

String

Record last modification time

syncId

Null

Client sync process that created this endpoint.

countryId

Null

The Country ID of the endpoint resource

networkId

Null

The Network ID of the endpoint resource

ownerIdentityId

Null

Identity Id of the owner

geoRegionId

Null

ID of the geo region for this endpoint

dataCenterId

Null

ID of the data centerfor this endpoint

sessionIdentityId

Null

Identity ID of the identity that authenticates this endpoint

sessionStatus

Number

Status of the endpoints NF Auth Session

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1482

{"createdAt":"2020-07-21T06:02:34.140+00:00","updatedAt":"2020-07-21T16:02:34.140+00:00","name":"Test Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"447deac5-db76-4e52-9740-777b3a448501","componentId":"","_links":{"self":{"href":"http://localhost/networks/f32dcce5-4cd2-4cd4-a9d9-a2310e2d942c/endpoints/447deac5-db76-4e52-9740-777b3a448501"},"network":{"href":"http://localhost/networks/f32dcce5-4cd2-4cd4-a9d9-a2310e2d942c"},"appWans":{"href":"http://localhost/networks/f32dcce5-4cd2-4cd4-a9d9-a2310e2d942c/endpoints/447deac5-db76-4e52-9740-777b3a448501/appWans"},"services":{"href":"http://localhost/networks/f32dcce5-4cd2-4cd4-a9d9-a2310e2d942c/endpoints/447deac5-db76-4e52-9740-777b3a448501/services"},"endpointGroups":{"href":"http://localhost/networks/f32dcce5-4cd2-4cd4-a9d9-a2310e2d942c/endpoints/447deac5-db76-4e52-9740-777b3a448501/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}}


Creating endpoints from csv

A POST request creates endpoints on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e/endpoints' -i -X POST \
    -H 'Content-Type: multipart/form-data' \
    -F 'file=@hello;type=multipart/form-data'

Example response

Path Type Description

businessKey

String

The businessKey of the process

endpoints

Array

Endpoints Data

gatewayClusters

Null

Gateway Clusters Names

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3040

{"businessKey":"88df687b-4a6f-4c50-8e4f-ad978e43ef3e","endpoints":[{"createdAt":"2020-07-21T06:02:34.350+00:00","updatedAt":"2020-07-21T16:02:34.350+00:00","name":"Alpha Gw","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"484905e9-3ca3-492d-9e31-02651f700e98","componentId":"","_links":{"self":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e/endpoints/484905e9-3ca3-492d-9e31-02651f700e98"},"network":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e"},"appWans":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e/endpoints/484905e9-3ca3-492d-9e31-02651f700e98/appWans"},"services":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e/endpoints/484905e9-3ca3-492d-9e31-02651f700e98/services"},"endpointGroups":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e/endpoints/484905e9-3ca3-492d-9e31-02651f700e98/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}},{"createdAt":"2020-07-21T06:02:34.350+00:00","updatedAt":"2020-07-21T16:02:34.350+00:00","name":"Asia GW","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"a58cbb80-5f47-4363-92dc-d83d3a1e3a20","componentId":"","_links":{"self":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e/endpoints/a58cbb80-5f47-4363-92dc-d83d3a1e3a20"},"network":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e"},"appWans":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e/endpoints/a58cbb80-5f47-4363-92dc-d83d3a1e3a20/appWans"},"services":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e/endpoints/a58cbb80-5f47-4363-92dc-d83d3a1e3a20/services"},"endpointGroups":{"href":"http://localhost/networks/88df687b-4a6f-4c50-8e4f-ad978e43ef3e/endpoints/a58cbb80-5f47-4363-92dc-d83d3a1e3a20/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}}],"gatewayClusters":null}


Updating an endpoint

A PUT request updates an endpoint on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/55786f4b-863c-4348-84f9-b54cd2b98118/endpoints/2a34181f-a5dd-494b-b8a9-418a75362031' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test Endpoint 01 New Name","o365BreakoutNextHopIp":null,"clientMfaEnable":null,"sessionIdentityId":null}'

Example response

Path Type Description

name

String

The endpoint’s name

id

String

The endpoint’s id

endpointType

String

The endpoint’s type

clientType

String

The endpoint’s client type

clientVersion

String

The endpoint’s client version

componentId

String

The Component ID of the endpoint resource

registrationKey

String

The one-time use registration key

registrationAttemptsLeft

Number

Remaining registration attempts

status

Number

Provisioning status of the endpoint

currentState

Number

Current state of the endpoint

stateLastUpdated

Null

Last time state of the endpoint was updated

haEndpointType

String

HAGW Endpoint that is part of High Availability Cluster

gatewayClusterId

Null

The ID of the Gateway Cluster that this Endpoint belongs to, or null if not clustered.

endpointProtectionRole

Null

HA Protection role for Endpoint

o365BreakoutNextHopIp

Null

Office 365 breakout optimization traffic next hop

source

Null

The source creating the Endpoint

clientMfaEnable

String

Is Client MFA Required on this endpoint.

createdAt

String

Record creation time

updatedAt

String

Record last modification time

syncId

Null

Client sync process that created this endpoint.

countryId

Null

The Country ID of the endpoint resource

networkId

Null

The Network ID of the endpoint resource

ownerIdentityId

Null

Identity Id of the owner

geoRegionId

Null

ID of the geo region for this endpoint

dataCenterId

Null

ID of the data centerfor this endpoint

sessionIdentityId

Null

Identity ID of the identity that authenticates this endpoint

sessionStatus

Number

Status of the endpoints NF Auth Session

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1482

{"createdAt":"2020-07-21T06:02:34.091+00:00","updatedAt":"2020-07-21T16:02:34.091+00:00","name":"Test Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"registrationKey":"regKey value","registrationAttemptsLeft":5,"status":100,"currentState":100,"stateLastUpdated":null,"endpointProtectionRole":null,"haEndpointType":"HAGW","o365BreakoutNextHopIp":null,"gatewayClusterId":null,"clientMfaEnable":"NO","ownerIdentityId":null,"countryId":null,"geoRegionId":null,"dataCenterId":null,"sessionIdentityId":null,"sessionStatus":100,"id":"2a34181f-a5dd-494b-b8a9-418a75362031","componentId":"","_links":{"self":{"href":"http://localhost/networks/55786f4b-863c-4348-84f9-b54cd2b98118/endpoints/2a34181f-a5dd-494b-b8a9-418a75362031"},"network":{"href":"http://localhost/networks/55786f4b-863c-4348-84f9-b54cd2b98118"},"appWans":{"href":"http://localhost/networks/55786f4b-863c-4348-84f9-b54cd2b98118/endpoints/2a34181f-a5dd-494b-b8a9-418a75362031/appWans"},"services":{"href":"http://localhost/networks/55786f4b-863c-4348-84f9-b54cd2b98118/endpoints/2a34181f-a5dd-494b-b8a9-418a75362031/services"},"endpointGroups":{"href":"http://localhost/networks/55786f4b-863c-4348-84f9-b54cd2b98118/endpoints/2a34181f-a5dd-494b-b8a9-418a75362031/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}}


Deleting an endpoint

A DELETE request deletes an endpoint on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/5ca75f5d-2833-43b8-b38c-5f52c485eceb/endpoints/5bbd7753-fee0-40e8-8a84-0814f163ee6f' -i -X DELETE \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001


Gateway Cluster

The gatewayCluster resource is used to create, modify and list gateway clusters for a Network. Gateway clusters represent High Availability (HA) gateways and allow services to be created on these gateway clusters. A gateway cluster can be created with a ProtectionType of Active/Standby (1:1). This is a configuration in which two endpoints are created. One endpoint is the active host for a service or services, the other is in standby mode and will take over if the active endpoint goes offline. The gateway cluster create request requires the EndpointType parameter similar to Endpoints and will create endpoints of that type.


Listing Gateway Clusters

A GET request lists all of the Gateway Clusters for a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a/gatewayClusters' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.gatewayClusters

Array

An array of GatewayCluster resources

_links

Object

Links to other resources

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1910

{"_embedded":{"gatewayClusters":[{"networkId":null,"status":0,"protectionType":"1:1","protectionGroupId":"GatewayCluster01","endpointType":"GW","geoRegionId":null,"ownerIdentityId":null,"createdAt":"2020-07-21T06:02:51.552+00:00","updatedAt":"2020-07-21T16:02:51.552+00:00","name":"GatewayCluster01","id":"45297a29-c6a9-42be-84d2-afcde7334248","_links":{"self":{"href":"http://localhost/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a/gatewayClusters/45297a29-c6a9-42be-84d2-afcde7334248"},"network":{"href":"http://localhost/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a"},"endpoints":{"href":"http://localhost/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a/gatewayClusters/45297a29-c6a9-42be-84d2-afcde7334248/endpoints"},"services":{"href":"http://localhost/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a/gatewayClusters/45297a29-c6a9-42be-84d2-afcde7334248/services"}}},{"networkId":null,"status":0,"protectionType":"1:1","protectionGroupId":"GatewayCluster01","endpointType":"GW","geoRegionId":null,"ownerIdentityId":null,"createdAt":"2020-07-21T06:02:51.552+00:00","updatedAt":"2020-07-21T16:02:51.552+00:00","name":"GatewayCluster01","id":"ad691773-58ac-422f-9735-77008a1699ce","_links":{"self":{"href":"http://localhost/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a/gatewayClusters/ad691773-58ac-422f-9735-77008a1699ce"},"network":{"href":"http://localhost/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a"},"endpoints":{"href":"http://localhost/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a/gatewayClusters/ad691773-58ac-422f-9735-77008a1699ce/endpoints"},"services":{"href":"http://localhost/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a/gatewayClusters/ad691773-58ac-422f-9735-77008a1699ce/services"}}}]},"_links":{"first":{"href":"http://localhost/networks/f91ebc0f-b5bc-4c41-8517-427c53c83c5a/gatewayClusters?page=1,size=10,sort=name,asc"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Fetching a Gateway Cluster

A GET request fetches a specific Gateway Cluster.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/d5920a69-c8c2-4d0f-9288-100c661650dd/gatewayClusters/619e32f3-f40f-4c24-9b4d-1d6f94e82483' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The gatewayCluster’s name

id

String

The gatewayCluster’s name

endpointType

String

The gatewayCluster’s endpoint’s types

protectionType

String

The gatewayCluster’s protection type((1:1(active-standby),round-robin

protectionGroupId

String

The assigned protection group Id for the gatewayCluster

geoRegionId

Null

GeoRegion ID of the gatewayCluster

status

Number

Provisioning status of the gatewayCluster

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 836

{"networkId":null,"status":0,"protectionType":"1:1","protectionGroupId":"GatewayCluster01","endpointType":"GW","geoRegionId":null,"ownerIdentityId":null,"createdAt":"2020-07-21T06:02:51.497+00:00","updatedAt":"2020-07-21T16:02:51.497+00:00","name":"GatewayCluster01","id":"619e32f3-f40f-4c24-9b4d-1d6f94e82483","_links":{"self":{"href":"http://localhost/networks/d5920a69-c8c2-4d0f-9288-100c661650dd/gatewayClusters/619e32f3-f40f-4c24-9b4d-1d6f94e82483"},"network":{"href":"http://localhost/networks/d5920a69-c8c2-4d0f-9288-100c661650dd"},"endpoints":{"href":"http://localhost/networks/d5920a69-c8c2-4d0f-9288-100c661650dd/gatewayClusters/619e32f3-f40f-4c24-9b4d-1d6f94e82483/endpoints"},"services":{"href":"http://localhost/networks/d5920a69-c8c2-4d0f-9288-100c661650dd/gatewayClusters/619e32f3-f40f-4c24-9b4d-1d6f94e82483/services"}}}


Creating a Gateway Cluster

A POST request creates a Gateway Cluster on a specific network.

When creating aGateway Cluster, either a GeoRegion Id or a DataCenter Id needs to be supplied. If you are creating public hosted endpoints in a Gateway Cluster (endpointType: GW) then a dataCenterId must be specified otherwise you will specify a geoRegionId.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/60f4139d-e2b1-4f7c-ac46-85eff2df5290/gatewayClusters' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test GatewayCluster 01","protectionType":"1:1","endpointId":null,"endpointType":"VCPEGW","geoRegionId":"15095af7-689e-46c5-95bf-2772116a65c0","dataCenterId":null}'
Path Type Description

name

String

The network’s name

endpointId

Null

The id of a non-ha endpoint to consume as a member of the GatewayCluster being created. Either endpointId or endpoint creation information (endpointType, geoRegionId, datacenterId) are required, but not both.

endpointType

String

The type of endpoints to create for the GatewayCluster. One of 'CL (Client)', 'GW (Hosted Public Gateway)', 'AWSCPEGW (AWS Private Gateway)', 'VCPEGW (V-CPE Gateway)'. Required if endpointId is not specified.

geoRegionId

String

GeoRegion ID for clients and non-hosted gateways

dataCenterId

Null

DataCenter ID for 'GW' type hosted endpoints

protectionType

String

Protection Type. One of '1:1', 'round-robin' (not supported yet).

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The GatewayCluster’s name

id

String

The gatewayCluster’s name

endpointType

String

The gatewayCluster’s endpoint’s types

protectionType

String

The gatewayCluster’s protection type((1:1(active-standby),round-robin

protectionGroupId

String

The assigned protection group Id for the gatewayCluster

geoRegionId

Null

GeoRegion ID of the gatewayCluster

status

Number

Provisioning status of the gatewayCluster

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/hal+json
Content-Length: 836

{"networkId":null,"status":0,"protectionType":"1:1","protectionGroupId":"GatewayCluster01","endpointType":"GW","geoRegionId":null,"ownerIdentityId":null,"createdAt":"2020-07-21T06:02:51.445+00:00","updatedAt":"2020-07-21T16:02:51.445+00:00","name":"GatewayCluster01","id":"e91000f1-62f6-4d7e-97fb-6d3654b36034","_links":{"self":{"href":"http://localhost/networks/60f4139d-e2b1-4f7c-ac46-85eff2df5290/gatewayClusters/e91000f1-62f6-4d7e-97fb-6d3654b36034"},"network":{"href":"http://localhost/networks/60f4139d-e2b1-4f7c-ac46-85eff2df5290"},"endpoints":{"href":"http://localhost/networks/60f4139d-e2b1-4f7c-ac46-85eff2df5290/gatewayClusters/e91000f1-62f6-4d7e-97fb-6d3654b36034/endpoints"},"services":{"href":"http://localhost/networks/60f4139d-e2b1-4f7c-ac46-85eff2df5290/gatewayClusters/e91000f1-62f6-4d7e-97fb-6d3654b36034/services"}}}


Updating a Gateway Cluster

A PUT request updates a Gateway Cluster on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/aef928b9-abb3-40b6-b331-7c01e62c4fa9/gatewayClusters/32be2171-b876-4187-80c8-e6081581f486' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test GatewayCluster 01 New Name"}'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The GatewayCluster’s name

id

String

The gatewayCluster’s name

endpointType

String

The gatewayCluster’s endpoint’s types

protectionType

String

The gatewayCluster’s protection type((1:1(active-standby),round-robin

protectionGroupId

String

The assigned protection group Id for the gatewayCluster

geoRegionId

Null

GeoRegion ID of the gatewayCluster

status

Number

Provisioning status of the gatewayCluster

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/hal+json
Content-Length: 836

{"networkId":null,"status":0,"protectionType":"1:1","protectionGroupId":"GatewayCluster01","endpointType":"GW","geoRegionId":null,"ownerIdentityId":null,"createdAt":"2020-07-21T06:02:51.397+00:00","updatedAt":"2020-07-21T16:02:51.397+00:00","name":"GatewayCluster01","id":"32be2171-b876-4187-80c8-e6081581f486","_links":{"self":{"href":"http://localhost/networks/aef928b9-abb3-40b6-b331-7c01e62c4fa9/gatewayClusters/32be2171-b876-4187-80c8-e6081581f486"},"network":{"href":"http://localhost/networks/aef928b9-abb3-40b6-b331-7c01e62c4fa9"},"endpoints":{"href":"http://localhost/networks/aef928b9-abb3-40b6-b331-7c01e62c4fa9/gatewayClusters/32be2171-b876-4187-80c8-e6081581f486/endpoints"},"services":{"href":"http://localhost/networks/aef928b9-abb3-40b6-b331-7c01e62c4fa9/gatewayClusters/32be2171-b876-4187-80c8-e6081581f486/services"}}}


Deleting a Gateway Cluster

A DELETE request deletes a Gateway Cluster on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/96e13ea5-3b14-4ce9-b1f9-d09dbb70a5d9/gatewayClusters/7fa7d6e0-9792-4055-ae02-414c226bc7af' -i -X DELETE \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001


Azure Virtual Wan Site

The Azure Virtual Wan Site resource


Listing Azure Virtual Wan Sites

A GET request lists all of the Azure Virtual Wan Sites.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.azureSubscriptions

Array

An array of Azure Subscription resources

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1845

{"_embedded":{"azureSubscriptions":[{"name":"AZ Sub 01","subscriptionId":"e77a671d-6390-4aa2-a1f7-56a6814c9744","tenantId":"042bd869-c49f-4aca-bd05-b6ac1317f744","applicationId":"48dd85db-1019-4a62-999c-92b79faa7444","applicationKey":"bcab5ab5-d2d9-4df4-b9f3-78555e5d1875","organizationId":"84c947b1-c70a-4b76-ac67-546cbc1c2839","ownerIdentityId":null,"createdAt":"2020-07-21T06:02:37.418+00:00","updatedAt":"2020-07-21T16:02:37.418+00:00","id":"384b6d84-5115-44f7-8c53-603d05eeef85","_links":{"organization":{"href":"http://localhost/organizations/feab7385-f000-41ba-aa08-b670f442c50a"},"self":{"href":"http://localhost/azureSubscriptions/384b6d84-5115-44f7-8c53-603d05eeef85"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/384b6d84-5115-44f7-8c53-603d05eeef85/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/384b6d84-5115-44f7-8c53-603d05eeef85/virtualWans"}}},{"name":"AZ Sub 02","subscriptionId":"4614ed3f-03cc-4bb9-9735-360991d6383a","tenantId":"e6f17070-e933-4bd2-836a-d7ae378f8786","applicationId":"3f311c4f-f912-4df7-bf88-8f5bccc2620b","applicationKey":"10e1820d-d6d7-4e54-a7c8-ad4bb5dde1de","organizationId":"135b36ac-a4be-4d93-8fc8-22871c8cf3b0","ownerIdentityId":null,"createdAt":"2020-07-21T06:02:37.418+00:00","updatedAt":"2020-07-21T16:02:37.418+00:00","id":"bf890a39-eca2-40b1-9a71-bedc46bd995a","_links":{"organization":{"href":"http://localhost/organizations/feab7385-f000-41ba-aa08-b670f442c50a"},"self":{"href":"http://localhost/azureSubscriptions/bf890a39-eca2-40b1-9a71-bedc46bd995a"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/bf890a39-eca2-40b1-9a71-bedc46bd995a/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/bf890a39-eca2-40b1-9a71-bedc46bd995a/virtualWans"}}}]},"_links":{"self":{"href":"http://localhost/azureSubscriptions"}}}


Creating an Azure Virtual Wan Site

A POST request creates an Azure Subscription.

Request Fields

Path Type Description

name

String

The Virtual Wan Site’s name

endpointId

String

The ID of the endpoint gateway the site is on

dataCenterId

String

The NetFoundry ID of the azure datacenter where the Virtual Wan Site will connect

azureSubscriptionId

Null

The azure subscription id

azureResourceGroupName

String

The resource group for the Virtual Wan Site

azureVirtualWanId

String

The name of the Virtual WAN this site will be on

publicIpAddress

String

The public IP Address for the Virtual Wan Site

bgp

Object

Optional configuration. Present if BGP is enabled for the Virtual Wan Site

bgp.localPeeringAddress.ipAddress

String

Local peering ip address.

bgp.localPeeringAddress.asn

Number

Local peering ASN.

bgp.bgpPeerWeight

Null

Peer weight for BGP

bgp.deviceLinkSpeed

Null

Speed of device link

bgp.deviceVendor

Null

Vendor of device

bgp.deviceModel

Null

Model of device

bgp.neighborPeers[].ipAddress

String

BGP LAN neighbor ip address.

bgp.neighborPeers[].asn

Number

BGP LAN neighbor ASN.

bgp.advertiseLocal

Boolean

true to advertise local.

bgp.advertisedPrefixes

Array

The private IP Address spaces.

Example CURL request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"name":"azsite01","endpointId":"2497abc1-f1ef-46e0-9571-792ded8045cd","dataCenterId":"21ac1cde-9fc6-4543-a7fb-07eff740c5df","azureSubscriptionId":null,"azureResourceGroupName":"resourceGroup01","azureVirtualWanId":"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1","publicIpAddress":"8.8.8.8","bgp":{"localPeeringAddress":{"ipAddress":"192.168.0.1","asn":64515},"bgpPeerWeight":null,"deviceLinkSpeed":null,"deviceVendor":null,"deviceModel":null,"neighborPeers":[{"ipAddress":"192.168.0.2","asn":64513},{"ipAddress":"192.168.0.3","asn":64514}],"advertiseLocal":true,"advertisedPrefixes":["10.0.0.0/24"]}}'

Example HTTP request

POST /rest/v1/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites HTTP/1.1
Content-Type: application/json
Content-Length: 640
Host: gateway.production.netfoundry.io

{"name":"azsite01","endpointId":"2497abc1-f1ef-46e0-9571-792ded8045cd","dataCenterId":"21ac1cde-9fc6-4543-a7fb-07eff740c5df","azureSubscriptionId":null,"azureResourceGroupName":"resourceGroup01","azureVirtualWanId":"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1","publicIpAddress":"8.8.8.8","bgp":{"localPeeringAddress":{"ipAddress":"192.168.0.1","asn":64515},"bgpPeerWeight":null,"deviceLinkSpeed":null,"deviceVendor":null,"deviceModel":null,"neighborPeers":[{"ipAddress":"192.168.0.2","asn":64513},{"ipAddress":"192.168.0.3","asn":64514}],"advertiseLocal":true,"advertisedPrefixes":["10.0.0.0/24"]}}

Example HTTPie request

$ echo '{"name":"azsite01","endpointId":"2497abc1-f1ef-46e0-9571-792ded8045cd","dataCenterId":"21ac1cde-9fc6-4543-a7fb-07eff740c5df","azureSubscriptionId":null,"azureResourceGroupName":"resourceGroup01","azureVirtualWanId":"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1","publicIpAddress":"8.8.8.8","bgp":{"localPeeringAddress":{"ipAddress":"192.168.0.1","asn":64515},"bgpPeerWeight":null,"deviceLinkSpeed":null,"deviceVendor":null,"deviceModel":null,"neighborPeers":[{"ipAddress":"192.168.0.2","asn":64513},{"ipAddress":"192.168.0.3","asn":64514}],"advertiseLocal":true,"advertisedPrefixes":["10.0.0.0/24"]}}' | http POST 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites' \
    'Content-Type:application/json'

Example response

Response Fields

Path Type Description

name

String

The Virtual Wan Site’s name

id

Null

The Virtual Wan Site’s id

azureResourceGroupName

String

The resource group for the Virtual Wan Site

azureId

String

The Resource URL in Azure for the Virtual Wan Site

azureSubscriptionId

Null

The id of the azure subscription that the AVW Site is linked to.

azureVirtualWanId

String

The Resource URL for the Virtual Wan for the Virtual Wan Site

azureVirtualWanName

String

The name of the Virtual Wan for the Virtual Wan Site

preSharedKey

Null

The NetFoundry internal Pre-shared key for IP Sec registration

ipSecResponder01

Null

The first IP address for the Azure Virtual Wan Site

ipSecResponder02

Null

The second IP address for the Azure Virtual Wan Site

publicIpAddress

String

The public IP Address for the Virtual Wan Site

advertisedPrefixes

Null

The private IP Address space

bgp

Boolean

Is BGP enabled for the Virtual Wan Site

bgpPeeringAddress

Null

Peering address for BGP if enabled

bgpASN

Null

ASN for BGP if enabled

bgpPeerWeight

Null

Peer weight for BGP if enabled

deviceLinkSpeed

Number

Speed of device link

deviceVendor

Null

Vendor of device

deviceModel

Null

Model of device

neighborPeers

Null

BGP LAN neighbors ip address and ASN.

advertiseLocal

Boolean

true to advertise local.

status

Number

Current status of the Virtual Wan Site

deployable

Boolean

Boolean flag, true if this avw site can be deployed

createdAt

Null

Record creation time

updatedAt

Null

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1316

{"azureId":"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnSites/azsite01?api-version=2018-04-01","azureSubscriptionId":null,"azureResourceGroupName":"resourceGroup01","azureVirtualWanId":"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/virtualWANs/wan1","publicIpAddress":"8.8.8.8","bgp":false,"bgpPeeringAddress":null,"bgpASN":null,"bgpPeerWeight":null,"deviceLinkSpeed":0,"deviceVendor":null,"deviceModel":null,"neighborPeers":null,"advertiseLocal":true,"advertisedPrefixes":null,"preSharedKey":null,"ipSecResponder01":null,"ipSecResponder02":null,"status":0,"ownerIdentityId":null,"createdAt":null,"updatedAt":null,"name":"azsite01","deployable":false,"azureVirtualWanName":"wan1","id":null,"_links":{"self":{"href":"http://localhost/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites/6f4839bb-723b-409d-8577-d17023acdaaa"},"dataCenter":{"href":"http://localhost/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites/6f4839bb-723b-409d-8577-d17023acdaaa/dataCenter"},"endpoint":{"href":"http://localhost/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites/6f4839bb-723b-409d-8577-d17023acdaaa/endpoint"},"azureSubscription":{"href":"http://localhost/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59"}}}


Deleting an Azure Virtual Wan Site

A DELETE request deletes an Azure Virtual Wan Site.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites/fb307012-6fff-4e2c-9ec2-b8c0ef3efcdf' -i -X DELETE \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 202 Accepted


Endpoint Group

The Endpoint Group resource is used to create, modify and list endpoint groups for a Network.


Listing endpoint groups

A GET request lists all of the endpoint groups for a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/9d14b577-49f8-4d4c-b00f-6b351cc8bbcc/endpointGroups' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.endpointGroups

Array

An array of Endpoint Group resources

_links

Object

Links to other resources

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1437

{"_embedded":{"endpointGroups":[{"createdAt":"2020-07-21T06:02:19.361+00:00","updatedAt":"2020-07-21T16:02:19.361+00:00","name":"Endpoint Group 01","networkId":null,"source":null,"syncId":null,"ownerIdentityId":null,"id":"a083d1b4-7af4-4f12-bb21-af25ef9c89b6","_links":{"self":{"href":"http://localhost/networks/9d14b577-49f8-4d4c-b00f-6b351cc8bbcc/endpointGroups/a083d1b4-7af4-4f12-bb21-af25ef9c89b6"},"network":{"href":"http://localhost/networks/9d14b577-49f8-4d4c-b00f-6b351cc8bbcc"},"endpoints":{"href":"http://localhost/networks/9d14b577-49f8-4d4c-b00f-6b351cc8bbcc/endpointGroups/a083d1b4-7af4-4f12-bb21-af25ef9c89b6/endpoints"}}},{"createdAt":"2020-07-21T06:02:19.361+00:00","updatedAt":"2020-07-21T16:02:19.361+00:00","name":"Endpoint Group 02","networkId":null,"source":null,"syncId":null,"ownerIdentityId":null,"id":"9a0a816e-498f-4033-9236-e86d175b0f0f","_links":{"self":{"href":"http://localhost/networks/9d14b577-49f8-4d4c-b00f-6b351cc8bbcc/endpointGroups/9a0a816e-498f-4033-9236-e86d175b0f0f"},"network":{"href":"http://localhost/networks/9d14b577-49f8-4d4c-b00f-6b351cc8bbcc"},"endpoints":{"href":"http://localhost/networks/9d14b577-49f8-4d4c-b00f-6b351cc8bbcc/endpointGroups/9a0a816e-498f-4033-9236-e86d175b0f0f/endpoints"}}}]},"_links":{"first":{"href":"http://localhost/networks/9d14b577-49f8-4d4c-b00f-6b351cc8bbcc/appWans?page=1,size=10,sort=name,asc"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Fetching an endpoint group

A GET request fetches a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/12fe3e82-379f-4f02-b4bd-e9009132e138/endpointGroups/4b1fabad-02e2-4551-809f-7abdf16141dc' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The endpoint’s name

id

String

The endpoint’s id

createdAt

String

Record creation time

updatedAt

String

Record last modification time

source

Null

The source creating the Endpoint Group

syncId

Null

Client sync process that created this endpoint.

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 609

{"createdAt":"2020-07-21T06:02:19.188+00:00","updatedAt":"2020-07-21T16:02:19.188+00:00","name":"Test Endpoint Group 01","networkId":null,"source":null,"syncId":null,"ownerIdentityId":null,"id":"4b1fabad-02e2-4551-809f-7abdf16141dc","_links":{"self":{"href":"http://localhost/networks/12fe3e82-379f-4f02-b4bd-e9009132e138/endpointGroups/4b1fabad-02e2-4551-809f-7abdf16141dc"},"network":{"href":"http://localhost/networks/12fe3e82-379f-4f02-b4bd-e9009132e138"},"endpoints":{"href":"http://localhost/networks/12fe3e82-379f-4f02-b4bd-e9009132e138/endpointGroups/4b1fabad-02e2-4551-809f-7abdf16141dc/endpoints"}}}


Creating an endpoint group

A POST request creates an endpoint group on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/b6d308e9-e616-4deb-a598-c906c732e739/endpointGroups' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test Endpoint Group 01","source":null,"syncId":null}'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The Endpoint Group name

id

String

The Endpoint Group id

createdAt

String

Record creation time

updatedAt

String

Record last modification time

source

Null

The source creating the Endpoint Group

syncId

Null

Client sync process that created this endpoint.

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 201 Created
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 609

{"createdAt":"2020-07-21T06:02:19.321+00:00","updatedAt":"2020-07-21T16:02:19.321+00:00","name":"Test Endpoint Group 01","networkId":null,"source":null,"syncId":null,"ownerIdentityId":null,"id":"6465230d-cc90-4101-a663-c49b3155a4b3","_links":{"self":{"href":"http://localhost/networks/b6d308e9-e616-4deb-a598-c906c732e739/endpointGroups/6465230d-cc90-4101-a663-c49b3155a4b3"},"network":{"href":"http://localhost/networks/b6d308e9-e616-4deb-a598-c906c732e739"},"endpoints":{"href":"http://localhost/networks/b6d308e9-e616-4deb-a598-c906c732e739/endpointGroups/6465230d-cc90-4101-a663-c49b3155a4b3/endpoints"}}}


Updating an endpoint group

A PUT request updates an endpoint group on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/7173c4c3-6b8f-499d-8af4-ad2ec99d2019/endpointGroups/375096f9-d8c3-4466-94d3-261b05316aee' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test Endpoint Group 01 - Updated","source":null,"syncId":null}'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The Endpoint Group name

id

String

The Endpoint Group id

createdAt

String

Record creation time

updatedAt

String

Record last modification time

source

Null

The source creating the Endpoint Group

syncId

Null

Client sync process that created this endpoint.

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 619

{"createdAt":"2020-07-21T06:02:19.250+00:00","updatedAt":"2020-07-21T16:02:19.250+00:00","name":"Test Endpoint Group 01 - Updated","networkId":null,"source":null,"syncId":null,"ownerIdentityId":null,"id":"375096f9-d8c3-4466-94d3-261b05316aee","_links":{"self":{"href":"http://localhost/networks/7173c4c3-6b8f-499d-8af4-ad2ec99d2019/endpointGroups/375096f9-d8c3-4466-94d3-261b05316aee"},"network":{"href":"http://localhost/networks/7173c4c3-6b8f-499d-8af4-ad2ec99d2019"},"endpoints":{"href":"http://localhost/networks/7173c4c3-6b8f-499d-8af4-ad2ec99d2019/endpointGroups/375096f9-d8c3-4466-94d3-261b05316aee/endpoints"}}}

Deleting an endpoint group

A DELETE request deletes an endpoint group on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/ab49dfb6-b1a3-40f4-b1a3-c16f73144af1/endpointGroups/ee67aa4a-b75c-4240-bf1a-8e9c212c6570' -i -X DELETE \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001

Adding endpoints to an endpoint group

A POST request adds the list of endpoints to an endpoint group on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/2ebd9658-91db-48b4-847f-429040564e51/endpointGroups/3e435920-7153-4e25-ac17-f7a89b5b911c/endpoints' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"ids":["320dd37c-0d08-4536-ba6b-8be1603fa479","f163b786-9f86-4fdf-b50c-527eb62f5c59"]}'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 609

{"createdAt":"2020-07-21T06:02:19.132+00:00","updatedAt":"2020-07-21T16:02:19.132+00:00","name":"Test Endpoint Group 01","networkId":null,"source":null,"syncId":null,"ownerIdentityId":null,"id":"3e435920-7153-4e25-ac17-f7a89b5b911c","_links":{"self":{"href":"http://localhost/networks/2ebd9658-91db-48b4-847f-429040564e51/endpointGroups/3e435920-7153-4e25-ac17-f7a89b5b911c"},"network":{"href":"http://localhost/networks/2ebd9658-91db-48b4-847f-429040564e51"},"endpoints":{"href":"http://localhost/networks/2ebd9658-91db-48b4-847f-429040564e51/endpointGroups/3e435920-7153-4e25-ac17-f7a89b5b911c/endpoints"}}}

Removing endpoints from an endpoint group

A DELETE request removes the list of endpoints from an endpoint group on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/e43f07ac-53dd-4c21-96f9-41f86a158cea/endpointGroups/879ae91e-420f-436b-b5dd-3ca38cdf6f10/endpoints' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -d '{"ids":["a33998a4-daf5-4c75-9811-00578edcc80e"]}'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 609

{"createdAt":"2020-07-21T06:02:19.290+00:00","updatedAt":"2020-07-21T16:02:19.290+00:00","name":"Test Endpoint Group 01","networkId":null,"source":null,"syncId":null,"ownerIdentityId":null,"id":"879ae91e-420f-436b-b5dd-3ca38cdf6f10","_links":{"self":{"href":"http://localhost/networks/e43f07ac-53dd-4c21-96f9-41f86a158cea/endpointGroups/879ae91e-420f-436b-b5dd-3ca38cdf6f10"},"network":{"href":"http://localhost/networks/e43f07ac-53dd-4c21-96f9-41f86a158cea"},"endpoints":{"href":"http://localhost/networks/e43f07ac-53dd-4c21-96f9-41f86a158cea/endpointGroups/879ae91e-420f-436b-b5dd-3ca38cdf6f10/endpoints"}}}


Service

The Service resource is used to create, modify and list services for a Network. Service types have differing POST signatures for their required fields but are persisted in the same general type. Responses for all Service types will be the full service object.


Listing Services paginated

A GET request returns a paged representation all of the Services for a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/c14b2f41-5cc6-4c56-a9d6-209282de5d27/services?page=0&size=10&sort=name,asc' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.services

Array

An array of Service resources

_links

Object

Links to other resources and pages

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3255

{"_embedded":{"services":[{"serviceClass":"CS","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":null,"multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":"10.10.20.145","networkNetmask":null,"networkFirstPort":443,"networkLastPort":443,"interceptIp":"1.1.1.1","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":443,"interceptLastPort":443,"gatewayIp":null,"gatewayCidrBlock":0,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":null,"endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2020-07-21T06:02:48.013+00:00","updatedAt":"2020-07-21T16:02:48.013+00:00","name":"Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"7ace6726-22ba-49f8-9616-d90dc78a469a","_links":{"self":{"href":"http://localhost/networks/c14b2f41-5cc6-4c56-a9d6-209282de5d27/services/7ace6726-22ba-49f8-9616-d90dc78a469a"},"network":{"href":"http://localhost/networks/c14b2f41-5cc6-4c56-a9d6-209282de5d27"},"endpoint":{"href":"http://localhost/networks/c14b2f41-5cc6-4c56-a9d6-209282de5d27/endpoints/99208a8c-c6e6-4d6d-95f0-60e80e94920d"},"appWans":{"href":"http://localhost/networks/c14b2f41-5cc6-4c56-a9d6-209282de5d27/endpoints/99208a8c-c6e6-4d6d-95f0-60e80e94920d/appWans"}}},{"serviceClass":"GW","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":"YES","multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":null,"networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":"1.2.3.4","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":"10.11.12.13","gatewayCidrBlock":24,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":"INTERCEPT_ALL","endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2020-07-21T06:02:48.013+00:00","updatedAt":"2020-07-21T16:02:48.013+00:00","name":"Service 02","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"b0be6f88-8b7a-4c54-9363-117380e3b4aa","_links":{"self":{"href":"http://localhost/networks/c14b2f41-5cc6-4c56-a9d6-209282de5d27/services/b0be6f88-8b7a-4c54-9363-117380e3b4aa"},"network":{"href":"http://localhost/networks/c14b2f41-5cc6-4c56-a9d6-209282de5d27"},"endpoint":{"href":"http://localhost/networks/c14b2f41-5cc6-4c56-a9d6-209282de5d27/endpoints/99208a8c-c6e6-4d6d-95f0-60e80e94920d"}}}]},"_links":{"self":{"href":"http://localhost/networks/c14b2f41-5cc6-4c56-a9d6-209282de5d27/services?page=0,size=10,sort=name,asc"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Listing services

A GET request lists all of the services for a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/54770aed-01a4-481d-a902-2ea6fc9b7180/services' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.services

Array

An array of Service resources

_links

Object

Links to other resources and pages

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3255

{"_embedded":{"services":[{"serviceClass":"CS","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":null,"multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":"10.10.20.145","networkNetmask":null,"networkFirstPort":443,"networkLastPort":443,"interceptIp":"1.1.1.1","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":443,"interceptLastPort":443,"gatewayIp":null,"gatewayCidrBlock":0,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":null,"endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2020-07-21T06:02:47.855+00:00","updatedAt":"2020-07-21T16:02:47.855+00:00","name":"Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"09891ef7-bdc1-49a1-8965-18c684862f16","_links":{"self":{"href":"http://localhost/networks/54770aed-01a4-481d-a902-2ea6fc9b7180/services/09891ef7-bdc1-49a1-8965-18c684862f16"},"network":{"href":"http://localhost/networks/54770aed-01a4-481d-a902-2ea6fc9b7180"},"endpoint":{"href":"http://localhost/networks/54770aed-01a4-481d-a902-2ea6fc9b7180/endpoints/178c15a9-9931-4707-abf1-136c0ec02343"},"appWans":{"href":"http://localhost/networks/54770aed-01a4-481d-a902-2ea6fc9b7180/endpoints/178c15a9-9931-4707-abf1-136c0ec02343/appWans"}}},{"serviceClass":"GW","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":"YES","multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":null,"networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":"1.2.3.4","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":"10.11.12.13","gatewayCidrBlock":24,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":"INTERCEPT_ALL","endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2020-07-21T06:02:47.855+00:00","updatedAt":"2020-07-21T16:02:47.855+00:00","name":"Service 02","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"600ea946-41c3-463e-a33f-26e80164f42e","_links":{"self":{"href":"http://localhost/networks/54770aed-01a4-481d-a902-2ea6fc9b7180/services/600ea946-41c3-463e-a33f-26e80164f42e"},"network":{"href":"http://localhost/networks/54770aed-01a4-481d-a902-2ea6fc9b7180"},"endpoint":{"href":"http://localhost/networks/54770aed-01a4-481d-a902-2ea6fc9b7180/endpoints/178c15a9-9931-4707-abf1-136c0ec02343"}}}]},"_links":{"self":{"href":"http://localhost/networks/54770aed-01a4-481d-a902-2ea6fc9b7180/services?page=0,size=10,sort=name,asc"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Listing Services for network group

A GET request returns a list of all the Services for a network group.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networkgroups/5182d594-4b5e-4d85-8306-0f721db7bda1/services' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.services

Array

An array of Service resources

_links

Object

Links to other resources and pages

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 2072

{"_embedded":{"services":[{"serviceClass":"CS","serviceInterceptType":null,"serviceType":null,"lowLatency":null,"dataInterleaving":null,"transparency":null,"localNetworkGateway":null,"multicast":null,"dnsOptions":null,"icmpTunnel":null,"cryptoLevel":null,"permanentConnection":null,"collectionLocation":null,"pbrType":null,"rateSmoothing":null,"networkIp":null,"networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":null,"interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":null,"gatewayCidrBlock":0,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":null,"endpointId":"c7e5fbce-f26f-41ee-b28e-ea142446417f","gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":null,"updatedAt":null,"name":"Service 02","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":null},{"serviceClass":"CS","serviceInterceptType":null,"serviceType":null,"lowLatency":null,"dataInterleaving":null,"transparency":null,"localNetworkGateway":null,"multicast":null,"dnsOptions":null,"icmpTunnel":null,"cryptoLevel":null,"permanentConnection":null,"collectionLocation":null,"pbrType":null,"rateSmoothing":null,"networkIp":null,"networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":null,"interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":null,"gatewayCidrBlock":0,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":null,"endpointId":"c7e5fbce-f26f-41ee-b28e-ea142446417f","gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":null,"updatedAt":null,"name":"Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":null}]},"_links":{"self":{"href":"http://localhost/networkgroups/5182d594-4b5e-4d85-8306-0f721db7bda1/services"}}}


Fetching a Service

A GET request fetches a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/7d13900f-6513-4e53-947f-11e5af07550d/services/e3c5d36c-e00b-4eaa-b51e-8dd0c5430db7' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

name

String

The service’s name

id

String

The service’s id

serviceClass

String

The service class

serviceInterceptType

String

The intercept type

serviceType

String

The type of service

lowLatency

String

Low latency service setting

dataInterleaving

String

Data interleaving service setting

transparency

String

Transparency setting

localNetworkGateway

Null

Boolean for local network gateway activation

multicast

String

Multicast setting

dnsOptions

String

DNS Service Options

icmpTunnel

String

Allow ICMP tunneling

cryptoLevel

String

Cryptographic level

permanentConnection

String

Is this a permanent connection

collectionLocation

String

Location to send collection data to

pbrType

String

PBR Type

rateSmoothing

String

Rate smoothing active

networkIp

String

Network IP

networkNetmask

Null

Network Netmask

networkFirstPort

Number

First network port in range

networkLastPort

Number

Last network port in range

interceptIp

String

Intercept IP

interceptDnsHostname

Null

Ziti Fabric DNS Intercept hostname

interceptDnsPort

Number

Ziti Fabric DNS Intercept port

interceptFirstPort

Number

First intercept port in range

interceptLastPort

Number

Last intercept port in range

gatewayIp

Null

Gateway IP

gatewayNetmask

String

Gateway Netmask

gatewayCidrBlock

Number

Gateway CIDR Block

netflowIndex

Number

Netwflow index

profileIndex

Number

Profile index

protectionGroupId

Null

Protection Group Id

portInterceptMode

Null

Intercept Mode of intercept_all or specific_ports

interceptPorts

Object

Applicable to IP network service map containingsets for include[] and exclude[] keys of first and last for sets of ports ex. first 22 last 25

interceptIncludePorts

Null

Intercept these ports

interceptExcludePorts

Null

Do not intercept these ports

o365Conflict

Boolean

For Azure customers, is this service address space in conflict

status

Number

Provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

endpointId

Null

Endpoint id associated with the service

gatewayClusterId

Null

Gateway cluster id if the service endpoint is of cluster type

networkId

Null

The Network ID of the service resource

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1557

{"serviceClass":"CS","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":null,"multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":"10.10.20.145","networkNetmask":null,"networkFirstPort":443,"networkLastPort":443,"interceptIp":"1.1.1.1","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":443,"interceptLastPort":443,"gatewayIp":null,"gatewayCidrBlock":0,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":null,"endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2020-07-21T06:02:47.901+00:00","updatedAt":"2020-07-21T16:02:47.901+00:00","name":"Test Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"e3c5d36c-e00b-4eaa-b51e-8dd0c5430db7","_links":{"self":{"href":"http://localhost/networks/7d13900f-6513-4e53-947f-11e5af07550d/services/e3c5d36c-e00b-4eaa-b51e-8dd0c5430db7"},"network":{"href":"http://localhost/networks/7d13900f-6513-4e53-947f-11e5af07550d"},"endpoint":{"href":"http://localhost/networks/7d13900f-6513-4e53-947f-11e5af07550d/endpoints/80e944a8-03e0-43de-8dab-f97702660f51"},"appWans":{"href":"http://localhost/networks/7d13900f-6513-4e53-947f-11e5af07550d/endpoints/80e944a8-03e0-43de-8dab-f97702660f51/appWans"}}}


Creating an ICMP Service

A POST request creates an ICMP Service on a specific network.

When creating an ICMP Service, either an endpointId or a gatewayClusterId (for High Availability) needs to be supplied.

Example request

Path Type Description

name

String

The Service’s name

endpointId

String

Optional.(either endpointId or gatewayClusterId) UUID of endpoint to register Service on

serviceClass

String

The service class

serviceInterceptType

String

The intercept type

serviceType

String

The type of service

networkIp

String

Network IP

interceptIp

String

Intercept IP

lowLatency

String

Optional. Low latency service setting

dataInterleaving

String

Optional. Data interleaving service setting

transparency

String

Optional. Transparency setting

multicast

String

Optional. Multicast setting

dnsOptions

String

Optional. DNS Service Options

icmpTunnel

String

Optional. Allow ICMP tunneling

cryptoLevel

String

Optional. Cryptographic level

permanentConnection

String

Optional. Is this a permanent connection

collectionLocation

String

Optional. Location to send collection data to

pbrType

String

Optional. PBR Type

rateSmoothing

String

Optional. Rate smoothing active

netflowIndex

Number

Optional. Netwflow index

profileIndex

Number

Optional. Profile index

gatewayClusterId

Null

Optional.(either endpointId or gatewayClusterId) HA GW Cluster Id

subscriptionId

Null

The ID of the subscription this service is being created under

endpoint

Null

Endpoint as code

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/e22209e3-0aca-42a3-b4ae-4385599f8a1f/services' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"serviceClass":"ICMP","name":"Test Icmp Service 01","serviceClass":"ICMP","serviceInterceptType":"IP","serviceType":"ALL","endpointId":"958e7849-53cd-4173-894a-d6e168fd741d","lowLatency":"YES","dataInterleaving":"YES","transparency":"NO","multicast":"ON","dnsOptions":"NONE","icmpTunnel":"NO","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"ALL","rateSmoothing":"NO","netflowIndex":-1,"profileIndex":-1,"gatewayClusterId":null,"subscriptionId":null,"endpoint":null,"networkIp":"1.2.3.4","interceptIp":"1.1.1.1"}'

Example response

Path Type Description

name

String

The service’s name

id

String

The service’s id

serviceClass

String

The service class

serviceInterceptType

String

The intercept type

serviceType

String

The type of service

lowLatency

String

Low latency service setting

dataInterleaving

String

Data interleaving service setting

transparency

String

Transparency setting

localNetworkGateway

Null

Boolean for local network gateway activation

multicast

String

Multicast setting

dnsOptions

String

DNS Service Options

icmpTunnel

String

Allow ICMP tunneling

cryptoLevel

String

Cryptographic level

permanentConnection

String

Is this a permanent connection

collectionLocation

String

Location to send collection data to

pbrType

String

PBR Type

rateSmoothing

String

Rate smoothing active

networkIp

String

Network IP

networkNetmask

Null

Network Netmask

networkFirstPort

Number

First network port in range

networkLastPort

Number

Last network port in range

interceptIp

String

Intercept IP

interceptFirstPort

Number

First intercept port in range

interceptLastPort

Number

Last intercept port in range

interceptDnsHostname

Null

Ziti Fabric DNS Intercept hostname

interceptDnsPort

Number

Ziti Fabric DNS Intercept port

gatewayIp

Null

Gateway IP

gatewayNetmask

String

Gateway Netmask

gatewayCidrBlock

Number

Gateway CIDR Block

netflowIndex

Number

Netwflow index

profileIndex

Number

Profile index

protectionGroupId

Null

Protection Group Id

portInterceptMode

Null

Intercept Mode of intercept_all or specific_ports

interceptPorts

Object

Applicable to IP network service map containingsets for include[] and exclude[] keys of first and last for sets of ports ex. first 22 last 25

interceptIncludePorts

Null

Intercept these ports

interceptExcludePorts

Null

Do not intercept these ports

status

Number

Provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

endpointId

Null

Endpoint id associated with the service

gatewayClusterId

Null

Gateway cluster id if the service endpoint is of cluster type

networkId

Null

The Network ID of the service resource

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1409

{"serviceClass":"ICMP","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"NO","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":null,"multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"NO","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"NO","networkIp":"10.10.20.145","networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":"1.1.1.1","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":null,"gatewayCidrBlock":0,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":null,"endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2020-07-21T06:02:48.141+00:00","updatedAt":"2020-07-21T16:02:48.141+00:00","name":"Test Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"dbce8a76-557c-4e56-b0de-e648024535f6","_links":{"self":{"href":"http://localhost/networks/e22209e3-0aca-42a3-b4ae-4385599f8a1f/services/dbce8a76-557c-4e56-b0de-e648024535f6"},"network":{"href":"http://localhost/networks/e22209e3-0aca-42a3-b4ae-4385599f8a1f"},"endpoint":{"href":"http://localhost/networks/e22209e3-0aca-42a3-b4ae-4385599f8a1f/endpoints/7a65eaed-90a0-4540-913f-92d4eba8e123"}}}


Creating an IP Host Service

A POST request creates an IP Host Service on a specific network.

When creating an IP Host Service, either an endpointId or a gatewayClusterId (for High Availability) needs to be supplied.

Example request

Path Type Description

name

String

The Service’s name

endpointId

String

Optional.(either endpointId or gatewayClusterId) UUID of endpoint to register Service on

serviceClass

String

The service class is one of * CS * GW * ICMP

serviceInterceptType

String

The intercept type

serviceType

String

The type of service

networkIp

String

Network IP

networkFirstPort

Number

First network port in range

networkLastPort

Number

Last network port in range

interceptIp

String

Intercept IP

interceptFirstPort

Number

First intercept port in range

interceptLastPort

Number

Last intercept port in range

interceptDnsHostname

Null

Ziti Fabric DNS Intercept hostname

interceptDnsPort

Number

Ziti Fabric DNS Intercept port

lowLatency

String

Optional. Low latency service setting

dataInterleaving

String

Optional. Data interleaving service setting

transparency

String

Optional. Transparency setting

multicast

String

Optional. Multicast setting

dnsOptions

String

Optional. DNS Service Options

icmpTunnel

String

Optional, default: YES Allow TCP over ICMP

cryptoLevel

String

Optional. Cryptographic level

permanentConnection

String

Optional. Is this a permanent connection

collectionLocation

String

Optional. Location to send collection data to

pbrType

String

Optional. PBR Type

rateSmoothing

String

Optional. Rate smoothing active

netflowIndex

Number

Optional. Netwflow index

profileIndex

Number

Optional. Profile index

gatewayClusterId

Null

Optional.(either endpointId or gatewayClusterId) HA GW Cluster Id

subscriptionId

Null

The ID of the subscription this service is being created under

endpoint

Null

Endpoint as code

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/c14b7a80-f992-4e75-90a2-62cfe2a8d345/services' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"serviceClass":"CS","name":"Test Client Service 01","serviceClass":"CS","serviceInterceptType":"IP","serviceType":"ALL","endpointId":"958e7849-53cd-4173-894a-d6e168fd741d","lowLatency":"YES","dataInterleaving":"YES","transparency":"NO","multicast":"ON","dnsOptions":"TUNNELING","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"ALL","rateSmoothing":"NO","netflowIndex":-1,"profileIndex":-1,"gatewayClusterId":null,"subscriptionId":null,"endpoint":null,"networkIp":"1.2.3.4","networkFirstPort":443,"networkLastPort":445,"interceptIp":"1.1.1.1","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":443,"interceptLastPort":445}'

Example response

Path Type Description

name

String

The service’s name

id

String

The service’s id

serviceClass

String

The service class

serviceInterceptType

String

The intercept type

serviceType

String

The type of service

lowLatency

String

Low latency service setting

dataInterleaving

String

Data interleaving service setting

transparency

String

Transparency setting

localNetworkGateway

Null

Boolean for local network gateway activation

multicast

String

Multicast setting

dnsOptions

String

DNS Service Options

icmpTunnel

String

Allow ICMP tunneling

cryptoLevel

String

Cryptographic level

permanentConnection

String

Is this a permanent connection

collectionLocation

String

Location to send collection data to

pbrType

String

PBR Type

rateSmoothing

String

Rate smoothing active

networkIp

String

Network IP

networkNetmask

Null

Network Netmask

networkFirstPort

Number

First network port in range

networkLastPort

Number

Last network port in range

interceptIp

String

Intercept IP

interceptFirstPort

Number

First intercept port in range

interceptLastPort

Number

Last intercept port in range

interceptDnsHostname

Null

Ziti Fabric DNS Intercept hostname

interceptDnsPort

Number

Ziti Fabric DNS Intercept port

gatewayIp

Null

Gateway IP

gatewayNetmask

String

Gateway Netmask

gatewayCidrBlock

Number

Gateway CIDR Block

netflowIndex

Number

Netwflow index

profileIndex

Number

Profile index

protectionGroupId

Null

Protection Group Id

portInterceptMode

Null

Intercept Mode of intercept_all or specific_ports

interceptPorts

Object

Applicable to IP network service map containingsets for include[] and exclude[] keys of first and last for sets of ports ex. first 22 last 25

interceptIncludePorts

Null

Intercept these ports

interceptExcludePorts

Null

Do not intercept these ports

status

Number

Provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

endpointId

Null

Endpoint id associated with the service

gatewayClusterId

Null

Gateway cluster id if the service endpoint is of cluster type

networkId

Null

The Network ID of the service resource

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1557

{"serviceClass":"CS","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":null,"multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":"10.10.20.145","networkNetmask":null,"networkFirstPort":443,"networkLastPort":443,"interceptIp":"1.1.1.1","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":443,"interceptLastPort":443,"gatewayIp":null,"gatewayCidrBlock":0,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":null,"endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2020-07-21T06:02:47.932+00:00","updatedAt":"2020-07-21T16:02:47.932+00:00","name":"Test Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"e85bdf85-0888-444f-ae34-0d106f2be585","_links":{"self":{"href":"http://localhost/networks/c14b7a80-f992-4e75-90a2-62cfe2a8d345/services/e85bdf85-0888-444f-ae34-0d106f2be585"},"network":{"href":"http://localhost/networks/c14b7a80-f992-4e75-90a2-62cfe2a8d345"},"endpoint":{"href":"http://localhost/networks/c14b7a80-f992-4e75-90a2-62cfe2a8d345/endpoints/28fb9364-b041-4f30-accf-95d7e992b52e"},"appWans":{"href":"http://localhost/networks/c14b7a80-f992-4e75-90a2-62cfe2a8d345/endpoints/28fb9364-b041-4f30-accf-95d7e992b52e/appWans"}}}


Creating an IP Network Service

A POST request creates an IP Network Service on a specific network.

When creating an IP Network Service, either an endpointId or a gatewayClusterId (for High Availability) needs to be supplied.

Example request

Path Type Description

name

String

The Service’s name

endpointId

String

Optional.(either endpointId or gatewayClusterId) UUID of endpoint to register Service on

serviceClass

String

The service class

serviceInterceptType

String

The intercept type

serviceType

String

The type of service

gatewayIp

String

Gateway IP

gatewayCidrBlock

Number

CIDR block of the Gateway

interceptIp

String

Intercept IP

lowLatency

String

Optional. Low latency service setting

dataInterleaving

String

Optional. Data interleaving service setting

transparency

String

Optional. Transparency setting

localNetworkGateway

String

Optional. Boolean for local network gateway activation

multicast

String

Optional. Multicast setting

dnsOptions

String

Optional. DNS Service Options

icmpTunnel

String

Optional, default: YES Allow TCP over ICMP

cryptoLevel

String

Optional. Cryptographic level

permanentConnection

String

Optional. Is this a permanent connection

collectionLocation

String

Optional. Location to send collection data to

pbrType

String

Optional. PBR Type

rateSmoothing

String

Optional. Rate smoothing active

netflowIndex

Number

Optional. Netflow index

profileIndex

Number

Optional. Profile index

portInterceptMode

String

Optional. Intercept Mode of intercept_all or specific_ports

interceptIncludePorts

String

Optional. If intercept_mode is set to specific_ports,intecept this list of ports made up of collection as described in mappinginterceptPorts which contains sets include and exclude and have keys first and lastexample first:22 last:32 for a range of ports multiple ranges are allowed

interceptExcludePorts

String

Optional. If intercept_mode is set to specific_ports, do not intecept this list of ports made up of collection as described in mappinginterceptPorts which contains sets include and exclude and have keys first and lastexample first:22 last:32 for a range of ports multiple ranges are allowed

gatewayClusterId

Null

Optional.(either endpointId or gatewayClusterId) HA Gateway Cluster Id

subscriptionId

Null

The ID of the subscription this service is being created under

endpoint

Null

Endpoint as code

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/0b49d049-25b6-4ea4-a2cd-3e6622c92c24/services' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"serviceClass":"GW","name":"Test IP Network Service 01","serviceClass":"GW","serviceInterceptType":"IP","serviceType":"ALL","endpointId":"958e7849-53cd-4173-894a-d6e168fd741d","lowLatency":"YES","dataInterleaving":"YES","transparency":"YES","multicast":"ON","dnsOptions":"TUNNELING","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"ALL","rateSmoothing":"NO","netflowIndex":-1,"profileIndex":-1,"gatewayClusterId":null,"subscriptionId":null,"endpoint":null,"interceptIp":"1.2.3.4","gatewayIp":"10.11.12.13","gatewayCidrBlock":22,"localNetworkGateway":"NO","portInterceptMode":"INTERCEPT_ALL","interceptIncludePorts":"22-22","interceptExcludePorts":"80-80"}'

Example response

Path Type Description

name

String

The service’s name

id

String

The service’s id

serviceClass

String

The service class

serviceInterceptType

String

The intercept type

serviceType

String

The type of service

lowLatency

String

Low latency service setting

dataInterleaving

String

Data interleaving service setting

transparency

String

Transparency setting

localNetworkGateway

String

Boolean for local network gateway activation

multicast

String

Multicast setting

dnsOptions

String

DNS Service Options

icmpTunnel

String

Allow ICMP tunneling

cryptoLevel

String

Cryptographic level

permanentConnection

String

Is this a permanent connection

collectionLocation

String

Location to send collection data to

pbrType

String

PBR Type

rateSmoothing

String

Rate smoothing active

networkIp

Null

Network IP

gatewayNetmask

String

Gateway Netmask

networkNetmask

Null

Network Netmask

networkFirstPort

Number

First network port in range

networkLastPort

Number

Last network port in range

interceptIp

String

Intercept IP

interceptFirstPort

Number

First intercept port in range

interceptLastPort

Number

Last intercept port in range

interceptDnsHostname

Null

Ziti Fabric DNS Intercept hostname

interceptDnsPort

Number

Ziti Fabric DNS Intercept port

gatewayIp

String

Gateway IP

gatewayCidrBlock

Number

Gateway CIDR Block

netflowIndex

Number

Netwflow index

profileIndex

Number

Profile index

protectionGroupId

Null

Protection Group Id

portInterceptMode

String

Intercept Mode of intercept_all or specific_ports

interceptPorts

Object

Applicable to IP network service map containingsets for include[] and exclude[] keys of first and last for sets of ports ex. first 22 last 25

interceptIncludePorts

String

Intercept these ports

interceptExcludePorts

String

Do not intercept these ports

status

Number

Provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

_links

Object

Links to other resources

endpointId

Null

Endpoint id associated with the service

gatewayClusterId

Null

Gateway cluster id if the service endpoint is of cluster type

networkId

Null

The Network ID of the service resource

ownerIdentityId

Null

Identity Id of the owner

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1485

{"serviceClass":"GW","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":"YES","multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":null,"networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":"1.2.3.4","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":"10.11.12.13","gatewayCidrBlock":24,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":"INTERCEPT_ALL","endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2020-07-21T06:02:48.178+00:00","updatedAt":"2020-07-21T16:02:48.178+00:00","name":"Test Service 01","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"ba859a94-08d0-491b-a345-31ec949b23dc","_links":{"self":{"href":"http://localhost/networks/0b49d049-25b6-4ea4-a2cd-3e6622c92c24/services/ba859a94-08d0-491b-a345-31ec949b23dc"},"network":{"href":"http://localhost/networks/0b49d049-25b6-4ea4-a2cd-3e6622c92c24"},"endpoint":{"href":"http://localhost/networks/0b49d049-25b6-4ea4-a2cd-3e6622c92c24/endpoints/e83c84db-6da6-4c21-9d0f-3faa480b8ead"}}}


Creating services from csv

A POST request creates services on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/8b53fc16-e6b9-4455-bed2-10d863d2ee87/services' -i -X POST \
    -H 'Content-Type: multipart/form-data' \
    -F 'file=@hello;type=multipart/form-data'

Example response

Path Type Description

businessKey

String

The businessKey of the process

services

Array

Services Data

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3073

{"businessKey":"8b53fc16-e6b9-4455-bed2-10d863d2ee87","services":[{"serviceClass":"GW","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":"YES","multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":null,"networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":"1.2.3.4","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":"10.11.12.13","gatewayCidrBlock":24,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":"INTERCEPT_ALL","endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2020-07-21T06:02:48.110+00:00","updatedAt":"2020-07-21T16:02:48.110+00:00","name":"Test Service 01","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"d0e57474-0a41-453f-b5e5-b99ccaf87791","links":[{"rel":"self","href":"http://localhost/networks/8b53fc16-e6b9-4455-bed2-10d863d2ee87/services/d0e57474-0a41-453f-b5e5-b99ccaf87791"},{"rel":"network","href":"http://localhost/networks/8b53fc16-e6b9-4455-bed2-10d863d2ee87"},{"rel":"endpoint","href":"http://localhost/networks/8b53fc16-e6b9-4455-bed2-10d863d2ee87/endpoints/7bd6284c-dbaa-4cd3-b094-2787cafff5c1"}]},{"serviceClass":"GW","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":"YES","multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":null,"networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":"1.2.3.4","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":"10.11.12.13","gatewayCidrBlock":24,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":0,"protectionGroupId":null,"portInterceptMode":"INTERCEPT_ALL","endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2020-07-21T06:02:48.110+00:00","updatedAt":"2020-07-21T16:02:48.110+00:00","name":"Test Service 02","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"d6a88a81-eb46-4fea-b7db-9a04cc4ac430","links":[{"rel":"self","href":"http://localhost/networks/8b53fc16-e6b9-4455-bed2-10d863d2ee87/services/d6a88a81-eb46-4fea-b7db-9a04cc4ac430"},{"rel":"network","href":"http://localhost/networks/8b53fc16-e6b9-4455-bed2-10d863d2ee87"},{"rel":"endpoint","href":"http://localhost/networks/8b53fc16-e6b9-4455-bed2-10d863d2ee87/endpoints/7bd6284c-dbaa-4cd3-b094-2787cafff5c1"}]}]}


Updating a Service

A PUT request updates a service on a specific network. The request should contain a full Service object.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/d27233c4-5ec8-465e-9b6f-958be357dc77/services/9bd12813-15c3-403d-8e0e-2b290a93733b' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{"serviceClass":"GW","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":"YES","multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":null,"networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":"1.2.3.4","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":"10.11.12.13","gatewayCidrBlock":24,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":600,"protectionGroupId":null,"portInterceptMode":"INTERCEPT_ALL","endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2020-07-21T06:02:48.041+00:00","updatedAt":"2020-07-21T16:02:48.041+00:00","name":"Test Service 01","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"9bd12813-15c3-403d-8e0e-2b290a93733b"}'

Example response

Path Type Description

name

String

The service’s name

id

String

The service’s id

serviceClass

String

The service class

serviceInterceptType

String

The intercept type

serviceType

String

The type of service

lowLatency

String

Low latency service setting

dataInterleaving

String

Data interleaving service setting

transparency

String

Transparency setting

localNetworkGateway

String

Boolean for local network gateway activation

multicast

String

Multicast setting

dnsOptions

String

DNS Service Options

icmpTunnel

String

Allow ICMP tunneling

cryptoLevel

String

Cryptographic level

permanentConnection

String

Is this a permanent connection

collectionLocation

String

Location to send collection data to

pbrType

String

PBR Type

rateSmoothing

String

Rate smoothing active

networkIp

Null

Network IP

networkNetmask

Null

Network Netmask

networkFirstPort

Number

First network port in range

networkLastPort

Number

Last network port in range

interceptIp

String

Intercept IP

interceptFirstPort

Number

First intercept port in range

interceptLastPort

Number

Last intercept port in range

interceptDnsHostname

Null

Ziti Fabric DNS Intercept hostname

interceptDnsPort

Number

Ziti Fabric DNS Intercept port

gatewayIp

String

Gateway IP

gatewayNetmask

String

Gateway Netmask

gatewayCidrBlock

Number

Gateway CIDR Block

netflowIndex

Number

Netwflow index

profileIndex

Number

Profile index

protectionGroupId

Null

Protection Group Id

portInterceptMode

String

Intercept Mode of intercept_all or specific_ports

interceptPorts

Object

Applicable to IP network service map containingsets for include[] and exclude[] keys of first and last for sets of ports ex. first 22 last 25

interceptIncludePorts

String

Intercept these ports

interceptExcludePorts

String

Do not intercept these ports

status

Number

Provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

endpointId

Null

Endpoint id associated with the service

gatewayClusterId

Null

Gateway cluster id if the service endpoint is of cluster type

networkId

Null

The Network ID of the service resource

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1487

{"serviceClass":"GW","serviceInterceptType":"IP","serviceType":"ALL","lowLatency":"YES","dataInterleaving":"NO","transparency":"NO","localNetworkGateway":"YES","multicast":"OFF","dnsOptions":"NONE","icmpTunnel":"YES","cryptoLevel":"STRONG","permanentConnection":"NO","collectionLocation":"BOTH","pbrType":"WAN","rateSmoothing":"YES","networkIp":null,"networkNetmask":null,"networkFirstPort":0,"networkLastPort":0,"interceptIp":"1.2.3.4","interceptDnsHostname":null,"interceptDnsPort":0,"interceptFirstPort":0,"interceptLastPort":0,"gatewayIp":"10.11.12.13","gatewayCidrBlock":24,"netflowIndex":0,"profileIndex":0,"o365Conflict":false,"status":600,"protectionGroupId":null,"portInterceptMode":"INTERCEPT_ALL","endpointId":null,"gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2020-07-21T06:02:48.041+00:00","updatedAt":"2020-07-21T16:02:48.041+00:00","name":"Test Service 01","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"9bd12813-15c3-403d-8e0e-2b290a93733b","_links":{"self":{"href":"http://localhost/networks/d27233c4-5ec8-465e-9b6f-958be357dc77/services/9bd12813-15c3-403d-8e0e-2b290a93733b"},"network":{"href":"http://localhost/networks/d27233c4-5ec8-465e-9b6f-958be357dc77"},"endpoint":{"href":"http://localhost/networks/d27233c4-5ec8-465e-9b6f-958be357dc77/endpoints/710bf5fb-cfc8-45de-9d7c-9b4ac01af88a"}}}


Deleting a Service

A DELETE request deletes a service on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/d3b3f05c-af5f-4377-82e6-42cf11b128c7/services/b9dadbcc-1d2f-4255-ab5c-cdc68407cff2' -i -X DELETE \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001


AppWan

The AppWan resource is used to create, modify and list AppWans for a Network.


Listing AppWans paginated

A GET request returns a paged representation all of the AppWans for a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/77259391-2643-4608-b472-bb8186a792a2/appWans?page=0&size=10&sort=name,ASC' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.appWans

Array

An array of AppWan resources

_links

Object

Links to other resources and pages

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1936

{"_embedded":{"appWans":[{"createdAt":"2020-07-21T06:02:40.909+00:00","updatedAt":"2020-07-21T16:02:40.909+00:00","name":"AppWan 01","networkId":null,"status":300,"ownerIdentityId":null,"id":"7df02391-9bd0-4b21-a852-a681dab61b61","_links":{"self":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2/appWans/7df02391-9bd0-4b21-a852-a681dab61b61"},"network":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2"},"endpointGroups":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2/appWans/7df02391-9bd0-4b21-a852-a681dab61b61/endpointGroups"},"endpoints":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2/appWans/7df02391-9bd0-4b21-a852-a681dab61b61/endpoints"},"services":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2/appWans/7df02391-9bd0-4b21-a852-a681dab61b61/services"}}},{"createdAt":"2020-07-21T06:02:40.910+00:00","updatedAt":"2020-07-21T16:02:40.910+00:00","name":"AppWan 02","networkId":null,"status":300,"ownerIdentityId":null,"id":"1c5f33b8-aa1e-472e-9a40-732268ce7d46","_links":{"self":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2/appWans/1c5f33b8-aa1e-472e-9a40-732268ce7d46"},"network":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2"},"endpointGroups":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2/appWans/1c5f33b8-aa1e-472e-9a40-732268ce7d46/endpointGroups"},"endpoints":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2/appWans/1c5f33b8-aa1e-472e-9a40-732268ce7d46/endpoints"},"services":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2/appWans/1c5f33b8-aa1e-472e-9a40-732268ce7d46/services"}}}]},"_links":{"first":{"href":"http://localhost/networks/77259391-2643-4608-b472-bb8186a792a2/appWans?page=0,size=10,sort=name,asc"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Listing AppWans

A GET request lists all of the AppWans for a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.appWans

Array

An array of AppWan resources

_links

Object

Links to other resources and pages

page

Object

Pagination info

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1936

{"_embedded":{"appWans":[{"createdAt":"2020-07-21T06:02:41.093+00:00","updatedAt":"2020-07-21T16:02:41.093+00:00","name":"AppWan 01","networkId":null,"status":300,"ownerIdentityId":null,"id":"06046578-8d69-4f60-bc1e-fba7ea2fc604","_links":{"self":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans/06046578-8d69-4f60-bc1e-fba7ea2fc604"},"network":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97"},"endpointGroups":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans/06046578-8d69-4f60-bc1e-fba7ea2fc604/endpointGroups"},"endpoints":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans/06046578-8d69-4f60-bc1e-fba7ea2fc604/endpoints"},"services":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans/06046578-8d69-4f60-bc1e-fba7ea2fc604/services"}}},{"createdAt":"2020-07-21T06:02:41.094+00:00","updatedAt":"2020-07-21T16:02:41.094+00:00","name":"AppWan 02","networkId":null,"status":300,"ownerIdentityId":null,"id":"899698c6-517b-40b9-bad4-e2ae4513210c","_links":{"self":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans/899698c6-517b-40b9-bad4-e2ae4513210c"},"network":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97"},"endpointGroups":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans/899698c6-517b-40b9-bad4-e2ae4513210c/endpointGroups"},"endpoints":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans/899698c6-517b-40b9-bad4-e2ae4513210c/endpoints"},"services":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans/899698c6-517b-40b9-bad4-e2ae4513210c/services"}}}]},"_links":{"first":{"href":"http://localhost/networks/16ab34f1-5031-4e35-8cc0-bac50e1e7b97/appWans?page=0,size=10,sort=name,asc"}},"page":{"size":10,"totalElements":2,"totalPages":1,"number":1}}


Fetching an AppWan

A GET request fetches a specific AppWan.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/0c927755-7cc0-4d30-9a5b-4e6b8017dc4a/appWans/9eb69121-626e-4e26-9cc0-bb16afb2f993' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The AppWan’s name

id

String

The AppWan id

status

Number

Provisioning status of the AppWan

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 862

{"createdAt":"2020-07-21T06:02:41.069+00:00","updatedAt":"2020-07-21T16:02:41.069+00:00","name":"Test AppWan 01","networkId":null,"status":300,"ownerIdentityId":null,"id":"9eb69121-626e-4e26-9cc0-bb16afb2f993","_links":{"self":{"href":"http://localhost/networks/0c927755-7cc0-4d30-9a5b-4e6b8017dc4a/appWans/9eb69121-626e-4e26-9cc0-bb16afb2f993"},"network":{"href":"http://localhost/networks/0c927755-7cc0-4d30-9a5b-4e6b8017dc4a"},"endpointGroups":{"href":"http://localhost/networks/0c927755-7cc0-4d30-9a5b-4e6b8017dc4a/appWans/9eb69121-626e-4e26-9cc0-bb16afb2f993/endpointGroups"},"endpoints":{"href":"http://localhost/networks/0c927755-7cc0-4d30-9a5b-4e6b8017dc4a/appWans/9eb69121-626e-4e26-9cc0-bb16afb2f993/endpoints"},"services":{"href":"http://localhost/networks/0c927755-7cc0-4d30-9a5b-4e6b8017dc4a/appWans/9eb69121-626e-4e26-9cc0-bb16afb2f993/services"}}}


Fetching an appwan as code

A GET request fetches a specific appwan and all its resources as yml.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/751bbb34-e385-45c7-b405-b200d22eeceb/appWans/f82e43ae-9421-4dd7-9bb6-ffbdd604bfac/blueprint' -i -X GET \
    -H 'Accept: application/yml'

Example response

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/yml;charset=UTF-8
Content-Length: 1397

appwan:
  name: appwan 03
  gateways:
    - &ref_0
      name: gw 03
      endpointType: VCPEGW
      geoRegion: US East
      dataCenter: Ohio
  clients:
    - &ref_1
      name: client 01
      endpointType: CL
      geoRegion: US East
      dataCenter: Ohio
  endpointGroups:
    - name: group 01
      gateways:
        - *ref_0
      clients:
        - *ref_1
  services:
    - name: appwan 01 svc-01
      collectionLocation: BOTH
      cryptoLevel: STRONG
      dataInterleaving: 'NO'
      dnsOptions: NONE
      gatewayCidrBlock: 0
      gatewayClusterId: null
      gatewayNetmask: ''
      icmpTunnel: 'NO'
      interceptDnsHostname: null
      interceptDnsPort: 1
      interceptIp: 10.0.1.21
      interceptFirstPort: 1
      interceptLastPort: 80
      localNetworkGateway: null
      lowLatency: 'YES'
      multicast: 'OFF'
      netflowIndex: 0
      networkFirstPort: 80
      networkIp: 10.0.1.21
      networkLastPort: 80
      networkNetmask: null
      o365Conflict: false
      pbrType: WAN
      permanentConnection: 'NO'
      portInterceptMode: null
      profileIndex: 0
      protectionGroupId: null
      rateSmoothing: 'YES'
      selected: false
      serviceClass: CS
      serviceInterceptType: IP
      serviceType: ALL
      transparency: 'NO'
      endpoint:
        name: gw 01
        endpointType: VCPEGW
        geoRegion: US East
        dataCenter: Ohio


Creating an AppWan

A POST request creates an AppWan on a specific network.

Example request

Path Type Description

name

String

The AppWan’s name

subscriptionId

String

The ID of the subscription this app wan is being created under

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/d3a7d777-b7d2-43cb-bbd8-d6497e50af56/appWans' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test AppWan Create","subscriptionId":"0c3f06f8-a011-44c0-b792-0e55d5b7acbc"}'

Example response

Path Type Description

networkId

Null

The parent network id

id

String

The AppWan id

name

String

The AppWan name

status

Number

AppWan provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 866

{"createdAt":"2020-07-21T06:02:41.168+00:00","updatedAt":"2020-07-21T16:02:41.168+00:00","name":"Test AppWan Create","networkId":null,"status":300,"ownerIdentityId":null,"id":"f020e989-9290-4359-9a57-6fd6dc93110f","_links":{"self":{"href":"http://localhost/networks/d3a7d777-b7d2-43cb-bbd8-d6497e50af56/appWans/f020e989-9290-4359-9a57-6fd6dc93110f"},"network":{"href":"http://localhost/networks/d3a7d777-b7d2-43cb-bbd8-d6497e50af56"},"endpointGroups":{"href":"http://localhost/networks/d3a7d777-b7d2-43cb-bbd8-d6497e50af56/appWans/f020e989-9290-4359-9a57-6fd6dc93110f/endpointGroups"},"endpoints":{"href":"http://localhost/networks/d3a7d777-b7d2-43cb-bbd8-d6497e50af56/appWans/f020e989-9290-4359-9a57-6fd6dc93110f/endpoints"},"services":{"href":"http://localhost/networks/d3a7d777-b7d2-43cb-bbd8-d6497e50af56/appWans/f020e989-9290-4359-9a57-6fd6dc93110f/services"}}}


Creating an AppWan from yaml

A POST request creates an AppWan and other resources on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/4d8630b0-6466-4781-9be3-4771999e4c94/appWans' -i -X POST \
    -H 'Content-Type: multipart/form-data' \
    -F 'file=@hello;type=multipart/form-data'

Example response

Path Type Description

businessKey

String

The businessKey of the process

appWan

Object

Appwan Data

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 923

{"businessKey":"4d8630b0-6466-4781-9be3-4771999e4c94","appWan":{"createdAt":"2020-07-21T06:02:40.885+00:00","updatedAt":"2020-07-21T16:02:40.885+00:00","name":"Test AppWan","networkId":null,"status":300,"ownerIdentityId":null,"id":"7fdd1e2d-45e1-4017-8b3d-2bac15a9b453","_links":{"self":{"href":"http://localhost/networks/4d8630b0-6466-4781-9be3-4771999e4c94/appWans/7fdd1e2d-45e1-4017-8b3d-2bac15a9b453"},"network":{"href":"http://localhost/networks/4d8630b0-6466-4781-9be3-4771999e4c94"},"endpointGroups":{"href":"http://localhost/networks/4d8630b0-6466-4781-9be3-4771999e4c94/appWans/7fdd1e2d-45e1-4017-8b3d-2bac15a9b453/endpointGroups"},"endpoints":{"href":"http://localhost/networks/4d8630b0-6466-4781-9be3-4771999e4c94/appWans/7fdd1e2d-45e1-4017-8b3d-2bac15a9b453/endpoints"},"services":{"href":"http://localhost/networks/4d8630b0-6466-4781-9be3-4771999e4c94/appWans/7fdd1e2d-45e1-4017-8b3d-2bac15a9b453/services"}}}}


Updating an AppWan

A PUT request updates an AppWan on a specific network.

Example request

Path Type Description

name

String

The AppWan’s name

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/02793538-6599-4883-ac83-be4abb941b4a/appWans/2eb5d43c-38b1-41f2-8573-118aacee5120' -i -X PUT \
    -H 'Content-Type: application/json' \
    -d '{"name":"Test AppWan Updated","status":0}'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The AppWan name

id

String

The AppWan id

status

Number

AppWan provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 867

{"createdAt":"2020-07-21T06:02:40.938+00:00","updatedAt":"2020-07-21T16:02:40.938+00:00","name":"Test AppWan Updated","networkId":null,"status":300,"ownerIdentityId":null,"id":"2eb5d43c-38b1-41f2-8573-118aacee5120","_links":{"self":{"href":"http://localhost/networks/02793538-6599-4883-ac83-be4abb941b4a/appWans/2eb5d43c-38b1-41f2-8573-118aacee5120"},"network":{"href":"http://localhost/networks/02793538-6599-4883-ac83-be4abb941b4a"},"endpointGroups":{"href":"http://localhost/networks/02793538-6599-4883-ac83-be4abb941b4a/appWans/2eb5d43c-38b1-41f2-8573-118aacee5120/endpointGroups"},"endpoints":{"href":"http://localhost/networks/02793538-6599-4883-ac83-be4abb941b4a/appWans/2eb5d43c-38b1-41f2-8573-118aacee5120/endpoints"},"services":{"href":"http://localhost/networks/02793538-6599-4883-ac83-be4abb941b4a/appWans/2eb5d43c-38b1-41f2-8573-118aacee5120/services"}}}


Adding Endpoints to an AppWan

A POST request adds Endpoints to an AppWan on a specific network.

Example request

Path Type Description

ids

Array

List of Endpoint UUIDs to add to the AppWan

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153/endpoints' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"ids":["31e6efd8-2f73-4913-b72d-cfebc9c55214","6c01d3d9-67ff-45f3-bdd6-357bee84f620"]}'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The AppWan name

id

String

The AppWan id

status

Number

AppWan provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 859

{"createdAt":"2020-07-21T06:02:40.995+00:00","updatedAt":"2020-07-21T16:02:40.995+00:00","name":"Test AppWan","networkId":null,"status":300,"ownerIdentityId":null,"id":"a5cadd93-91b8-4ddf-9c59-68bb55e26153","_links":{"self":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153"},"network":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f"},"endpointGroups":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153/endpointGroups"},"endpoints":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153/endpoints"},"services":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153/services"}}}


Remove Endpoints from an AppWan

A DELETE request removes Endpoints from an AppWan on a specific network.

Example request

Path Type Description

ids

Array

List of Endpoint UUIDs to remove from the AppWan

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/f5a08e93-0b15-4bde-8313-2cd2a0d50024/appWans/43d84919-3e04-4d62-a641-6ca36d38815e/endpoints' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -d '{"ids":["73a05297-9c67-465e-8a5f-398840c4b62e","18e6dc9e-73c2-429e-aebc-f8c5a4d4f247"]}'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001


Adding Endpoint Groups to an AppWan

A POST request adds Endpoint Groups to an AppWan on a specific network.

Example request

Path Type Description

ids

Array

List of Endpoint Group UUIDs to add to the AppWan

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/8aee5660-a30c-4957-b9e0-9e492511cce8/appWans/6bdcb91f-17e8-4029-bc73-34cd22cf2ca1/endpointGroups' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"ids":["5caecb44-4ad9-4c5c-bf81-65340bc84b94","50f1a9b8-c49a-41e5-aa06-d3b34c61db17"]}'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The AppWan name

id

String

The AppWan id

status

Number

AppWan provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 859

{"createdAt":"2020-07-21T06:02:41.021+00:00","updatedAt":"2020-07-21T16:02:41.021+00:00","name":"Test AppWan","networkId":null,"status":300,"ownerIdentityId":null,"id":"6bdcb91f-17e8-4029-bc73-34cd22cf2ca1","_links":{"self":{"href":"http://localhost/networks/8aee5660-a30c-4957-b9e0-9e492511cce8/appWans/6bdcb91f-17e8-4029-bc73-34cd22cf2ca1"},"network":{"href":"http://localhost/networks/8aee5660-a30c-4957-b9e0-9e492511cce8"},"endpointGroups":{"href":"http://localhost/networks/8aee5660-a30c-4957-b9e0-9e492511cce8/appWans/6bdcb91f-17e8-4029-bc73-34cd22cf2ca1/endpointGroups"},"endpoints":{"href":"http://localhost/networks/8aee5660-a30c-4957-b9e0-9e492511cce8/appWans/6bdcb91f-17e8-4029-bc73-34cd22cf2ca1/endpoints"},"services":{"href":"http://localhost/networks/8aee5660-a30c-4957-b9e0-9e492511cce8/appWans/6bdcb91f-17e8-4029-bc73-34cd22cf2ca1/services"}}}


Remove Endpoint Groups from an AppWan

A DELETE request removes Endpoint Groups from an AppWan on a specific network.

Example request

Path Type Description

ids

Array

List of Endpoint Group UUIDs to remove from the AppWan

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/6de63634-5680-4062-a95c-6092ea18fdcb/appWans/1c91982d-9dfe-413b-ac49-681ce6b6e980/endpointGroups' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -d '{"ids":["c1e7135e-f4ba-4733-8a71-53799d35d7c4","19a70579-6080-45cd-a209-7d19299b8a10"]}'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001


Add Services to an AppWan

A POST request adds Services to an AppWan on a specific network.

Example request

Path Type Description

ids

Array

List of Service UUIDs to add to the AppWan

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153/endpoints' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"ids":["31e6efd8-2f73-4913-b72d-cfebc9c55214","6c01d3d9-67ff-45f3-bdd6-357bee84f620"]}'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The AppWan name

id

String

The AppWan id

status

Number

AppWan provisioning status

createdAt

String

Record creation time

updatedAt

String

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 859

{"createdAt":"2020-07-21T06:02:40.995+00:00","updatedAt":"2020-07-21T16:02:40.995+00:00","name":"Test AppWan","networkId":null,"status":300,"ownerIdentityId":null,"id":"a5cadd93-91b8-4ddf-9c59-68bb55e26153","_links":{"self":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153"},"network":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f"},"endpointGroups":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153/endpointGroups"},"endpoints":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153/endpoints"},"services":{"href":"http://localhost/networks/7cb10e36-9b4f-426d-beea-f702714c494f/appWans/a5cadd93-91b8-4ddf-9c59-68bb55e26153/services"}}}


Remove Services from an AppWan

A DELETE request removes Services from an AppWan on a specific network.

Example request

Path Type Description

ids

Array

List of Service UUIDs to remove from the AppWan

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/187b497b-2f79-42e9-b810-e653b578b3fd/appWans/aaba384f-ca51-40a6-a467-7685620b2fd5/services' -i -X DELETE \
    -H 'Content-Type: application/json' \
    -d '{"ids":["8c80e4e8-7166-44d6-9db3-e1925be512c4","c92bcb96-42ff-47a6-bcbb-65e781f083b7"]}'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001


Deleting an AppWan

A DELETE request deletes an AppWan on a specific network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/272f7d5f-26d6-4c1b-84e8-428f524f41e3/appWans/585cda3a-1610-4250-901a-d40ddc395cb8' -i -X DELETE \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001


Listing all AppWan processes

A GET request fetches all the running AppWan processes on a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/a6a99827-bcb5-49b7-be86-f10807631a3b/appWan-processes' -i -X GET \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 191

[ {
  "businessKey" : "c68e8449-144d-42a0-ba33-b886c5853ed1",
  "processDefinitionKey" : "createAppwan",
  "workFlowStatus" : [ {
    "task" : "Started",
    "status" : "InProgress"
  } ]
} ]


Fetching an AppWan process

A GET request fetches the AppWan processes with a specific business key.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/9fe97635-ad31-4c4f-8808-197c6fdfe8e3/appWan-processes/78ea23c7-77b4-4f08-81cf-6cc9dbbfb3dd' -i -X GET \
    -H 'Content-Type: application/json'

Example response

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 191

[ {
  "businessKey" : "78ea23c7-77b4-4f08-81cf-6cc9dbbfb3dd",
  "processDefinitionKey" : "createAppwan",
  "workFlowStatus" : [ {
    "task" : "Started",
    "status" : "InProgress"
  } ]
} ]


ServiceGroups

The ServiceGroups resource is used to list ServiceGroups.


Listing Service Groups

A GET request lists all of the service groups.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd/serviceGroups' -i -X GET \
    -H 'Accept: application/json'

Example response

Response Fields

Path Type Description

_embedded.serviceGroupInlines

Array

An array of service groups resources

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3437

{"_embedded":{"serviceGroupInlines":[{"createdAt":"2020-07-21T06:02:04.983+00:00","updatedAt":"2020-07-21T16:02:04.983+00:00","name":"Service Group 01","networkId":null,"dartServiceGroupId":"SG951f70a6-f99c-46ff-b966-12c403eef8f5","ownerIdentityId":null,"geoRegion":{"createdAt":"2020-07-21T06:02:04.985+00:00","updatedAt":"2020-07-21T16:02:04.985+00:00","name":"GeoRegion 01","id":"9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"transferNodePool":{"createdAt":null,"updatedAt":null,"name":"TN-test-123","networkId":null,"network":null,"transferNodes":null,"serviceGroups":null,"geoRegion":null,"dartDeflectPoolId":"DP-test-123","minimumChannels":0,"channelsLow":0,"channelsHigh":0,"directChannels":0,"selected":0,"selectInterval":0,"lowBandwidth":null,"rollPolicy":null,"ownerIdentityId":null,"id":"100616c9-b2ea-4ef6-9750-fc9dc9a74299"},"appWan":{"createdAt":"2020-07-21T06:02:04.984+00:00","updatedAt":"2020-07-21T16:02:04.984+00:00","name":"Appwan01","networkId":null,"status":300,"ownerIdentityId":null,"id":"dfe3249c-4b78-477c-ae36-a74fb7ea2d60"},"id":"61202c43-0d63-4ecb-87e9-8713ce6696aa","_links":{"self":{"href":"http://localhost/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd/serviceGroups/61202c43-0d63-4ecb-87e9-8713ce6696aa"},"transferNodePool":{"href":"http://localhost/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd/transferNodePools/100616c9-b2ea-4ef6-9750-fc9dc9a74299"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"network":{"href":"http://localhost/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd"},"appWans":{"href":"http://localhost/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd/appWans/dfe3249c-4b78-477c-ae36-a74fb7ea2d60"}}},{"createdAt":"2020-07-21T06:02:04.986+00:00","updatedAt":"2020-07-21T16:02:04.986+00:00","name":"Service Group 02","networkId":null,"dartServiceGroupId":"SG951f70a6-f99c-46ff-b966-12c403eef8f5","ownerIdentityId":null,"geoRegion":{"createdAt":"2020-07-21T06:02:04.986+00:00","updatedAt":"2020-07-21T16:02:04.986+00:00","name":"GeoRegion 01","id":"9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"transferNodePool":{"createdAt":null,"updatedAt":null,"name":"TN-test-123","networkId":null,"network":null,"transferNodes":null,"serviceGroups":null,"geoRegion":null,"dartDeflectPoolId":"DP-test-123","minimumChannels":0,"channelsLow":0,"channelsHigh":0,"directChannels":0,"selected":0,"selectInterval":0,"lowBandwidth":null,"rollPolicy":null,"ownerIdentityId":null,"id":"1208135e-46f5-4ce3-95b1-3d56eb696b22"},"appWan":{"createdAt":"2020-07-21T06:02:04.986+00:00","updatedAt":"2020-07-21T16:02:04.986+00:00","name":"Appwan01","networkId":null,"status":300,"ownerIdentityId":null,"id":"bbabcb48-214e-465c-b64a-9f0e86bcf3d6"},"id":"f44bfb1a-b255-451a-86db-2a7f3354e311","_links":{"self":{"href":"http://localhost/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd/serviceGroups/f44bfb1a-b255-451a-86db-2a7f3354e311"},"transferNodePool":{"href":"http://localhost/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd/transferNodePools/1208135e-46f5-4ce3-95b1-3d56eb696b22"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"network":{"href":"http://localhost/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd"},"appWans":{"href":"http://localhost/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd/appWans/bbabcb48-214e-465c-b64a-9f0e86bcf3d6"}}}]},"_links":{"self":{"href":"http://localhost/networks/50a9eea1-569b-4146-afc0-2c2767fe26dd/serviceGroups"}}}


Fetching a ServiceGroup

A GET request fetches a specific ServiceGroup.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/3be778f2-9b90-4b35-9507-5897f1ee3186/serviceGroups/fbc94814-a00d-48e8-9e4d-d924ff813d93' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

networkId

Null

The parent network id

name

String

The service group name

id

String

The service group id

createdAt

String

Record creation time

updatedAt

String

Record last modification time

dartServiceGroupId

String

service group id in dart application

geoRegion

Object

Geo Region of Service Group

transferNodePool

Object

Transfer Node Pool of Service Group

appWan

Object

AppWan to which Service Group belongs to

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1645

{"createdAt":"2020-07-21T06:02:05.042+00:00","updatedAt":"2020-07-21T16:02:05.042+00:00","name":"Service Group 01","networkId":null,"dartServiceGroupId":"SG951f70a6-f99c-46ff-b966-12c403eef8f5","ownerIdentityId":null,"geoRegion":{"createdAt":"2020-07-21T06:02:05.043+00:00","updatedAt":"2020-07-21T16:02:05.043+00:00","name":"GeoRegion 01","id":"9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"transferNodePool":{"createdAt":null,"updatedAt":null,"name":"TN-test-123","networkId":null,"network":null,"transferNodes":null,"serviceGroups":null,"geoRegion":null,"dartDeflectPoolId":"DP-test-123","minimumChannels":0,"channelsLow":0,"channelsHigh":0,"directChannels":0,"selected":0,"selectInterval":0,"lowBandwidth":null,"rollPolicy":null,"ownerIdentityId":null,"id":"86617d90-13df-41cc-9359-141c0ef96594"},"appWan":{"createdAt":"2020-07-21T06:02:05.042+00:00","updatedAt":"2020-07-21T16:02:05.042+00:00","name":"Appwan01","networkId":null,"status":300,"ownerIdentityId":null,"id":"1e315c99-6b82-49c7-904c-afce41fde97f"},"id":"fbc94814-a00d-48e8-9e4d-d924ff813d93","_links":{"self":{"href":"http://localhost/networks/3be778f2-9b90-4b35-9507-5897f1ee3186/serviceGroups/fbc94814-a00d-48e8-9e4d-d924ff813d93"},"transferNodePool":{"href":"http://localhost/networks/3be778f2-9b90-4b35-9507-5897f1ee3186/transferNodePools/86617d90-13df-41cc-9359-141c0ef96594"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"network":{"href":"http://localhost/networks/3be778f2-9b90-4b35-9507-5897f1ee3186"},"appWans":{"href":"http://localhost/networks/3be778f2-9b90-4b35-9507-5897f1ee3186/appWans/1e315c99-6b82-49c7-904c-afce41fde97f"}}}


TransferNodePools

The TransferNodePools resource is used to list TransferNodePools.


Listing TransferNodePools

A GET request lists all of the TransferNodePools.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/063d3d60-8361-4b62-b1a5-c8f0ea3bf7eb/transferNodePools/b726b85d-dd1b-4a81-ac6e-fd631f62d3b4' -i -X GET \
    -H 'Accept: application/json'

Example response

Response Fields

Path Type Description

networkId

Null

The parent network id

name

String

The transfer node pool’s name

id

String

The transfer node pool’s id

network

Null

Network

transferNodes

Null

Transfer nodes

serviceGroups

Null

Service groups

geoRegion

Null

Geo Region

dartDeflectPoolId

String

Dart Deflect Pool Id if it is present in dart

minimumChannels

Number

minimum Channels

channelsLow

Number

channels Low

channelsHigh

Number

channels High

directChannels

Number

direct Channels

selected

Number

selected

selectInterval

Number

Interval - default value is 60

lowBandwidth

Null

low Bandwidth can be Yes or No

rollPolicy

Null

roll Policy can have values like full_spectrum

createdAt

Null

Record creation time

updatedAt

Null

Record last modification time

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 537

{"createdAt":null,"updatedAt":null,"name":"TN-test-123","networkId":null,"network":null,"transferNodes":null,"serviceGroups":null,"geoRegion":null,"dartDeflectPoolId":"DP-test-123","minimumChannels":0,"channelsLow":0,"channelsHigh":0,"directChannels":0,"selected":0,"selectInterval":0,"lowBandwidth":null,"rollPolicy":null,"ownerIdentityId":null,"id":"b726b85d-dd1b-4a81-ac6e-fd631f62d3b4","_links":{"self":{"href":"http://localhost/networks/063d3d60-8361-4b62-b1a5-c8f0ea3bf7eb/transferNodePools/b726b85d-dd1b-4a81-ac6e-fd631f62d3b4"}}}


Fetching a TransferNodePool

A GET request fetches a specific TransferNodePool.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/f5b254fb-e5c0-4c4a-a3f5-a8064023a119/transferNodePools' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.transferNodePools

Array

An array of TransferNodePool resources

_links

Object

Links to other resources and pages

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 685

{"_embedded":{"transferNodePools":[{"createdAt":null,"updatedAt":null,"name":"TN-test-123","networkId":null,"network":null,"transferNodes":null,"serviceGroups":null,"geoRegion":null,"dartDeflectPoolId":"DP-test-123","minimumChannels":0,"channelsLow":0,"channelsHigh":0,"directChannels":0,"selected":0,"selectInterval":0,"lowBandwidth":null,"rollPolicy":null,"ownerIdentityId":null,"id":"4b5e1f82-3259-46a2-8931-1f74c4b2bb1a","_links":{"self":{"href":"http://localhost/networks/f5b254fb-e5c0-4c4a-a3f5-a8064023a119/transferNodePools/4b5e1f82-3259-46a2-8931-1f74c4b2bb1a"}}}]},"_links":{"self":{"href":"http://localhost/networks/f5b254fb-e5c0-4c4a-a3f5-a8064023a119/transferNodePools"}}}


Hosts

The Hosts resource is used to list Hosts.


Listing Hosts for a network

A GET request returns a list of all hosts for a network.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/hosts?networkId=12a4a1fc-9530-4e6c-8559-92d6c3bcd74c' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

_embedded.hosts

Array

An array of Host resources

_links

Object

Links to other resources and pages

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 451

{"_embedded":{"hosts":[{"createdAt":null,"updatedAt":null,"name":"Host 1","networkId":"12a4a1fc-9530-4e6c-8559-92d6c3bcd74c","hostType":"NC","primaryIpAddress":"10.0.0.0","memGb":0,"numCpu":0,"model":null,"os":null,"providerId":"i-1234","providerName":null,"userData":null,"status":300,"ownerIdentityId":null,"id":"ae178c94-8993-4d16-8817-4ae9f045f3da"}]},"_links":{"network":{"href":"http://localhost/networks/12a4a1fc-9530-4e6c-8559-92d6c3bcd74c"}}}


Fetching a host

A GET request fetches a specific host.

Example request

$ curl 'https://gateway.production.netfoundry.io/rest/v1/hosts/645e2adc-c4f9-4fe4-a62f-ef7db9873e0b' -i -X GET \
    -H 'Accept: application/json'

Example response

Path Type Description

id

String

A unique identifier of Host resource

networkId

String

The parent network id

name

String

The Host’s name

status

Number

Provisioning status of the Host

createdAt

Null

Record creation time

updatedAt

Null

Record last modification time

hostType

String

The type of host

os

Null

The OS of host

primaryIpAddress

String

Primary address of the host

memGb

Number

Memory in GB

numCpu

Number

Number of CPU

model

Null

The model of the host

providerId

String

Provider Id of the host

providerName

Null

Provider name of the host

userData

Null

User Registration Data

ownerIdentityId

Null

Identity Id of the owner

_links

Object

Links to other resources and pages

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 425

{"createdAt":null,"updatedAt":null,"name":"Host 1","networkId":"ecbf186a-fdb6-4cf9-b63f-06bec483aece","hostType":"NC","primaryIpAddress":"10.0.0.0","memGb":0,"numCpu":0,"model":null,"os":null,"providerId":"i-1234","providerName":null,"userData":null,"status":300,"ownerIdentityId":null,"id":"645e2adc-c4f9-4fe4-a62f-ef7db9873e0b","_links":{"network":{"href":"http://localhost/networks/ecbf186a-fdb6-4cf9-b63f-06bec483aece"}}}

Metrics, Alarms, and Events

NetFoundry utilizes Elasticsearch as its datastore for network metrics, alarms, and events. Queries can be submitted with a POST to the following endpoint, with the organizationId and index specified in the URL path. You must filter your search with either a time window or a networkId or the request will be rejected.

/elastic/{index}/{organizationId}/_search/

See the Elasticsearch Search API Documentation for a more comprehensive search reference.

Index Description

ncvtccurrent

This index contains high-resolution non-zero utilization metrics which are viewable at a 1 minute interval. Metrics are available for all endpoints and transfer nodes. Only 7 days worth of high-res metrics are available.

ncvtchistorical

This index contains low-resolution non-zero utilization metrics which are viewable at a 1 hour interval. Metrics are available for all endpoints and transfer nodes. Only 12 months worth of low-res metrics are available.

ncentityevent

This index contains all API-driven events and changes, as well as endpoint status changes. These events are available for 90 days.

ncalarms

This index contains network alarms that are actively polled every 5 minutes. This index logs OPEN alarms at the time of polling. Only 90 days worth of alarms are available.

Example request

POST /rest/v1/elastic/ncentityevent/0ba78bf1-46c4-4ae7-adde-92243418a1a7/_search/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 476
Host: gateway.production.netfoundry.io

{"query":{"bool":{"must":[{"query_string":{"query":"*","analyze_wildcard":true}},{"match_phrase":{"tags.keyword":{"query":"customer"}}},{"range":{"@timestamp":{"gte":1493587166000,"lte":1525123166533,"format":"epoch_millis"}}},{"match_phrase":{"networkId":{"query":"5d4a71e3-d676-4c37-8af8-46604f0352d1"}}}],"must_not":[{"match_phrase":{"changeType":{"query":"soft"}}}]}},"size":500,"sort":[{"@timestamp":{"order":"desc","unmapped_type":"boolean"}}],"_source":{"excludes":[]}}

Example Response

Path Type Description

took

Number

An array of DataCenter resources

timed_out

Boolean

An array of DataCenter resources

_shards

Object

An array of DataCenter resources

_shards.total

Number

An array of DataCenter resources

_shards.successful

Number

An array of DataCenter resources

_shards.skipped

Number

An array of DataCenter resources

_shards.failed

Number

An array of DataCenter resources

hits

Object

An array of DataCenter resources

hits.total

Number

An array of DataCenter resources

hits.max_score

String

An array of DataCenter resources

HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 148

{"took":3727,"timed_out":false,"_shards":{"total":1666,"successful":1666,"skipped":1636,"failed":0},"hits":{"total":0,"max_score":"null","hits":[]}}