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.
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 |
---|---|
|
Used to retrieve a resource |
|
Used to create a new resource |
|
Used to update an existing resource, full updates only |
|
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 |
---|---|
|
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. |
|
The request has been fulfilled and resulted in a new resource being created. |
|
The request has been accepted and is being processed asynchronously Standard response for successful HTTP requests which invoke back-end services. |
|
The server successfully processed the request, but is not returning any content. |
|
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). |
|
The request lacks valid authentication credentials for the target resource. |
|
The request is authenticated with valid credentials however that set of credentials is not authorized to access this resource. |
|
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 an identity provider e.g. Cognito, Auth0, Okta. Use your API account credential to obtain an access token. Know more by reading the Authentication Guide.
Cognito
Follow this example if your authentication URL is for Amazon Cognito. Use your API account credential to obtain an access token.
NETFOUNDRY_API_TOKEN=$( \ (1)
curl --user ${NETFOUNDRY_CLIENT_ID}:${NETFOUNDRY_PASSWORD} \ (2)
--request POST ${NETFOUNDRY_OAUTH_URL} \ (3)
--header 'content-type: application/x-www-form-urlencoded' \
--data 'grant_type=client_credentials&scope=https%3A%2F%2Fgateway.production.netfoundry.io%2F%2Fignore-scope' | \
jq -r .access_token (4)
)
1 | creates an environment variable to hold the token after successful request. The contents of this variable will be used in all subsequent requests |
2 | substitute the client ID and password for your API account |
3 | substitute the authentication URL for your API account |
4 | extract the access token with jq (command-line JSON processor) |
Auth0
Follow this example if your authentication URL is for Auth0.
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 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
header, which in turn leverages the Authorization
variable used in the previous example to store the extracted access token.NETFOUNDRY_API_TOKEN
# get networks
curl https://gateway.production.netfoundry.io/core/v2/networks \ (1)
--header "Authorization: Bearer ${NETFOUNDRY_API_TOKEN}" (2)
1 | the URL used to fetch networks (see also Listing networks) |
2 | the 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/322c91db-5cdd-46c7-ab43-9a4dc767b6f3' -i -X GET \
-H 'Accept: application/json' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJ6RXBkbWFKaUszNHAxUFAtdWU3MzZ3IiwiaXNzIjoiTmV0Rm91bmRyeSIsInN1YiI6IjRmNjgxNzg3LTY1YzEtNDY4YS05ZWQ0LWMzNjY2MmRmMGM3NSIsImF1ZCI6ImlvLm5ldGZvdW5kcnkubmV0d29yayIsImlhdCI6MTY3NDU4MzA0OCwiZXhwIjoxNjc0NTg2NjQ4LCJncmFudHMtc3VwZXIiOiJbXSIsImdyYW50cy1jdXN0b20iOiJbXSIsImdyYW50cy1wdWJsaWMiOiJbXSIsImdyYW50cy1hY3Rpb24iOiJbe1wiaWRcIjpcImQ5MjgzNWM5LTA1NjYtNDdhYy05Njc1LTY4ZTM4NjZkZmY4MVwiLFwibGFzdE1vZGlmaWVkXCI6MTY3NDU4MzA0OH1dIiwiZ3JhbnRzLXN0YW5kYXJkIjoiW10ifQ.UFm95m4RKWa_ssR_EZ6D37kky302WAuqEmpW9Zwv_fwfsm_l9W__xpUW7v-13-e0J56eWxQnlOop2boMlPB3Xky96vuHhyOXhZOT6pWWLlQYXYaxESkLm3d1JQhWwdBPXUHSdde9RX5jS1ZAp-g6qDGbeYoTXtYCaH3wdRjCKH0pZ2gKvhjfFDbBfg0fPoIm-6GmtHFiWmEr2hAPcQdpFVBLyG-0-wUsgKFJ0Y-Rge8QZLTq4HqNTfXEaByvnnsKrApOmRCOhBLgEq5fiMMgU3eosc433XI9hyVK26RuDxC6mivdXHeSLy9TN_zCCiMiRCogm94-CtDmSUz73Q7iCg'
Example response
Path | Type | Description |
---|---|---|
|
|
The organization’s id |
|
|
The organization’s name |
|
|
The organization’s key name |
|
|
Does the organization require mfa for login |
|
|
Is Ziti functionality enabled on this organization |
|
|
Billing account id |
|
|
Are AWS Auto-Scaling Gateways enabled on this organization |
|
|
Default Azure Virtual Wan to use for O365 service overlap checking |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Flag indicating if organization is deleted |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 664
{"createdAt":null,"updatedAt":null,"name":"Test Org 01","organizationShortName":"TORG01","mfaRequired":false,"zitiEnabled":false,"awsAutoScalingGatewayEnabled":false,"defaultAzureVirtualWanId":null,"billingAccountId":null,"ownerIdentityId":null,"deleted":null,"id":"322c91db-5cdd-46c7-ab43-9a4dc767b6f3","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/organizations/322c91db-5cdd-46c7-ab43-9a4dc767b6f3"},"networks":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks"},"azureSubscription":{"href":"https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions?organizationId=322c91db-5cdd-46c7-ab43-9a4dc767b6f3"}}}
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 |
---|---|---|
|
|
An array of Azure Subscription resources |
|
|
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":"53a20e17-6039-4136-aaed-94ff2bf5cf6b","tenantId":"f61d3405-3dc7-445a-b00f-e1b814b3702e","applicationId":"f563749f-02fa-4b35-b01e-5c0a837a1bf6","applicationKey":"8d468191-0497-4fba-a85e-0485a66cbbc3","organizationId":"8975847a-9093-4516-b4df-df3ad8908af4","ownerIdentityId":null,"createdAt":"2023-01-24T07:55:36.629+00:00","updatedAt":"2023-01-24T17:55:36.629+00:00","id":"5a29e49a-c375-4df1-ad5b-6d70b620b608","_links":{"organization":{"href":"http://localhost/organizations/688d9f59-8e6d-4015-85f4-b876fffbbf4d"},"self":{"href":"http://localhost/azureSubscriptions/5a29e49a-c375-4df1-ad5b-6d70b620b608"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/5a29e49a-c375-4df1-ad5b-6d70b620b608/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/5a29e49a-c375-4df1-ad5b-6d70b620b608/virtualWans"}}},{"name":"AZ Sub 02","subscriptionId":"08379ca7-8069-4552-817d-2c5b94bc54d2","tenantId":"56cd9c37-2599-4888-a9cc-263439d929fa","applicationId":"2a7ae1c2-1148-4a43-9571-e1a18ff0f3f6","applicationKey":"c8ca2384-43b9-4589-a0f6-6f574108fbde","organizationId":"9cb6f313-e6e4-42c3-b399-7394f246041f","ownerIdentityId":null,"createdAt":"2023-01-24T07:55:36.734+00:00","updatedAt":"2023-01-24T17:55:36.734+00:00","id":"7e4b3f6b-6225-4f4f-89a3-fe7890e931d8","_links":{"organization":{"href":"http://localhost/organizations/688d9f59-8e6d-4015-85f4-b876fffbbf4d"},"self":{"href":"http://localhost/azureSubscriptions/7e4b3f6b-6225-4f4f-89a3-fe7890e931d8"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/7e4b3f6b-6225-4f4f-89a3-fe7890e931d8/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/7e4b3f6b-6225-4f4f-89a3-fe7890e931d8/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/0a1b14da-1475-4a25-bc2f-dcc4637ffe31' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The Azure Subscription name |
|
|
The Azure Subscription id |
|
|
The Subscription ID for the Azure Service Principal |
|
|
The Tenant ID (Directory ID) for your Azure AD Tenant |
|
|
The Application ID for your Azure App Registration |
|
|
The Application Key for your Azure App Registration |
|
|
The id of the organization that this subscription is associated to. |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
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":"2317f558-b792-45f1-bd6c-ad52d5f81fc6","tenantId":"480fe034-25eb-48fc-b6d4-b8cbfb567d32","applicationId":"a9d28b81-fff4-4d39-a4ca-28b551353e5c","applicationKey":"ccd2b386-f5a5-4b42-aa8a-18925e82e514","organizationId":"ce7248b2-f085-42a7-89a8-205513c340f6","ownerIdentityId":null,"createdAt":"2023-01-24T07:55:41.555+00:00","updatedAt":"2023-01-24T17:55:41.555+00:00","id":"0a1b14da-1475-4a25-bc2f-dcc4637ffe31","_links":{"organization":{"href":"http://localhost/organizations/9d4a0375-8882-4d33-8760-2409c88d06b9"},"self":{"href":"http://localhost/azureSubscriptions/0a1b14da-1475-4a25-bc2f-dcc4637ffe31"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/0a1b14da-1475-4a25-bc2f-dcc4637ffe31/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/0a1b14da-1475-4a25-bc2f-dcc4637ffe31/virtualWans"}}}
Creating an Azure Subscription
A POST
request creates an Azure Subscription.
Request Fields
Path | Type | Description |
---|---|---|
|
|
The Azure Subscription name |
|
|
The Subscription ID for the Azure Service Principal |
|
|
The Tenant ID (Directory ID) for your Azure AD Tenant |
|
|
The Application ID for your Azure App Registration |
|
|
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":"67000a28-a5a4-4808-93ea-cb4181e6f13f","tenantId":"b33ce914-4d8d-424b-90dd-a1d44284d959","applicationId":"7b05378e-ffcc-49a0-a02b-92fe38e3f2fe","applicationKey":"3bcbbed4-e1cf-4cc3-8c49-dd24032b95be"}'
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":"67000a28-a5a4-4808-93ea-cb4181e6f13f","tenantId":"b33ce914-4d8d-424b-90dd-a1d44284d959","applicationId":"7b05378e-ffcc-49a0-a02b-92fe38e3f2fe","applicationKey":"3bcbbed4-e1cf-4cc3-8c49-dd24032b95be"}
Example HTTPie request
$ echo '{"name":"Test AZ Subscription 02","subscriptionId":"67000a28-a5a4-4808-93ea-cb4181e6f13f","tenantId":"b33ce914-4d8d-424b-90dd-a1d44284d959","applicationId":"7b05378e-ffcc-49a0-a02b-92fe38e3f2fe","applicationKey":"3bcbbed4-e1cf-4cc3-8c49-dd24032b95be"}' | http POST 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions' \
'Content-Type:application/json'
Example response
Response Fields
Path | Type | Description |
---|---|---|
|
|
The Azure Subscription name |
|
|
The Azure Subscription id |
|
|
The Subscription ID for the Azure Service Principal |
|
|
The Tenant ID (Directory ID) for your Azure AD Tenant |
|
|
The Application ID for your Azure App Registration |
|
|
The Application Key for your Azure App Registration |
|
|
The id of the organization that this subscription is associated to. |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
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":"df46b582-aae3-4ac7-b232-bcdfd08a93f8","tenantId":"00aa4d6b-4352-4afa-aa00-2bca21f1569f","applicationId":"161c1def-d4e8-4b93-9ba0-f308205a6c73","applicationKey":"246bb933-1863-4d44-9064-438c1050530f","organizationId":"f228eb5d-9abf-4918-a48a-fad1989a9161","ownerIdentityId":null,"createdAt":"2023-01-24T07:55:40.796+00:00","updatedAt":"2023-01-24T17:55:40.796+00:00","id":"cf0d58b2-848b-4508-bc18-cbfbf0b6d61e","_links":{"organization":{"href":"http://localhost/organizations/0cbf73af-9e30-4cf8-bcd9-208cb38cdaa1"},"self":{"href":"http://localhost/azureSubscriptions/cf0d58b2-848b-4508-bc18-cbfbf0b6d61e"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/cf0d58b2-848b-4508-bc18-cbfbf0b6d61e/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/cf0d58b2-848b-4508-bc18-cbfbf0b6d61e/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/ebf78b8f-91f2-40ac-acf4-42407deb5799' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{"name":"Test AZ Subscription 01","subscriptionId":"bf20ceb1-7694-4c5c-9578-651741fbb008","tenantId":"e711cf16-a91f-457c-ba3e-94b839ca35ed","applicationId":"db445a92-f615-48a0-9eb5-fc20ae637fc8","applicationKey":"3d60a40a-1315-4dce-b7c6-8692d1e16487","organizationId":null,"ownerIdentityId":null,"createdAt":null,"updatedAt":null,"id":null}'
Example HTTP request
PUT /rest/v1/azureSubscriptions/ebf78b8f-91f2-40ac-acf4-42407deb5799 HTTP/1.1
Content-Type: application/json
Content-Length: 340
Host: gateway.production.netfoundry.io
{"name":"Test AZ Subscription 01","subscriptionId":"bf20ceb1-7694-4c5c-9578-651741fbb008","tenantId":"e711cf16-a91f-457c-ba3e-94b839ca35ed","applicationId":"db445a92-f615-48a0-9eb5-fc20ae637fc8","applicationKey":"3d60a40a-1315-4dce-b7c6-8692d1e16487","organizationId":null,"ownerIdentityId":null,"createdAt":null,"updatedAt":null,"id":null}
Example HTTPie request
$ echo '{"name":"Test AZ Subscription 01","subscriptionId":"bf20ceb1-7694-4c5c-9578-651741fbb008","tenantId":"e711cf16-a91f-457c-ba3e-94b839ca35ed","applicationId":"db445a92-f615-48a0-9eb5-fc20ae637fc8","applicationKey":"3d60a40a-1315-4dce-b7c6-8692d1e16487","organizationId":null,"ownerIdentityId":null,"createdAt":null,"updatedAt":null,"id":null}' | http PUT 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/ebf78b8f-91f2-40ac-acf4-42407deb5799' \
'Content-Type:application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The Azure Subscription id |
|
|
The Azure Subscription name |
|
|
The Subscription ID for the Azure Service Principal |
|
|
The Tenant ID (Directory ID) for your Azure AD Tenant |
|
|
The Application ID for your Azure App Registration |
|
|
The Application Key for your Azure App Registration |
|
|
The id of the organization that this subscription is associated to. |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
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":"6c919c8a-5900-4270-9485-8d0c3279bcb6","tenantId":"0489644b-1976-4947-8283-a14cb09fafc8","applicationId":"d3e1bb9b-1877-4fed-bbd2-cc8a2acdbcf8","applicationKey":"75b24069-eb6b-4202-94c7-5f1062ab164c","organizationId":"7202a910-ac96-4c95-a1df-9aaf82266f73","ownerIdentityId":null,"createdAt":"2023-01-24T07:55:41.351+00:00","updatedAt":"2023-01-24T17:55:41.351+00:00","id":"ebf78b8f-91f2-40ac-acf4-42407deb5799","_links":{"organization":{"href":"http://localhost/organizations/0213862e-0804-4829-98a7-1c61602500d0"},"self":{"href":"http://localhost/azureSubscriptions/ebf78b8f-91f2-40ac-acf4-42407deb5799"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/ebf78b8f-91f2-40ac-acf4-42407deb5799/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/ebf78b8f-91f2-40ac-acf4-42407deb5799/virtualWans"}}}
Deleting an Azure Subscription
A DELETE
request deletes an Azure Subscription.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/azureSubscriptions/3ed0e9e7-f7fb-4134-b1e0-b8307d0f79f3' -i -X DELETE \
-H 'Content-Type: application/json'
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/8ef40181-51ed-49df-ba22-b0b595f27255/cas/' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Certificate Authority resources |
|
|
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":"2023-01-24T17:57:41.192+00:00","updatedAt":"2023-01-24T17:57:41.192+00:00","name":"Test CertificateAuthorityResponse 01","id":"27480024-9572-4b57-bee6-2efcf6df086e","_links":{"self":{"href":"http://localhost/networks/8ef40181-51ed-49df-ba22-b0b595f27255/cas/27480024-9572-4b57-bee6-2efcf6df086e"},"verify":{"href":"http://localhost/networks/8ef40181-51ed-49df-ba22-b0b595f27255/cas/27480024-9572-4b57-bee6-2efcf6df086e/verify"},"network":{"href":"http://localhost/networks/8ef40181-51ed-49df-ba22-b0b595f27255"}}},{"isAuthEnabled":true,"isOttCaEnrollmentEnabled":true,"isAutoCaEnrollmentEnabled":true,"isVerified":false,"verificationToken":null,"fingerprint":null,"jwt":null,"createdAt":"2023-01-24T17:57:41.192+00:00","updatedAt":"2023-01-24T17:57:41.192+00:00","name":"Test CertificateAuthorityResponse 02","id":"0a3cef97-7b9c-4f6b-8378-854346af434e","_links":{"self":{"href":"http://localhost/networks/8ef40181-51ed-49df-ba22-b0b595f27255/cas/0a3cef97-7b9c-4f6b-8378-854346af434e"},"verify":{"href":"http://localhost/networks/8ef40181-51ed-49df-ba22-b0b595f27255/cas/0a3cef97-7b9c-4f6b-8378-854346af434e/verify"},"network":{"href":"http://localhost/networks/8ef40181-51ed-49df-ba22-b0b595f27255"}}}]},"_links":{"self":{"href":"http://localhost/networks/8ef40181-51ed-49df-ba22-b0b595f27255/cas"}}}
Fetching a Certificate Authority
A GET
request fetches a specific Certificate Authority.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/6581cdf6-fb1b-488a-8501-444196f7d7a2/cas/d0a9ae1e-48e6-4bed-b65d-85d2737bdffa' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The CA’s name |
|
|
The CA’s id |
|
|
Enable Auth for the CA |
|
|
Enable Auto CA enrollment |
|
|
Enable One-Time Token CA enrollment |
|
|
Is the CA verified |
|
|
CA Verification token |
|
|
Fingerprint of the CA |
|
|
JWT for auto-enrolling identities |
|
|
Record creation time |
|
|
Record last modification time |
|
|
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":"2023-01-24T17:57:41.147+00:00","updatedAt":"2023-01-24T17:57:41.147+00:00","name":"Test CertificateAuthorityResponse 01","id":"d0a9ae1e-48e6-4bed-b65d-85d2737bdffa","_links":{"self":{"href":"http://localhost/networks/6581cdf6-fb1b-488a-8501-444196f7d7a2/cas/d0a9ae1e-48e6-4bed-b65d-85d2737bdffa"},"verify":{"href":"http://localhost/networks/6581cdf6-fb1b-488a-8501-444196f7d7a2/cas/d0a9ae1e-48e6-4bed-b65d-85d2737bdffa/verify"},"network":{"href":"http://localhost/networks/6581cdf6-fb1b-488a-8501-444196f7d7a2"}}}
Creating a Certificate Authority
A POST
request creates a Certificate Authority
Request Fields
Path | Type | Description |
---|---|---|
|
|
The CA’s name |
|
|
Enable Auth for the CA |
|
|
Enable Auto CA enrollment |
|
|
Enable One-Time Token CA enrollment |
|
|
CA Contents |
Example CURL request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/2fd74847-6998-4ffe-8c87-bdd1a485a8ee/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/2fd74847-6998-4ffe-8c87-bdd1a485a8ee/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/2fd74847-6998-4ffe-8c87-bdd1a485a8ee/cas' \
'Content-Type:application/json'
Example response
Response Fields
Path | Type | Description |
---|---|---|
|
|
The CA’s name |
|
|
The CA’s id |
|
|
Enable Auth for the CA |
|
|
Enable Auto CA enrollment |
|
|
Enable One-Time Token CA enrollment |
|
|
Is the CA verified |
|
|
CA Verification token |
|
|
Fingerprint of the CA |
|
|
JWT for auto-enrolling identities |
|
|
Record creation time |
|
|
Record last modification time |
|
|
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":"2023-01-24T17:57:40.783+00:00","updatedAt":"2023-01-24T17:57:40.783+00:00","name":"Test CertificateAuthorityResponse 01","id":"df3ee5ba-84ba-4be0-ba68-9236a691e88a","_links":{"self":{"href":"http://localhost/networks/2fd74847-6998-4ffe-8c87-bdd1a485a8ee/cas/df3ee5ba-84ba-4be0-ba68-9236a691e88a"},"verify":{"href":"http://localhost/networks/2fd74847-6998-4ffe-8c87-bdd1a485a8ee/cas/df3ee5ba-84ba-4be0-ba68-9236a691e88a/verify"},"network":{"href":"http://localhost/networks/2fd74847-6998-4ffe-8c87-bdd1a485a8ee"}}}
Verifying a Certificate Authority
A POST
request verifies a specific Certificate Authority.
Example CURL request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/7ba0e38b-e8ac-453f-940c-726cd202993b/cas/228f1b49-26e8-48ea-95f9-531c3da34d1d/verify' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"certificate":"Verification Cert Contents Here"}'
Example HTTP request
POST /rest/v1/networks/7ba0e38b-e8ac-453f-940c-726cd202993b/cas/228f1b49-26e8-48ea-95f9-531c3da34d1d/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/7ba0e38b-e8ac-453f-940c-726cd202993b/cas/228f1b49-26e8-48ea-95f9-531c3da34d1d/verify' \
'Content-Type:application/json'
Updating a Certificate Authority
A PUT
request creates a Certificate Authority
Request Fields
Path | Type | Description |
---|---|---|
|
|
The CA’s name |
|
|
Enable Auth for the CA |
|
|
Enable Auto CA enrollment |
|
|
Enable One-Time Token CA enrollment |
Example CURL request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/b471f9fa-7cac-4b1f-9530-1e09ca1958ce/cas/0e57d3bb-7eac-43b4-ba07-28443abf2c89' -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/b471f9fa-7cac-4b1f-9530-1e09ca1958ce/cas/0e57d3bb-7eac-43b4-ba07-28443abf2c89 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/b471f9fa-7cac-4b1f-9530-1e09ca1958ce/cas/0e57d3bb-7eac-43b4-ba07-28443abf2c89' \
'Content-Type:application/json'
Example response
Response Fields
Path | Type | Description |
---|---|---|
|
|
The CA’s name |
|
|
The CA’s id |
|
|
Enable Auth for the CA |
|
|
Enable Auto CA enrollment |
|
|
Enable One-Time Token CA enrollment |
|
|
Is the CA verified |
|
|
CA Verification token |
|
|
Fingerprint of the CA |
|
|
JWT for auto-enrolling identities |
|
|
Record creation time |
|
|
Record last modification time |
|
|
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":"2023-01-24T17:57:40.881+00:00","updatedAt":"2023-01-24T17:57:40.881+00:00","name":"Test CertificateAuthorityResponse 01","id":"66530f7b-7a81-403e-b311-52172040da47","_links":{"self":{"href":"http://localhost/networks/b471f9fa-7cac-4b1f-9530-1e09ca1958ce/cas/66530f7b-7a81-403e-b311-52172040da47"},"verify":{"href":"http://localhost/networks/b471f9fa-7cac-4b1f-9530-1e09ca1958ce/cas/66530f7b-7a81-403e-b311-52172040da47/verify"},"network":{"href":"http://localhost/networks/b471f9fa-7cac-4b1f-9530-1e09ca1958ce"}}}
Deleting a Certificate Authority
A DELETE
request deletes a Certificate Authority
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/dab87e7a-5e4d-4a66-8958-a8d936e84809/cas/8a7fe7d8-827c-4650-bd61-98c44199db95' -i -X DELETE \
-H 'Content-Type: application/json'
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 |
---|---|---|
|
|
An array of Network resources |
|
|
Links to other resources and pages |
|
|
Pagination info |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3160
{"_embedded":{"networks":[{"createdAt":"2023-01-24T07:57:09.618+00:00","updatedAt":"2023-01-24T17:57:09.618+00:00","name":"Test Network 01","caName":"CA_c52c7fd6-c6d9-44ef-bfbc-64ea8d3f7445","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"e3c3d9bf-54c7-4d65-b079-3edf11d0492d","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"8c4a108b-de85-47ec-a532-ab9294609b32","_links":{"self":{"href":"http://localhost/networks/8c4a108b-de85-47ec-a532-ab9294609b32"},"organization":{"href":"http://localhost/organizations/e3c3d9bf-54c7-4d65-b079-3edf11d0492d"},"networkControllerHosts":{"href":"http://localhost/networks/8c4a108b-de85-47ec-a532-ab9294609b32/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/8c4a108b-de85-47ec-a532-ab9294609b32/endpoints"},"endpointGroups":{"href":"http://localhost/networks/8c4a108b-de85-47ec-a532-ab9294609b32/endpointGroups"},"services":{"href":"http://localhost/networks/8c4a108b-de85-47ec-a532-ab9294609b32/services"},"appWans":{"href":"http://localhost/networks/8c4a108b-de85-47ec-a532-ab9294609b32/appWans"},"gatewayClusters":{"href":"http://localhost/networks/8c4a108b-de85-47ec-a532-ab9294609b32/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/8c4a108b-de85-47ec-a532-ab9294609b32/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/8c4a108b-de85-47ec-a532-ab9294609b32/networkConfigMetadata"}}},{"createdAt":"2023-01-24T07:57:09.619+00:00","updatedAt":"2023-01-24T17:57:09.619+00:00","name":"Test Network 02","caName":"CA_b526721d-c8eb-4777-940a-ab82fb352266","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"e3c3d9bf-54c7-4d65-b079-3edf11d0492d","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"055116ee-208b-4f72-beaf-dba13a859b94","_links":{"self":{"href":"http://localhost/networks/055116ee-208b-4f72-beaf-dba13a859b94"},"organization":{"href":"http://localhost/organizations/e3c3d9bf-54c7-4d65-b079-3edf11d0492d"},"networkControllerHosts":{"href":"http://localhost/networks/055116ee-208b-4f72-beaf-dba13a859b94/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/055116ee-208b-4f72-beaf-dba13a859b94/endpoints"},"endpointGroups":{"href":"http://localhost/networks/055116ee-208b-4f72-beaf-dba13a859b94/endpointGroups"},"services":{"href":"http://localhost/networks/055116ee-208b-4f72-beaf-dba13a859b94/services"},"appWans":{"href":"http://localhost/networks/055116ee-208b-4f72-beaf-dba13a859b94/appWans"},"gatewayClusters":{"href":"http://localhost/networks/055116ee-208b-4f72-beaf-dba13a859b94/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/055116ee-208b-4f72-beaf-dba13a859b94/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/055116ee-208b-4f72-beaf-dba13a859b94/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 |
---|---|---|
|
|
An array of Network resources |
|
|
Links to other resources and pages |
|
|
Pagination info |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3189
{"_embedded":{"networks":[{"createdAt":"2023-01-24T07:57:09.786+00:00","updatedAt":"2023-01-24T17:57:09.786+00:00","name":"Test Network 01","caName":"CA_74834ca7-1a25-4bd7-add9-fa0ae8dcef5a","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"8a97a6c7-be2a-4174-93b7-0b1d918c57eb","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"a988bba3-16b8-49ff-887c-dbf19b8743e3","_links":{"self":{"href":"http://localhost/networks/a988bba3-16b8-49ff-887c-dbf19b8743e3"},"organization":{"href":"http://localhost/organizations/8a97a6c7-be2a-4174-93b7-0b1d918c57eb"},"networkControllerHosts":{"href":"http://localhost/networks/a988bba3-16b8-49ff-887c-dbf19b8743e3/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/a988bba3-16b8-49ff-887c-dbf19b8743e3/endpoints"},"endpointGroups":{"href":"http://localhost/networks/a988bba3-16b8-49ff-887c-dbf19b8743e3/endpointGroups"},"services":{"href":"http://localhost/networks/a988bba3-16b8-49ff-887c-dbf19b8743e3/services"},"appWans":{"href":"http://localhost/networks/a988bba3-16b8-49ff-887c-dbf19b8743e3/appWans"},"gatewayClusters":{"href":"http://localhost/networks/a988bba3-16b8-49ff-887c-dbf19b8743e3/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/a988bba3-16b8-49ff-887c-dbf19b8743e3/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/a988bba3-16b8-49ff-887c-dbf19b8743e3/networkConfigMetadata"}}},{"createdAt":"2023-01-24T07:57:09.787+00:00","updatedAt":"2023-01-24T17:57:09.787+00:00","name":"Test Network 02","caName":"CA_0b84e092-0682-4233-8b56-fb750735ddfc","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"8a97a6c7-be2a-4174-93b7-0b1d918c57eb","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"8150c8b2-d61c-4572-a973-86f7f16126b2","_links":{"self":{"href":"http://localhost/networks/8150c8b2-d61c-4572-a973-86f7f16126b2"},"organization":{"href":"http://localhost/organizations/8a97a6c7-be2a-4174-93b7-0b1d918c57eb"},"networkControllerHosts":{"href":"http://localhost/networks/8150c8b2-d61c-4572-a973-86f7f16126b2/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/8150c8b2-d61c-4572-a973-86f7f16126b2/endpoints"},"endpointGroups":{"href":"http://localhost/networks/8150c8b2-d61c-4572-a973-86f7f16126b2/endpointGroups"},"services":{"href":"http://localhost/networks/8150c8b2-d61c-4572-a973-86f7f16126b2/services"},"appWans":{"href":"http://localhost/networks/8150c8b2-d61c-4572-a973-86f7f16126b2/appWans"},"gatewayClusters":{"href":"http://localhost/networks/8150c8b2-d61c-4572-a973-86f7f16126b2/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/8150c8b2-d61c-4572-a973-86f7f16126b2/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/8150c8b2-d61c-4572-a973-86f7f16126b2/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/73fa6545-07eb-4b74-b6b8-f0453f2bb765' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The network’s name |
|
|
The network’s id |
|
|
The network’s ca name |
|
|
The network’s product family |
|
|
The version of the network core software |
|
|
Optional O365 Category for checking conflicts between network services in O365 routes. Options: NONE, ALLOW, OPTIMIZE |
|
|
Optional OKTA Client ID for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later |
|
|
Optional OKTA Issuer URL for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later |
|
|
Provisioning status of the network |
|
|
The id of the organization that this network belongs to. |
|
|
Record creation time |
|
|
Record last modification time |
|
|
The provisioned status of the Network |
|
|
Identity Id of the owner |
|
|
The network config metadata id |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1506
{"createdAt":"2023-01-24T07:57:09.224+00:00","updatedAt":"2023-01-24T17:57:09.224+00:00","name":"Test Network 01","caName":"CA_bb684a5a-a1d3-4886-88c4-f9b0907220fb","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"bc9293c4-30eb-42b5-b1ae-d3b6542a7f70","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"73fa6545-07eb-4b74-b6b8-f0453f2bb765","_links":{"self":{"href":"http://localhost/networks/73fa6545-07eb-4b74-b6b8-f0453f2bb765"},"organization":{"href":"http://localhost/organizations/bc9293c4-30eb-42b5-b1ae-d3b6542a7f70"},"networkControllerHosts":{"href":"http://localhost/networks/73fa6545-07eb-4b74-b6b8-f0453f2bb765/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/73fa6545-07eb-4b74-b6b8-f0453f2bb765/endpoints"},"endpointGroups":{"href":"http://localhost/networks/73fa6545-07eb-4b74-b6b8-f0453f2bb765/endpointGroups"},"services":{"href":"http://localhost/networks/73fa6545-07eb-4b74-b6b8-f0453f2bb765/services"},"appWans":{"href":"http://localhost/networks/73fa6545-07eb-4b74-b6b8-f0453f2bb765/appWans"},"gatewayClusters":{"href":"http://localhost/networks/73fa6545-07eb-4b74-b6b8-f0453f2bb765/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/73fa6545-07eb-4b74-b6b8-f0453f2bb765/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/73fa6545-07eb-4b74-b6b8-f0453f2bb765/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/d647d76f-8bb9-4ef3-957f-85b77dbd7e43/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/e174692f-8a07-4afa-8a2f-065fc4229393/networkControllerHosts' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Network Controller resources |
|
|
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/e174692f-8a07-4afa-8a2f-065fc4229393/networkControllerHosts"},"network":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/e174692f-8a07-4afa-8a2f-065fc4229393"}}}
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/ea8c11b0-33d6-4e59-a81e-db21bfe104ce/networkConfigMetadata' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The network config metadata name |
|
|
The network config metadata id |
|
|
The size of aws network controller, eg: T2Medium |
|
|
The size of aws gateway, eg: T2Micro |
|
|
The size of aws transfer node, eg: T2Micro |
|
|
The size of azure transfer node, eg: Standard_B1s |
|
|
The size of network controller volume |
|
|
The size of transfer node volume |
|
|
The size of gateway volume |
|
|
The size of ali cloud transfer node |
|
|
The size of GCP transfer node |
|
|
The size of the OCP transfer node |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Links to other resources and pages |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 508
{"createdAt":null,"updatedAt":null,"name":"small","awsNetworkControllerSize":null,"awsGatewaySize":null,"awsTransferNodeSize":null,"azureTransferNodeSize":null,"alicloudTransferNodeSize":null,"gcpTransferNodeSize":null,"ocpTransferNodeSize":null,"networkControllerVolumeSize":0,"transferNodeVolumeSize":0,"gatewayVolumeSize":0,"id":"c9d9d36a-1413-48e8-930c-ff6f4a300ca4","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/c9d9d36a-1413-48e8-930c-ff6f4a300ca4"}}}
Creating a network
A POST
request creates a network.
Request Fields
Path | Type | Description |
---|---|---|
|
|
Required: The network’s name |
|
|
Optional configuration name for sizing. Default is medium |
|
|
Optional product family. One of * DVN: disable Ziti LTS endpoints * ZITI_ENABLED (default): enable Ziti LTS endpoints e.g. Tunneler LTS. |
|
|
The network’s product version a.k.a. "network version". Typically you will use the latest which is always the default. |
|
|
Optional locationCode (from LocationMetadata) in which to home your network’s dedicated controller. The default is AWS N Virginia. Partial match (startsWith()) |
|
|
Optional O365 Category for checking conflicts between network services in O365 routes. Options: NONE, ALLOW, OPTIMIZE |
|
|
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 |
---|---|---|
|
|
The network’s name |
|
|
The network’s id |
|
|
The network’s ca name |
|
|
The network’s product family |
|
|
The version of the network core software |
|
|
Optional O365 Category for checking conflicts between network services in O365 routes |
|
|
Optional OKTA Client ID for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later |
|
|
Optional OKTA Issuer URL for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later |
|
|
Provisioning status of the network |
|
|
The id of the organization that this network belongs to. |
|
|
Record creation time |
|
|
Record last modification time |
|
|
The provisioned status of the Network |
|
|
The network config metadata id |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1506
{"createdAt":"2023-01-24T07:57:09.467+00:00","updatedAt":"2023-01-24T17:57:09.467+00:00","name":"Test Network 01","caName":"CA_9130ce17-52d4-4b59-b99e-65253918dafd","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"ebc5cd02-5c65-440e-b39c-721ed525472d","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"7e64e2aa-b83b-41d1-85a3-b47744d2c30d","_links":{"self":{"href":"http://localhost/networks/7e64e2aa-b83b-41d1-85a3-b47744d2c30d"},"organization":{"href":"http://localhost/organizations/ebc5cd02-5c65-440e-b39c-721ed525472d"},"networkControllerHosts":{"href":"http://localhost/networks/7e64e2aa-b83b-41d1-85a3-b47744d2c30d/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/7e64e2aa-b83b-41d1-85a3-b47744d2c30d/endpoints"},"endpointGroups":{"href":"http://localhost/networks/7e64e2aa-b83b-41d1-85a3-b47744d2c30d/endpointGroups"},"services":{"href":"http://localhost/networks/7e64e2aa-b83b-41d1-85a3-b47744d2c30d/services"},"appWans":{"href":"http://localhost/networks/7e64e2aa-b83b-41d1-85a3-b47744d2c30d/appWans"},"gatewayClusters":{"href":"http://localhost/networks/7e64e2aa-b83b-41d1-85a3-b47744d2c30d/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/7e64e2aa-b83b-41d1-85a3-b47744d2c30d/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/7e64e2aa-b83b-41d1-85a3-b47744d2c30d/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/fb3eb562-2f88-4c7c-ab05-9449d9cd5f38/networks' -i -X POST \
-H 'Content-Type: multipart/form-data' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJqNkZ1cmtrZzZQT2hadFpiRENqdjJRIiwiaXNzIjoiTmV0Rm91bmRyeSIsInN1YiI6IjIyNzMyNTkyLTYxYTItNDg2Mi1iMTNjLTkzZGRmNzgyOWM1ZiIsImF1ZCI6ImlvLm5ldGZvdW5kcnkubmV0d29yayIsImlhdCI6MTY3NDU4MzA0OSwiZXhwIjoxNjc0NTg2NjQ5LCJncmFudHMtc3VwZXIiOiJbXSIsImdyYW50cy1jdXN0b20iOiJbXSIsImdyYW50cy1wdWJsaWMiOiJbXSIsImdyYW50cy1hY3Rpb24iOiJbe1wiaWRcIjpcIjJlMmVlNjFjLWVmZjktNGU5Mi04YTQyLTdjMGQ3YzRlMjZmYVwiLFwibGFzdE1vZGlmaWVkXCI6MTY3NDU4MzA0OX0se1wiaWRcIjpcImY5N2U3ZTI2LWZiZjAtNDlhMC04ODRkLTM5Nzg2NTFmMWM3OVwiLFwibGFzdE1vZGlmaWVkXCI6MTY3NDU4MzA0OX1dIiwiZ3JhbnRzLXN0YW5kYXJkIjoiW10ifQ.Yi4aen3ZspobnaeYpg3Uo6qAM15bXcAnyv0MRBP4n8ncT01mB5_KSDIPrFbJVG4ZpgapfNwsbAVmwklZnbyzaqrCtqoGY0QRA49h1fc8IDZo__zI8xH1qjdAgrf4TgIowH8RuXndm1oWe418AiTUHIVj0zBxbNQKmm1fBUV3n6hTyL6EvAG7Q8t1qxOywRm4GMBL_cS4JXlgcghqvp67LST_xZzOF-EtXA5ktK2PUeFOPgDKJphi8lVWoxhCE2Z7XhmTctPeRHhEzLJuPheNgyGcN0vkZKDqrULTGhnx_oIXHHL7oV7vnNkTF0Q9a4fyUxZ0rIzYKBxBMKvrp1Hb7w' \
-F 'file=@hello;type=multipart/form-data'
Example response
Path | Type | Description |
---|---|---|
|
|
The businessKey of the process |
|
|
Network Data |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1857
{"businessKey":null,"network":{"createdAt":"2023-01-24T07:57:29.072+00:00","updatedAt":"2023-01-24T17:57:29.072+00:00","name":"Test Network 01","caName":"CA_704fa1e4-d64e-4fe0-9c31-d3e630aea8f1","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"fb3eb562-2f88-4c7c-ab05-9449d9cd5f38","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"48624a96-fa1b-4e06-83d3-3fd4f63f5df1","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/48624a96-fa1b-4e06-83d3-3fd4f63f5df1"},"organization":{"href":"https://gateway.production.netfoundry.io/rest/v1/organizations/c7380e30-13b8-4b38-b5b4-7cababa74365"},"networkControllerHosts":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/48624a96-fa1b-4e06-83d3-3fd4f63f5df1/networkControllerHosts"},"endpoints":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/48624a96-fa1b-4e06-83d3-3fd4f63f5df1/endpoints"},"endpointGroups":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/48624a96-fa1b-4e06-83d3-3fd4f63f5df1/endpointGroups"},"services":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/48624a96-fa1b-4e06-83d3-3fd4f63f5df1/services"},"appWans":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/48624a96-fa1b-4e06-83d3-3fd4f63f5df1/appWans"},"gatewayClusters":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/48624a96-fa1b-4e06-83d3-3fd4f63f5df1/gatewayClusters"},"virtualWanSites":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/48624a96-fa1b-4e06-83d3-3fd4f63f5df1/virtualWanSites"},"networkConfigMetadata":{"href":"https://gateway.production.netfoundry.io/rest/v1/networks/48624a96-fa1b-4e06-83d3-3fd4f63f5df1/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/d17ec782-563d-434a-ab08-037213857424' -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/d17ec782-563d-434a-ab08-037213857424 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/d17ec782-563d-434a-ab08-037213857424' \
'Content-Type:application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The network’s name |
|
|
The network’s id |
|
|
The network’s ca name |
|
|
The network’s product family |
|
|
The version of the network core software |
|
|
Optional O365 Category for checking conflicts between network services in O365 routes. Options: NONE, ALLOW, OPTIMIZE |
|
|
Optional OKTA Client ID for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later |
|
|
Optional Optional OKTA Issuer URL for OKTA NF Client MFA Application: Valid in Product/Network Version 5 or later |
|
|
Provisioning status of the network |
|
|
The id of the organization that this network belongs to. |
|
|
Record creation time |
|
|
Record last modification time |
|
|
The provisioned status of the Network |
|
|
Identity Id of the owner |
|
|
The network config metadata id |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1514
{"createdAt":"2023-01-24T07:57:09.560+00:00","updatedAt":"2023-01-24T17:57:09.560+00:00","name":"Test Network 01 Updated","caName":"CA_b60c91ee-daa3-40ac-ba37-48ee8860a424","productFamily":"DVN","productVersion":"3.6.6.11042","provisionedAt":null,"o365BreakoutCategory":"NONE","mfaClientId":null,"mfaIssuerId":null,"status":100,"organizationId":"7e735e06-cbfd-493a-81d8-19d59a66d98c","ownerIdentityId":null,"networkConfigMetadataId":null,"id":"d17ec782-563d-434a-ab08-037213857424","_links":{"self":{"href":"http://localhost/networks/d17ec782-563d-434a-ab08-037213857424"},"organization":{"href":"http://localhost/organizations/7e735e06-cbfd-493a-81d8-19d59a66d98c"},"networkControllerHosts":{"href":"http://localhost/networks/d17ec782-563d-434a-ab08-037213857424/networkControllerHosts"},"endpoints":{"href":"http://localhost/networks/d17ec782-563d-434a-ab08-037213857424/endpoints"},"endpointGroups":{"href":"http://localhost/networks/d17ec782-563d-434a-ab08-037213857424/endpointGroups"},"services":{"href":"http://localhost/networks/d17ec782-563d-434a-ab08-037213857424/services"},"appWans":{"href":"http://localhost/networks/d17ec782-563d-434a-ab08-037213857424/appWans"},"gatewayClusters":{"href":"http://localhost/networks/d17ec782-563d-434a-ab08-037213857424/gatewayClusters"},"virtualWanSites":{"href":"http://localhost/networks/d17ec782-563d-434a-ab08-037213857424/virtualWanSites"},"networkConfigMetadata":{"href":"http://localhost/networks/d17ec782-563d-434a-ab08-037213857424/networkConfigMetadata"}}}
Deleting a Network
A DELETE
request deletes a network.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/caf10fa7-884c-4a09-ac4f-274b32c0cc20' -i -X DELETE \
-H 'Content-Type: application/json'
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: 259
[{"businessKey":"c3dc4ff7-ac78-478b-8078-39bea885fc01","processDefinitionKey":"createNetworkFromDepotAsync","processInstanceId":"06efa495-eea3-40ef-be51-e0bfb5862ba5","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/c7dfb563-491c-472d-8de2-cd7252336d05' -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: 259
[{"businessKey":"c7dfb563-491c-472d-8de2-cd7252336d05","processDefinitionKey":"createNetworkFromDepotAsync","processInstanceId":"a5036839-ff74-4ec0-927c-9017f0d0ac02","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 |
---|---|---|
|
|
An array of Network Config Metadata resources |
|
|
Links to other resources and pages |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 651
{"_embedded":{"networkConfigMetadatas":[{"createdAt":null,"updatedAt":null,"name":"small","awsNetworkControllerSize":null,"awsGatewaySize":null,"awsTransferNodeSize":null,"azureTransferNodeSize":null,"alicloudTransferNodeSize":null,"gcpTransferNodeSize":null,"ocpTransferNodeSize":null,"networkControllerVolumeSize":0,"transferNodeVolumeSize":0,"gatewayVolumeSize":0,"id":"ef669319-e783-4907-ac63-4b2a91fc4f35","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/ef669319-e783-4907-ac63-4b2a91fc4f35"}}}]},"_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/9e6d30ad-9d5b-4049-9f12-689d51e09643' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The network config metadata name |
|
|
The network config metadata id |
|
|
The size of aws network controller, eg: T2Medium |
|
|
The size of aws gateway, eg: T2Micro |
|
|
The size of aws transfer node, eg: T2Micro |
|
|
The size of azure transfer node, eg: Standard_B1s |
|
|
The size of network controller volume |
|
|
The size of transfer node volume |
|
|
The size of gateway volume |
|
|
The size of ali cloud transfer node |
|
|
The size of GCP transfer node |
|
|
The size of the OCP transfer node |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Links to other resources and pages |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 508
{"createdAt":null,"updatedAt":null,"name":"small","awsNetworkControllerSize":null,"awsGatewaySize":null,"awsTransferNodeSize":null,"azureTransferNodeSize":null,"alicloudTransferNodeSize":null,"gcpTransferNodeSize":null,"ocpTransferNodeSize":null,"networkControllerVolumeSize":0,"transferNodeVolumeSize":0,"gatewayVolumeSize":0,"id":"9e6d30ad-9d5b-4049-9f12-689d51e09643","_links":{"self":{"href":"https://gateway.production.netfoundry.io/rest/v1/networkConfigMetadata/9e6d30ad-9d5b-4049-9f12-689d51e09643"}}}
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 |
---|---|---|
|
|
An array of GeoRegion resources |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 589
{"_embedded":{"geoRegions":[{"createdAt":"2023-01-24T07:57:14.875+00:00","updatedAt":"2023-01-24T17:57:14.875+00:00","name":"Geo Region 01","id":"9bbca6aa-767c-4c48-b4ab-dac0ead018fc","_links":{"self":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"}}},{"createdAt":"2023-01-24T07:57:14.875+00:00","updatedAt":"2023-01-24T17:57:14.875+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 |
---|---|---|
|
|
The GeoRegion name |
|
|
The GeoRegion id |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 250
{"createdAt":"2023-01-24T07:57:14.592+00:00","updatedAt":"2023-01-24T17:57:14.592+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 |
---|---|---|
|
|
An array of DataCenter resources |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1301
{"_embedded":{"dataCenters":[{"createdAt":"2023-01-24T07:56:06.155+00:00","updatedAt":"2023-01-24T17:56:06.155+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/0e3202c7-d599-472e-8d4d-d3a234730b06"},"geoRegions":{"href":"http://localhost/dataCenters/0e3202c7-d599-472e-8d4d-d3a234730b06/geoRegions"}}},{"createdAt":"2023-01-24T07:56:06.157+00:00","updatedAt":"2023-01-24T17:56:06.157+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/ca4eb82c-3705-4214-addb-a378169c4f11"},"geoRegions":{"href":"http://localhost/dataCenters/ca4eb82c-3705-4214-addb-a378169c4f11/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/2bad6202-c73a-4e8d-bf3c-4d43c31e8596' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
DataCenter friendly name |
|
|
DataCenter id |
|
|
The DC address |
|
|
The DC city |
|
|
The DC state code |
|
|
The DC state name |
|
|
The continent name |
|
|
The continent code |
|
|
The country name |
|
|
The country code |
|
|
The ISP for the DC |
|
|
The DC latitude |
|
|
The DC longitude |
|
|
The location code |
|
|
The location name |
|
|
The DC provider |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 605
{"createdAt":"2023-01-24T07:56:07.052+00:00","updatedAt":"2023-01-24T17:56:07.052+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/2bad6202-c73a-4e8d-bf3c-4d43c31e8596"},"geoRegions":{"href":"http://localhost/dataCenters/2bad6202-c73a-4e8d-bf3c-4d43c31e8596/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 |
---|---|---|
|
|
DataCenter friendly name |
|
|
DataCenter id |
|
|
The DC address |
|
|
The DC city |
|
|
The DC state code |
|
|
The DC state name |
|
|
The continent name |
|
|
The continent code |
|
|
The country name |
|
|
The country code |
|
|
The ISP for the DC |
|
|
The DC latitude |
|
|
The DC longitude |
|
|
The location code |
|
|
The location name |
|
|
The DC provider |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 605
{"createdAt":"2023-01-24T07:56:07.310+00:00","updatedAt":"2023-01-24T17:56:07.310+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/fc57ba81-5ff4-4f44-904e-47871b735f4c"},"geoRegions":{"href":"http://localhost/dataCenters/fc57ba81-5ff4-4f44-904e-47871b735f4c/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/24935f0c-653b-4634-be53-1efaaef4bda4/endpoints' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Endpoint resources |
|
|
Links to other resources and pages |
|
|
Pagination info |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3223
{"_embedded":{"endpoints":[{"createdAt":"2023-01-24T07:57:20.384+00:00","updatedAt":"2023-01-24T17:57:20.384+00:00","name":"Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"a061ceb8-d834-449a-ac29-2ede99abeb61","componentId":"","_links":{"self":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4/endpoints/a061ceb8-d834-449a-ac29-2ede99abeb61"},"network":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4"},"appWans":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4/endpoints/a061ceb8-d834-449a-ac29-2ede99abeb61/appWans"},"services":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4/endpoints/a061ceb8-d834-449a-ac29-2ede99abeb61/services"},"endpointGroups":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4/endpoints/a061ceb8-d834-449a-ac29-2ede99abeb61/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}},{"createdAt":"2023-01-24T07:57:20.385+00:00","updatedAt":"2023-01-24T17:57:20.385+00:00","name":"Endpoint 02","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"f1739bf7-ac08-4df5-a6f1-b7d306d1f9a8","componentId":"","_links":{"self":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4/endpoints/f1739bf7-ac08-4df5-a6f1-b7d306d1f9a8"},"network":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4"},"appWans":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4/endpoints/f1739bf7-ac08-4df5-a6f1-b7d306d1f9a8/appWans"},"services":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4/endpoints/f1739bf7-ac08-4df5-a6f1-b7d306d1f9a8/services"},"endpointGroups":{"href":"http://localhost/networks/24935f0c-653b-4634-be53-1efaaef4bda4/endpoints/f1739bf7-ac08-4df5-a6f1-b7d306d1f9a8/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/24935f0c-653b-4634-be53-1efaaef4bda4/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/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/endpoints?page=0&size=10&sort=name,ASC' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Endpoint resources |
|
|
Links to other resources and pages |
|
|
Pagination info |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3223
{"_embedded":{"endpoints":[{"createdAt":"2023-01-24T07:57:19.948+00:00","updatedAt":"2023-01-24T17:57:19.948+00:00","name":"Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"8c9ad204-1d94-49e4-a4a1-f683644d26fb","componentId":"","_links":{"self":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/endpoints/8c9ad204-1d94-49e4-a4a1-f683644d26fb"},"network":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f"},"appWans":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/endpoints/8c9ad204-1d94-49e4-a4a1-f683644d26fb/appWans"},"services":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/endpoints/8c9ad204-1d94-49e4-a4a1-f683644d26fb/services"},"endpointGroups":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/endpoints/8c9ad204-1d94-49e4-a4a1-f683644d26fb/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}},{"createdAt":"2023-01-24T07:57:19.949+00:00","updatedAt":"2023-01-24T17:57:19.949+00:00","name":"Endpoint 02","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"4fa23eae-dda7-4ae6-9a62-45edd4de60a7","componentId":"","_links":{"self":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/endpoints/4fa23eae-dda7-4ae6-9a62-45edd4de60a7"},"network":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f"},"appWans":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/endpoints/4fa23eae-dda7-4ae6-9a62-45edd4de60a7/appWans"},"services":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/endpoints/4fa23eae-dda7-4ae6-9a62-45edd4de60a7/services"},"endpointGroups":{"href":"http://localhost/networks/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/endpoints/4fa23eae-dda7-4ae6-9a62-45edd4de60a7/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/61b5c7ea-fed9-4cd4-ac24-fec98df3460f/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/c0d6d8bf-3f7c-454f-8a39-306396c38292/endpoints' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Endpoint resources |
|
|
Links to other resources and pages |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1468
{"_embedded":{"endpoints":[{"createdAt":"2023-01-24T07:57:19.797+00:00","updatedAt":"2023-01-24T17:57:19.797+00:00","name":"Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"ba0edc69-cc21-4e95-a633-d2705325adeb","componentId":""},{"createdAt":"2023-01-24T07:57:19.797+00:00","updatedAt":"2023-01-24T17:57:19.797+00:00","name":"Endpoint 02","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"6182b573-6699-4463-b53b-ccf6e70f87cc","componentId":""}]},"_links":{"self":{"href":"http://localhost/networkgroups/c0d6d8bf-3f7c-454f-8a39-306396c38292/endpoints"}}}
Fetching an endpoint
A GET
request fetches a specific endpoint.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/0b0f94be-9c35-44d3-a369-997d4fd83d95/endpoints/f34ed977-04a6-4778-a669-4f09779ffe70' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The endpoint’s name |
|
|
The endpoint’s id |
|
|
The endpoint’s type |
|
|
The endpoint’s client type |
|
|
The endpoint’s client version |
|
|
The Component ID of the endpoint resource |
|
|
The one-time use registration key |
|
|
Remaining registration attempts |
|
|
Provisioning status of the endpoint |
|
|
Current state of the endpoint |
|
|
Last time state of the endpoint was updated |
|
|
HAGW Endpoint that is part of High Availability Cluster |
|
|
The ID of the Gateway Cluster that this Endpoint belongs to, or null if not clustered. |
|
|
HA Protection role for Endpoint |
|
|
Office 365 breakout optimization traffic next hop |
|
|
The source creating the Endpoint |
|
|
Is Client MFA Required on this endpoint. |
|
|
Provisioning status of the endpoint |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Client sync process that created this endpoint. |
|
|
Client sync unique resource id. |
|
|
The Country ID of the endpoint resource |
|
|
The Network ID of the endpoint resource |
|
|
Identity Id of the owner |
|
|
ID of the geo region for this endpoint |
|
|
ID of the data centerfor this endpoint |
|
|
Identity ID of the identity that authenticates this endpoint |
|
|
Status of the endpoint’s NF Auth Session where 200=connected, 100=disconnected |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1504
{"createdAt":"2023-01-24T07:57:20.263+00:00","updatedAt":"2023-01-24T17:57:20.263+00:00","name":"Test Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"f34ed977-04a6-4778-a669-4f09779ffe70","componentId":"","_links":{"self":{"href":"http://localhost/networks/0b0f94be-9c35-44d3-a369-997d4fd83d95/endpoints/f34ed977-04a6-4778-a669-4f09779ffe70"},"network":{"href":"http://localhost/networks/0b0f94be-9c35-44d3-a369-997d4fd83d95"},"appWans":{"href":"http://localhost/networks/0b0f94be-9c35-44d3-a369-997d4fd83d95/endpoints/f34ed977-04a6-4778-a669-4f09779ffe70/appWans"},"services":{"href":"http://localhost/networks/0b0f94be-9c35-44d3-a369-997d4fd83d95/endpoints/f34ed977-04a6-4778-a669-4f09779ffe70/services"},"endpointGroups":{"href":"http://localhost/networks/0b0f94be-9c35-44d3-a369-997d4fd83d95/endpoints/f34ed977-04a6-4778-a669-4f09779ffe70/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/8f636ca0-053a-443f-bcaa-effd4b7fdeaf/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,"syncResourceId":null,"clientMfaEnable":"NO","subscriptionId":null,"countryId":null,"sessionIdentityId":null,"endpointGroupId":null}'
Example response
Path | Type | Description |
---|---|---|
|
|
The endpoint’s name |
|
|
The endpoint’s id |
|
|
The endpoint’s type |
|
|
The endpoint’s client type |
|
|
The endpoint’s client version |
|
|
The Component ID of the endpoint resource |
|
|
The one-time use registration key |
|
|
Remaining registration attempts |
|
|
Provisioning status of the endpoint |
|
|
Current state of the endpoint |
|
|
Last time state of the endpoint was updated |
|
|
HAGW Endpoint that is part of High Availability Cluster |
|
|
The ID of the Gateway Cluster that this Endpoint belongs to, or null if not clustered. |
|
|
HA Protection role for Endpoint |
|
|
Office 365 breakout optimization traffic next hop |
|
|
The source creating the Endpoint |
|
|
Is Client MFA Required on this endpoint. |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Client sync process that created this endpoint. |
|
|
Client sync unique resource id. |
|
|
The Country ID of the endpoint resource |
|
|
The Network ID of the endpoint resource |
|
|
Identity Id of the owner |
|
|
ID of the geo region for this endpoint |
|
|
ID of the data centerfor this endpoint |
|
|
Identity ID of the identity that authenticates this endpoint |
|
|
Status of the endpoints NF Auth Session |
|
|
Links to other resources |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1504
{"createdAt":"2023-01-24T07:57:20.071+00:00","updatedAt":"2023-01-24T17:57:20.071+00:00","name":"Test Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"6170796c-5334-4344-bc88-e21a09206267","componentId":"","_links":{"self":{"href":"http://localhost/networks/8f636ca0-053a-443f-bcaa-effd4b7fdeaf/endpoints/6170796c-5334-4344-bc88-e21a09206267"},"network":{"href":"http://localhost/networks/8f636ca0-053a-443f-bcaa-effd4b7fdeaf"},"appWans":{"href":"http://localhost/networks/8f636ca0-053a-443f-bcaa-effd4b7fdeaf/endpoints/6170796c-5334-4344-bc88-e21a09206267/appWans"},"services":{"href":"http://localhost/networks/8f636ca0-053a-443f-bcaa-effd4b7fdeaf/endpoints/6170796c-5334-4344-bc88-e21a09206267/services"},"endpointGroups":{"href":"http://localhost/networks/8f636ca0-053a-443f-bcaa-effd4b7fdeaf/endpoints/6170796c-5334-4344-bc88-e21a09206267/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/8799ea6b-d9b8-4a9a-bc05-872441568a0d/endpoints' -i -X POST \
-H 'Content-Type: multipart/form-data' \
-F 'file=@hello;type=multipart/form-data'
Example response
Path | Type | Description |
---|---|---|
|
|
The businessKey of the process |
|
|
Endpoints Data |
|
|
Gateway Clusters Names |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3084
{"businessKey":"8799ea6b-d9b8-4a9a-bc05-872441568a0d","endpoints":[{"createdAt":"2023-01-24T07:57:20.441+00:00","updatedAt":"2023-01-24T17:57:20.441+00:00","name":"Alpha Gw","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"34c80f78-0d9e-45b3-9a25-66b979db5bf2","componentId":"","_links":{"self":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d/endpoints/34c80f78-0d9e-45b3-9a25-66b979db5bf2"},"network":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d"},"appWans":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d/endpoints/34c80f78-0d9e-45b3-9a25-66b979db5bf2/appWans"},"services":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d/endpoints/34c80f78-0d9e-45b3-9a25-66b979db5bf2/services"},"endpointGroups":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d/endpoints/34c80f78-0d9e-45b3-9a25-66b979db5bf2/endpointGroups"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"dataCenter":{"href":"http://localhost/dataCenters/c3b8c2a3-c38b-e280-9d1e-0111c3a7c5b8"}}},{"createdAt":"2023-01-24T07:57:20.441+00:00","updatedAt":"2023-01-24T17:57:20.441+00:00","name":"Asia GW","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"9f5a171d-a91a-470b-97f2-607072279821","componentId":"","_links":{"self":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d/endpoints/9f5a171d-a91a-470b-97f2-607072279821"},"network":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d"},"appWans":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d/endpoints/9f5a171d-a91a-470b-97f2-607072279821/appWans"},"services":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d/endpoints/9f5a171d-a91a-470b-97f2-607072279821/services"},"endpointGroups":{"href":"http://localhost/networks/8799ea6b-d9b8-4a9a-bc05-872441568a0d/endpoints/9f5a171d-a91a-470b-97f2-607072279821/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/44aaa5f0-ff54-4262-ae0f-8466d287fc73/endpoints/76ecf675-4f53-4c70-8dbe-73856a6e19a4' -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 |
---|---|---|
|
|
The endpoint’s name |
|
|
The endpoint’s id |
|
|
The endpoint’s type |
|
|
The endpoint’s client type |
|
|
The endpoint’s client version |
|
|
The Component ID of the endpoint resource |
|
|
The one-time use registration key |
|
|
Remaining registration attempts |
|
|
Provisioning status of the endpoint |
|
|
Current state of the endpoint |
|
|
Last time state of the endpoint was updated |
|
|
HAGW Endpoint that is part of High Availability Cluster |
|
|
The ID of the Gateway Cluster that this Endpoint belongs to, or null if not clustered. |
|
|
HA Protection role for Endpoint |
|
|
Office 365 breakout optimization traffic next hop |
|
|
The source creating the Endpoint |
|
|
Is Client MFA Required on this endpoint. |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Client sync process that created this endpoint. |
|
|
Client sync unique resource id. |
|
|
The Country ID of the endpoint resource |
|
|
The Network ID of the endpoint resource |
|
|
Identity Id of the owner |
|
|
ID of the geo region for this endpoint |
|
|
ID of the data centerfor this endpoint |
|
|
Identity ID of the identity that authenticates this endpoint |
|
|
Status of the endpoints NF Auth Session |
|
|
Links to other resources |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1504
{"createdAt":"2023-01-24T07:57:20.013+00:00","updatedAt":"2023-01-24T17:57:20.013+00:00","name":"Test Endpoint 01","networkId":null,"endpointType":"GW","clientType":"","clientVersion":"","source":null,"syncId":null,"syncResourceId":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":"76ecf675-4f53-4c70-8dbe-73856a6e19a4","componentId":"","_links":{"self":{"href":"http://localhost/networks/44aaa5f0-ff54-4262-ae0f-8466d287fc73/endpoints/76ecf675-4f53-4c70-8dbe-73856a6e19a4"},"network":{"href":"http://localhost/networks/44aaa5f0-ff54-4262-ae0f-8466d287fc73"},"appWans":{"href":"http://localhost/networks/44aaa5f0-ff54-4262-ae0f-8466d287fc73/endpoints/76ecf675-4f53-4c70-8dbe-73856a6e19a4/appWans"},"services":{"href":"http://localhost/networks/44aaa5f0-ff54-4262-ae0f-8466d287fc73/endpoints/76ecf675-4f53-4c70-8dbe-73856a6e19a4/services"},"endpointGroups":{"href":"http://localhost/networks/44aaa5f0-ff54-4262-ae0f-8466d287fc73/endpoints/76ecf675-4f53-4c70-8dbe-73856a6e19a4/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/85eda828-5914-4ed7-b7e6-3c8c691214a9/endpoints/fb5afbd1-1ed5-4970-bc10-424b99bc13c1' -i -X DELETE \
-H 'Content-Type: application/json'
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/fe67d24f-c7ad-4f77-8b41-226b86e238a8/gatewayClusters' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of GatewayCluster resources |
|
|
Links to other resources |
|
|
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":"2023-01-24T07:57:45.012+00:00","updatedAt":"2023-01-24T17:57:45.012+00:00","name":"GatewayCluster01","id":"1d8956f6-1831-4fda-a844-91a347a2512f","_links":{"self":{"href":"http://localhost/networks/fe67d24f-c7ad-4f77-8b41-226b86e238a8/gatewayClusters/1d8956f6-1831-4fda-a844-91a347a2512f"},"network":{"href":"http://localhost/networks/fe67d24f-c7ad-4f77-8b41-226b86e238a8"},"endpoints":{"href":"http://localhost/networks/fe67d24f-c7ad-4f77-8b41-226b86e238a8/gatewayClusters/1d8956f6-1831-4fda-a844-91a347a2512f/endpoints"},"services":{"href":"http://localhost/networks/fe67d24f-c7ad-4f77-8b41-226b86e238a8/gatewayClusters/1d8956f6-1831-4fda-a844-91a347a2512f/services"}}},{"networkId":null,"status":0,"protectionType":"1:1","protectionGroupId":"GatewayCluster01","endpointType":"GW","geoRegionId":null,"ownerIdentityId":null,"createdAt":"2023-01-24T07:57:45.012+00:00","updatedAt":"2023-01-24T17:57:45.012+00:00","name":"GatewayCluster01","id":"9acc7a7c-697f-47a1-b499-470d9f97e310","_links":{"self":{"href":"http://localhost/networks/fe67d24f-c7ad-4f77-8b41-226b86e238a8/gatewayClusters/9acc7a7c-697f-47a1-b499-470d9f97e310"},"network":{"href":"http://localhost/networks/fe67d24f-c7ad-4f77-8b41-226b86e238a8"},"endpoints":{"href":"http://localhost/networks/fe67d24f-c7ad-4f77-8b41-226b86e238a8/gatewayClusters/9acc7a7c-697f-47a1-b499-470d9f97e310/endpoints"},"services":{"href":"http://localhost/networks/fe67d24f-c7ad-4f77-8b41-226b86e238a8/gatewayClusters/9acc7a7c-697f-47a1-b499-470d9f97e310/services"}}}]},"_links":{"first":{"href":"http://localhost/networks/fe67d24f-c7ad-4f77-8b41-226b86e238a8/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/995e2f5e-4a7f-4e1f-a845-a6d843d88459/gatewayClusters/b612a589-cffa-4000-b3f2-b9bc53bd05c9' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The gatewayCluster’s name |
|
|
The gatewayCluster’s name |
|
|
The gatewayCluster’s endpoint’s types |
|
|
The gatewayCluster’s protection type((1:1(active-standby),round-robin |
|
|
The assigned protection group Id for the gatewayCluster |
|
|
GeoRegion ID of the gatewayCluster |
|
|
Provisioning status of the gatewayCluster |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
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":"2023-01-24T07:57:44.917+00:00","updatedAt":"2023-01-24T17:57:44.917+00:00","name":"GatewayCluster01","id":"b612a589-cffa-4000-b3f2-b9bc53bd05c9","_links":{"self":{"href":"http://localhost/networks/995e2f5e-4a7f-4e1f-a845-a6d843d88459/gatewayClusters/b612a589-cffa-4000-b3f2-b9bc53bd05c9"},"network":{"href":"http://localhost/networks/995e2f5e-4a7f-4e1f-a845-a6d843d88459"},"endpoints":{"href":"http://localhost/networks/995e2f5e-4a7f-4e1f-a845-a6d843d88459/gatewayClusters/b612a589-cffa-4000-b3f2-b9bc53bd05c9/endpoints"},"services":{"href":"http://localhost/networks/995e2f5e-4a7f-4e1f-a845-a6d843d88459/gatewayClusters/b612a589-cffa-4000-b3f2-b9bc53bd05c9/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/c322af26-b8db-40c6-8dbc-6b1512969d9a/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 |
---|---|---|
|
|
The network’s name |
|
|
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. |
|
|
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. |
|
|
GeoRegion ID for clients and non-hosted gateways |
|
|
DataCenter ID for 'GW' type hosted endpoints |
|
|
Protection Type. One of '1:1', 'round-robin' (not supported yet). |
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The GatewayCluster’s name |
|
|
The gatewayCluster’s name |
|
|
The gatewayCluster’s endpoint’s types |
|
|
The gatewayCluster’s protection type((1:1(active-standby),round-robin |
|
|
The assigned protection group Id for the gatewayCluster |
|
|
GeoRegion ID of the gatewayCluster |
|
|
Provisioning status of the gatewayCluster |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
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":"2023-01-24T07:57:44.796+00:00","updatedAt":"2023-01-24T17:57:44.796+00:00","name":"GatewayCluster01","id":"812d4564-d5c0-44cc-880f-f1fecde07c26","_links":{"self":{"href":"http://localhost/networks/c322af26-b8db-40c6-8dbc-6b1512969d9a/gatewayClusters/812d4564-d5c0-44cc-880f-f1fecde07c26"},"network":{"href":"http://localhost/networks/c322af26-b8db-40c6-8dbc-6b1512969d9a"},"endpoints":{"href":"http://localhost/networks/c322af26-b8db-40c6-8dbc-6b1512969d9a/gatewayClusters/812d4564-d5c0-44cc-880f-f1fecde07c26/endpoints"},"services":{"href":"http://localhost/networks/c322af26-b8db-40c6-8dbc-6b1512969d9a/gatewayClusters/812d4564-d5c0-44cc-880f-f1fecde07c26/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/357a798f-0255-4975-b7d8-5d3f99248f05/gatewayClusters/4785096f-e3c9-4ece-84ce-05aaf69fc150' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{"name":"Test GatewayCluster 01 New Name"}'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The GatewayCluster’s name |
|
|
The gatewayCluster’s name |
|
|
The gatewayCluster’s endpoint’s types |
|
|
The gatewayCluster’s protection type((1:1(active-standby),round-robin |
|
|
The assigned protection group Id for the gatewayCluster |
|
|
GeoRegion ID of the gatewayCluster |
|
|
Provisioning status of the gatewayCluster |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
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":"2023-01-24T07:57:44.704+00:00","updatedAt":"2023-01-24T17:57:44.704+00:00","name":"GatewayCluster01","id":"4785096f-e3c9-4ece-84ce-05aaf69fc150","_links":{"self":{"href":"http://localhost/networks/357a798f-0255-4975-b7d8-5d3f99248f05/gatewayClusters/4785096f-e3c9-4ece-84ce-05aaf69fc150"},"network":{"href":"http://localhost/networks/357a798f-0255-4975-b7d8-5d3f99248f05"},"endpoints":{"href":"http://localhost/networks/357a798f-0255-4975-b7d8-5d3f99248f05/gatewayClusters/4785096f-e3c9-4ece-84ce-05aaf69fc150/endpoints"},"services":{"href":"http://localhost/networks/357a798f-0255-4975-b7d8-5d3f99248f05/gatewayClusters/4785096f-e3c9-4ece-84ce-05aaf69fc150/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/a98e8402-eb62-45ec-a68b-6aec8b16d92d/gatewayClusters/bffca666-292c-4497-ad4a-8d11554231c8' -i -X DELETE \
-H 'Content-Type: application/json'
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 |
---|---|---|
|
|
An array of Azure Subscription resources |
|
|
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":"53a20e17-6039-4136-aaed-94ff2bf5cf6b","tenantId":"f61d3405-3dc7-445a-b00f-e1b814b3702e","applicationId":"f563749f-02fa-4b35-b01e-5c0a837a1bf6","applicationKey":"8d468191-0497-4fba-a85e-0485a66cbbc3","organizationId":"8975847a-9093-4516-b4df-df3ad8908af4","ownerIdentityId":null,"createdAt":"2023-01-24T07:55:36.629+00:00","updatedAt":"2023-01-24T17:55:36.629+00:00","id":"5a29e49a-c375-4df1-ad5b-6d70b620b608","_links":{"organization":{"href":"http://localhost/organizations/688d9f59-8e6d-4015-85f4-b876fffbbf4d"},"self":{"href":"http://localhost/azureSubscriptions/5a29e49a-c375-4df1-ad5b-6d70b620b608"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/5a29e49a-c375-4df1-ad5b-6d70b620b608/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/5a29e49a-c375-4df1-ad5b-6d70b620b608/virtualWans"}}},{"name":"AZ Sub 02","subscriptionId":"08379ca7-8069-4552-817d-2c5b94bc54d2","tenantId":"56cd9c37-2599-4888-a9cc-263439d929fa","applicationId":"2a7ae1c2-1148-4a43-9571-e1a18ff0f3f6","applicationKey":"c8ca2384-43b9-4589-a0f6-6f574108fbde","organizationId":"9cb6f313-e6e4-42c3-b399-7394f246041f","ownerIdentityId":null,"createdAt":"2023-01-24T07:55:36.734+00:00","updatedAt":"2023-01-24T17:55:36.734+00:00","id":"7e4b3f6b-6225-4f4f-89a3-fe7890e931d8","_links":{"organization":{"href":"http://localhost/organizations/688d9f59-8e6d-4015-85f4-b876fffbbf4d"},"self":{"href":"http://localhost/azureSubscriptions/7e4b3f6b-6225-4f4f-89a3-fe7890e931d8"},"resourceGroups":{"href":"http://localhost/azureSubscriptions/7e4b3f6b-6225-4f4f-89a3-fe7890e931d8/resourceGroups"},"virtualWans":{"href":"http://localhost/azureSubscriptions/7e4b3f6b-6225-4f4f-89a3-fe7890e931d8/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 |
---|---|---|
|
|
The Virtual Wan Site’s name |
|
|
The ID of the endpoint gateway the site is on |
|
|
The NetFoundry ID of the azure datacenter where the Virtual Wan Site will connect |
|
|
The azure subscription id |
|
|
The resource group for the Virtual Wan Site |
|
|
The name of the Virtual WAN this site will be on |
|
|
The public IP Address for the Virtual Wan Site |
|
|
Optional configuration. Present if BGP is enabled for the Virtual Wan Site |
|
|
Local peering ip address. |
|
|
Local peering ASN. |
|
|
Peer weight for BGP |
|
|
Speed of device link |
|
|
Vendor of device |
|
|
Model of device |
|
|
BGP LAN neighbor ip address. |
|
|
BGP LAN neighbor ASN. |
|
|
true to advertise local. |
|
|
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":"a26f281e-9c90-438f-b121-09461c3bc60f","dataCenterId":"54b8a7e3-a25c-4696-b823-cdbc27701573","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":"a26f281e-9c90-438f-b121-09461c3bc60f","dataCenterId":"54b8a7e3-a25c-4696-b823-cdbc27701573","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":"a26f281e-9c90-438f-b121-09461c3bc60f","dataCenterId":"54b8a7e3-a25c-4696-b823-cdbc27701573","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 |
---|---|---|
|
|
The Virtual Wan Site’s name |
|
|
The Virtual Wan Site’s id |
|
|
The resource group for the Virtual Wan Site |
|
|
The Resource URL in Azure for the Virtual Wan Site |
|
|
The id of the azure subscription that the AVW Site is linked to. |
|
|
The Resource URL for the Virtual Wan for the Virtual Wan Site |
|
|
The name of the Virtual Wan for the Virtual Wan Site |
|
|
The NetFoundry internal Pre-shared key for IP Sec registration |
|
|
The first IP address for the Azure Virtual Wan Site |
|
|
The second IP address for the Azure Virtual Wan Site |
|
|
The public IP Address for the Virtual Wan Site |
|
|
The private IP Address space |
|
|
Is BGP enabled for the Virtual Wan Site |
|
|
Peering address for BGP if enabled |
|
|
ASN for BGP if enabled |
|
|
Peer weight for BGP if enabled |
|
|
Speed of device link |
|
|
Vendor of device |
|
|
Model of device |
|
|
BGP LAN neighbors ip address and ASN. |
|
|
true to advertise local. |
|
|
Current status of the Virtual Wan Site |
|
|
Boolean flag, true if this avw site can be deployed |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
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","azureVirtualWanName":"wan1","deployable":false,"id":null,"_links":{"self":{"href":"http://localhost/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites/693aaac0-62a2-4e3a-ab58-60a212ab666d"},"dataCenter":{"href":"http://localhost/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites/693aaac0-62a2-4e3a-ab58-60a212ab666d/dataCenter"},"endpoint":{"href":"http://localhost/azureSubscriptions/4b18bcbc-3163-4d35-bd3a-2267be37ee59/virtualWanSites/693aaac0-62a2-4e3a-ab58-60a212ab666d/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/38a0f585-0db3-4f84-b342-20b76be754dd' -i -X DELETE \
-H 'Content-Type: application/json'
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/7279dcf6-3079-4907-b24a-eb93dc62b150/endpointGroups' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Endpoint Group resources |
|
|
Links to other resources |
|
|
Pagination info |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1481
{"_embedded":{"endpointGroups":[{"createdAt":"2023-01-24T07:57:33.141+00:00","updatedAt":"2023-01-24T17:57:33.141+00:00","name":"Endpoint Group 01","networkId":null,"source":null,"syncId":null,"syncResourceId":null,"ownerIdentityId":null,"id":"abf4487e-f76b-4d94-a8d7-b703e5ad2597","_links":{"self":{"href":"http://localhost/networks/7279dcf6-3079-4907-b24a-eb93dc62b150/endpointGroups/abf4487e-f76b-4d94-a8d7-b703e5ad2597"},"network":{"href":"http://localhost/networks/7279dcf6-3079-4907-b24a-eb93dc62b150"},"endpoints":{"href":"http://localhost/networks/7279dcf6-3079-4907-b24a-eb93dc62b150/endpointGroups/abf4487e-f76b-4d94-a8d7-b703e5ad2597/endpoints"}}},{"createdAt":"2023-01-24T07:57:33.142+00:00","updatedAt":"2023-01-24T17:57:33.142+00:00","name":"Endpoint Group 02","networkId":null,"source":null,"syncId":null,"syncResourceId":null,"ownerIdentityId":null,"id":"eb0499e5-8e01-4e0b-b535-1aaab262ae6d","_links":{"self":{"href":"http://localhost/networks/7279dcf6-3079-4907-b24a-eb93dc62b150/endpointGroups/eb0499e5-8e01-4e0b-b535-1aaab262ae6d"},"network":{"href":"http://localhost/networks/7279dcf6-3079-4907-b24a-eb93dc62b150"},"endpoints":{"href":"http://localhost/networks/7279dcf6-3079-4907-b24a-eb93dc62b150/endpointGroups/eb0499e5-8e01-4e0b-b535-1aaab262ae6d/endpoints"}}}]},"_links":{"first":{"href":"http://localhost/networks/7279dcf6-3079-4907-b24a-eb93dc62b150/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/f2991e1d-533a-4eed-b8ce-a954ff9f1826/endpointGroups/d59812c5-a3d2-44ec-893a-5127bc7874cf' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The endpoint’s name |
|
|
The endpoint’s id |
|
|
Record creation time |
|
|
Record last modification time |
|
|
The source creating the Endpoint Group |
|
|
Client sync process that created this endpoint. |
|
|
Client sync unique resource id. |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 631
{"createdAt":"2023-01-24T07:57:32.937+00:00","updatedAt":"2023-01-24T17:57:32.937+00:00","name":"Test Endpoint Group 01","networkId":null,"source":null,"syncId":null,"syncResourceId":null,"ownerIdentityId":null,"id":"d59812c5-a3d2-44ec-893a-5127bc7874cf","_links":{"self":{"href":"http://localhost/networks/f2991e1d-533a-4eed-b8ce-a954ff9f1826/endpointGroups/d59812c5-a3d2-44ec-893a-5127bc7874cf"},"network":{"href":"http://localhost/networks/f2991e1d-533a-4eed-b8ce-a954ff9f1826"},"endpoints":{"href":"http://localhost/networks/f2991e1d-533a-4eed-b8ce-a954ff9f1826/endpointGroups/d59812c5-a3d2-44ec-893a-5127bc7874cf/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/0ac8f9dc-2ac0-4749-8b29-b34f933b9fa3/endpointGroups' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"name":"Test Endpoint Group 01","source":null,"syncId":null,"syncResourceId":null}'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The Endpoint Group name |
|
|
The Endpoint Group id |
|
|
Record creation time |
|
|
Record last modification time |
|
|
The source creating the Endpoint Group |
|
|
Client sync process that created this endpoint. |
|
|
Client sync unique resource id. |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 201 Created
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 631
{"createdAt":"2023-01-24T07:57:33.110+00:00","updatedAt":"2023-01-24T17:57:33.110+00:00","name":"Test Endpoint Group 01","networkId":null,"source":null,"syncId":null,"syncResourceId":null,"ownerIdentityId":null,"id":"7a640060-ecc3-48e0-a34c-3309c21973ca","_links":{"self":{"href":"http://localhost/networks/0ac8f9dc-2ac0-4749-8b29-b34f933b9fa3/endpointGroups/7a640060-ecc3-48e0-a34c-3309c21973ca"},"network":{"href":"http://localhost/networks/0ac8f9dc-2ac0-4749-8b29-b34f933b9fa3"},"endpoints":{"href":"http://localhost/networks/0ac8f9dc-2ac0-4749-8b29-b34f933b9fa3/endpointGroups/7a640060-ecc3-48e0-a34c-3309c21973ca/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/283f563f-d66f-4b0a-89f9-a34b25199db9/endpointGroups/fa05dc01-4685-475f-86cc-e1579e4b7f57' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{"name":"Test Endpoint Group 01 - Updated","source":null,"syncId":null,"syncResourceId":null}'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The Endpoint Group name |
|
|
The Endpoint Group id |
|
|
Record creation time |
|
|
Record last modification time |
|
|
The source creating the Endpoint Group |
|
|
Client sync process that created this endpoint. |
|
|
Client sync unique resource id. |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 641
{"createdAt":"2023-01-24T07:57:33.041+00:00","updatedAt":"2023-01-24T17:57:33.041+00:00","name":"Test Endpoint Group 01 - Updated","networkId":null,"source":null,"syncId":null,"syncResourceId":null,"ownerIdentityId":null,"id":"fa05dc01-4685-475f-86cc-e1579e4b7f57","_links":{"self":{"href":"http://localhost/networks/283f563f-d66f-4b0a-89f9-a34b25199db9/endpointGroups/fa05dc01-4685-475f-86cc-e1579e4b7f57"},"network":{"href":"http://localhost/networks/283f563f-d66f-4b0a-89f9-a34b25199db9"},"endpoints":{"href":"http://localhost/networks/283f563f-d66f-4b0a-89f9-a34b25199db9/endpointGroups/fa05dc01-4685-475f-86cc-e1579e4b7f57/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/b3b08a29-464c-40e4-a04f-0f970dfbcdc5/endpointGroups/d8e23b85-ce6b-45aa-9b47-171049a9238a' -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/3493c124-953a-4f0c-b391-8c54b2ac7719/endpointGroups/ae64ad20-14b2-43d9-b940-79e102c6da96/endpoints' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"ids":["c44cf6ef-fef4-43a9-9203-407b71efd563","bca5f9dd-e595-4253-b6d9-b36142ec68ba"]}'
Example response
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 631
{"createdAt":"2023-01-24T07:57:32.857+00:00","updatedAt":"2023-01-24T17:57:32.857+00:00","name":"Test Endpoint Group 01","networkId":null,"source":null,"syncId":null,"syncResourceId":null,"ownerIdentityId":null,"id":"ae64ad20-14b2-43d9-b940-79e102c6da96","_links":{"self":{"href":"http://localhost/networks/3493c124-953a-4f0c-b391-8c54b2ac7719/endpointGroups/ae64ad20-14b2-43d9-b940-79e102c6da96"},"network":{"href":"http://localhost/networks/3493c124-953a-4f0c-b391-8c54b2ac7719"},"endpoints":{"href":"http://localhost/networks/3493c124-953a-4f0c-b391-8c54b2ac7719/endpointGroups/ae64ad20-14b2-43d9-b940-79e102c6da96/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/85579057-6076-4438-8ef9-5c69d3bc2e01/endpointGroups/caac07bb-2bff-4804-b06e-dbd09b009c9f/endpoints' -i -X DELETE \
-H 'Content-Type: application/json' \
-d '{"ids":["a1b6c89f-bc30-42c7-91f4-ef0316b67a6a"]}'
Example response
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 631
{"createdAt":"2023-01-24T07:57:33.080+00:00","updatedAt":"2023-01-24T17:57:33.080+00:00","name":"Test Endpoint Group 01","networkId":null,"source":null,"syncId":null,"syncResourceId":null,"ownerIdentityId":null,"id":"caac07bb-2bff-4804-b06e-dbd09b009c9f","_links":{"self":{"href":"http://localhost/networks/85579057-6076-4438-8ef9-5c69d3bc2e01/endpointGroups/caac07bb-2bff-4804-b06e-dbd09b009c9f"},"network":{"href":"http://localhost/networks/85579057-6076-4438-8ef9-5c69d3bc2e01"},"endpoints":{"href":"http://localhost/networks/85579057-6076-4438-8ef9-5c69d3bc2e01/endpointGroups/caac07bb-2bff-4804-b06e-dbd09b009c9f/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/92344d76-1814-41c9-86c8-b4f772be669c/services?page=0&size=10&sort=name,asc' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Service resources |
|
|
Links to other resources and pages |
|
|
Pagination info |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3313
{"_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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2023-01-24T07:56:23.920+00:00","updatedAt":"2023-01-24T17:56:23.920+00:00","name":"Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"c74700d5-eec2-42a9-ac6b-5f1a000060c1","_links":{"self":{"href":"http://localhost/networks/92344d76-1814-41c9-86c8-b4f772be669c/services/c74700d5-eec2-42a9-ac6b-5f1a000060c1"},"network":{"href":"http://localhost/networks/92344d76-1814-41c9-86c8-b4f772be669c"},"endpoint":{"href":"http://localhost/networks/92344d76-1814-41c9-86c8-b4f772be669c/endpoints/04698f9c-a30f-4b43-884c-5fa2205463db"},"appWans":{"href":"http://localhost/networks/92344d76-1814-41c9-86c8-b4f772be669c/endpoints/04698f9c-a30f-4b43-884c-5fa2205463db/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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2023-01-24T07:56:23.920+00:00","updatedAt":"2023-01-24T17:56:23.920+00:00","name":"Service 02","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"029a8c39-3546-427c-a00d-0af5da7c73f3","_links":{"self":{"href":"http://localhost/networks/92344d76-1814-41c9-86c8-b4f772be669c/services/029a8c39-3546-427c-a00d-0af5da7c73f3"},"network":{"href":"http://localhost/networks/92344d76-1814-41c9-86c8-b4f772be669c"},"endpoint":{"href":"http://localhost/networks/92344d76-1814-41c9-86c8-b4f772be669c/endpoints/04698f9c-a30f-4b43-884c-5fa2205463db"}}}]},"_links":{"self":{"href":"http://localhost/networks/92344d76-1814-41c9-86c8-b4f772be669c/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/04d0290e-d12b-4099-8141-0e85f235a9d1/services' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Service resources |
|
|
Links to other resources and pages |
|
|
Pagination info |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3313
{"_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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2023-01-24T07:56:22.308+00:00","updatedAt":"2023-01-24T17:56:22.308+00:00","name":"Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"95c6deeb-c197-4493-b07e-d8355ab4bc8b","_links":{"self":{"href":"http://localhost/networks/04d0290e-d12b-4099-8141-0e85f235a9d1/services/95c6deeb-c197-4493-b07e-d8355ab4bc8b"},"network":{"href":"http://localhost/networks/04d0290e-d12b-4099-8141-0e85f235a9d1"},"endpoint":{"href":"http://localhost/networks/04d0290e-d12b-4099-8141-0e85f235a9d1/endpoints/d0276dcc-ae71-46f5-969c-055403585bfd"},"appWans":{"href":"http://localhost/networks/04d0290e-d12b-4099-8141-0e85f235a9d1/endpoints/d0276dcc-ae71-46f5-969c-055403585bfd/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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2023-01-24T07:56:22.323+00:00","updatedAt":"2023-01-24T17:56:22.323+00:00","name":"Service 02","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"616e2631-da09-483e-93b7-69cb679d5fcc","_links":{"self":{"href":"http://localhost/networks/04d0290e-d12b-4099-8141-0e85f235a9d1/services/616e2631-da09-483e-93b7-69cb679d5fcc"},"network":{"href":"http://localhost/networks/04d0290e-d12b-4099-8141-0e85f235a9d1"},"endpoint":{"href":"http://localhost/networks/04d0290e-d12b-4099-8141-0e85f235a9d1/endpoints/d0276dcc-ae71-46f5-969c-055403585bfd"}}}]},"_links":{"self":{"href":"http://localhost/networks/04d0290e-d12b-4099-8141-0e85f235a9d1/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/5e5bc289-fdf9-4dbb-a8d5-c26a362b7c34/services' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Service resources |
|
|
Links to other resources and pages |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 2130
{"_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":"d137341e-634e-4dc7-a3c6-45f38bcefa6f","gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"vlanId":0,"bridgeIntf":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":"d137341e-634e-4dc7-a3c6-45f38bcefa6f","gatewayClusterId":null,"networkId":null,"ownerIdentityId":null,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":null,"updatedAt":null,"name":"Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":null}]},"_links":{"self":{"href":"http://localhost/networkgroups/5e5bc289-fdf9-4dbb-a8d5-c26a362b7c34/services"}}}
Fetching a Service
A GET
request fetches a specific network.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/ca03e993-594e-4d7f-a09a-e42920a14e30/services/ef2e5b4c-e9cd-4012-8cc3-1c83415791dc' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The service’s name |
|
|
The service’s id |
|
|
The service class |
|
|
The intercept type |
|
|
The type of service |
|
|
Low latency service setting |
|
|
Data interleaving service setting |
|
|
Transparency setting |
|
|
Boolean for local network gateway activation |
|
|
Multicast setting |
|
|
DNS Service Options |
|
|
Allow ICMP tunneling |
|
|
Cryptographic level |
|
|
Is this a permanent connection |
|
|
Location to send collection data to |
|
|
PBR Type |
|
|
Rate smoothing active |
|
|
Network IP |
|
|
Network Netmask |
|
|
First network port in range |
|
|
Last network port in range |
|
|
Intercept IP |
|
|
Ziti Fabric DNS Intercept hostname |
|
|
Ziti Fabric DNS Intercept port |
|
|
First intercept port in range |
|
|
Last intercept port in range |
|
|
Gateway IP |
|
|
Gateway Netmask |
|
|
Gateway CIDR Block |
|
|
Netwflow index |
|
|
Profile index |
|
|
L2 Svc Vlan Id |
|
|
L2 Svc bridge Interface |
|
|
Protection Group Id |
|
|
Intercept Mode of intercept_all or specific_ports |
|
|
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 |
|
|
Intercept these ports |
|
|
Do not intercept these ports |
|
|
For Azure customers, is this service address space in conflict |
|
|
Provisioning status |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
|
|
Endpoint id associated with the service |
|
|
Gateway cluster id if the service endpoint is of cluster type |
|
|
The Network ID of the service resource |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1586
{"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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2023-01-24T07:56:22.939+00:00","updatedAt":"2023-01-24T17:56:22.940+00:00","name":"Test Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"ef2e5b4c-e9cd-4012-8cc3-1c83415791dc","_links":{"self":{"href":"http://localhost/networks/ca03e993-594e-4d7f-a09a-e42920a14e30/services/ef2e5b4c-e9cd-4012-8cc3-1c83415791dc"},"network":{"href":"http://localhost/networks/ca03e993-594e-4d7f-a09a-e42920a14e30"},"endpoint":{"href":"http://localhost/networks/ca03e993-594e-4d7f-a09a-e42920a14e30/endpoints/2582f3ac-d8c2-4da5-937a-4e0db92bb1b2"},"appWans":{"href":"http://localhost/networks/ca03e993-594e-4d7f-a09a-e42920a14e30/endpoints/2582f3ac-d8c2-4da5-937a-4e0db92bb1b2/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 |
---|---|---|
|
|
The Service’s name |
|
|
Optional.(either endpointId or gatewayClusterId) UUID of endpoint to register Service on |
|
|
The service class |
|
|
The intercept type |
|
|
The type of service |
|
|
Network IP |
|
|
Intercept IP |
|
|
Optional. Low latency service setting |
|
|
Optional. Data interleaving service setting |
|
|
Optional. Transparency setting |
|
|
Optional. Multicast setting |
|
|
Optional. DNS Service Options |
|
|
Optional. Allow ICMP tunneling |
|
|
Optional. Cryptographic level |
|
|
Optional. Is this a permanent connection |
|
|
Optional. Location to send collection data to |
|
|
Optional. PBR Type |
|
|
Optional. Rate smoothing active |
|
|
Optional. Netwflow index |
|
|
Optional. Profile index |
|
|
Optional.(either endpointId or gatewayClusterId) HA GW Cluster Id |
|
|
The ID of the subscription this service is being created under |
|
|
Endpoint as code |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/b1c71c21-6c23-4793-960a-c9a07bf547cb/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 |
---|---|---|
|
|
The service’s name |
|
|
The service’s id |
|
|
The service class |
|
|
The intercept type |
|
|
The type of service |
|
|
Low latency service setting |
|
|
Data interleaving service setting |
|
|
Transparency setting |
|
|
Boolean for local network gateway activation |
|
|
Multicast setting |
|
|
DNS Service Options |
|
|
Allow ICMP tunneling |
|
|
Cryptographic level |
|
|
Is this a permanent connection |
|
|
Location to send collection data to |
|
|
PBR Type |
|
|
Rate smoothing active |
|
|
Network IP |
|
|
Network Netmask |
|
|
First network port in range |
|
|
Last network port in range |
|
|
Intercept IP |
|
|
First intercept port in range |
|
|
Last intercept port in range |
|
|
Ziti Fabric DNS Intercept hostname |
|
|
Ziti Fabric DNS Intercept port |
|
|
Gateway IP |
|
|
Gateway Netmask |
|
|
Gateway CIDR Block |
|
|
Netwflow index |
|
|
Profile index |
|
|
Protection Group Id |
|
|
Intercept Mode of intercept_all or specific_ports |
|
|
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 |
|
|
Intercept these ports |
|
|
Do not intercept these ports |
|
|
L2 Svc Vlan Id |
|
|
L2 Svc bridge Interface |
|
|
Provisioning status |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
|
|
Endpoint id associated with the service |
|
|
Gateway cluster id if the service endpoint is of cluster type |
|
|
The Network ID of the service resource |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1438
{"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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2023-01-24T07:56:24.427+00:00","updatedAt":"2023-01-24T17:56:24.427+00:00","name":"Test Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"07d73ba4-1891-4bf0-9abd-ad38bc0c0cb2","_links":{"self":{"href":"http://localhost/networks/b1c71c21-6c23-4793-960a-c9a07bf547cb/services/07d73ba4-1891-4bf0-9abd-ad38bc0c0cb2"},"network":{"href":"http://localhost/networks/b1c71c21-6c23-4793-960a-c9a07bf547cb"},"endpoint":{"href":"http://localhost/networks/b1c71c21-6c23-4793-960a-c9a07bf547cb/endpoints/96af8bed-e83f-435f-a734-2ebc967f3146"}}}
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 |
---|---|---|
|
|
The Service’s name |
|
|
Optional.(either endpointId or gatewayClusterId) UUID of endpoint to register Service on |
|
|
The service class is one of * CS * GW * ICMP |
|
|
The intercept type |
|
|
The type of service |
|
|
Network IP |
|
|
First network port in range |
|
|
Last network port in range |
|
|
Intercept IP |
|
|
First intercept port in range |
|
|
Last intercept port in range |
|
|
Ziti Fabric DNS Intercept hostname |
|
|
Ziti Fabric DNS Intercept port |
|
|
Optional. Low latency service setting |
|
|
Optional. Data interleaving service setting |
|
|
Optional. Transparency setting |
|
|
Optional. Multicast setting |
|
|
Optional. DNS Service Options |
|
|
Optional, default: YES Allow TCP over ICMP |
|
|
Optional. Cryptographic level |
|
|
Optional. Is this a permanent connection |
|
|
Optional. Location to send collection data to |
|
|
Optional. PBR Type |
|
|
Optional. Rate smoothing active |
|
|
Optional. Netwflow index |
|
|
Optional. Profile index |
|
|
Optional.(either endpointId or gatewayClusterId) HA GW Cluster Id |
|
|
The ID of the subscription this service is being created under |
|
|
Endpoint as code |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/75c1490e-b724-463f-985a-c756cdd9f9db/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 |
---|---|---|
|
|
The service’s name |
|
|
The service’s id |
|
|
The service class |
|
|
The intercept type |
|
|
The type of service |
|
|
Low latency service setting |
|
|
Data interleaving service setting |
|
|
Transparency setting |
|
|
Boolean for local network gateway activation |
|
|
Multicast setting |
|
|
DNS Service Options |
|
|
Allow ICMP tunneling |
|
|
Cryptographic level |
|
|
Is this a permanent connection |
|
|
Location to send collection data to |
|
|
PBR Type |
|
|
Rate smoothing active |
|
|
Network IP |
|
|
Network Netmask |
|
|
First network port in range |
|
|
Last network port in range |
|
|
Intercept IP |
|
|
First intercept port in range |
|
|
Last intercept port in range |
|
|
Ziti Fabric DNS Intercept hostname |
|
|
Ziti Fabric DNS Intercept port |
|
|
Gateway IP |
|
|
Gateway Netmask |
|
|
Gateway CIDR Block |
|
|
Netwflow index |
|
|
Profile index |
|
|
Protection Group Id |
|
|
Intercept Mode of intercept_all or specific_ports |
|
|
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 |
|
|
Intercept these ports |
|
|
Do not intercept these ports |
|
|
L2 Svc Vlan Id |
|
|
L2 Svc bridge Interface |
|
|
L2 Svc Vlan Id |
|
|
L2 Svc bridge Interface |
|
|
Provisioning status |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
|
|
Endpoint id associated with the service |
|
|
Gateway cluster id if the service endpoint is of cluster type |
|
|
The Network ID of the service resource |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1586
{"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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":null,"interceptExcludePorts":null,"createdAt":"2023-01-24T07:56:23.236+00:00","updatedAt":"2023-01-24T17:56:23.236+00:00","name":"Test Service 01","gatewayNetmask":"","interceptPorts":{"include":[],"exclude":[]},"id":"d4c3cfc7-3a34-4c6c-8286-65e449b029ee","_links":{"self":{"href":"http://localhost/networks/75c1490e-b724-463f-985a-c756cdd9f9db/services/d4c3cfc7-3a34-4c6c-8286-65e449b029ee"},"network":{"href":"http://localhost/networks/75c1490e-b724-463f-985a-c756cdd9f9db"},"endpoint":{"href":"http://localhost/networks/75c1490e-b724-463f-985a-c756cdd9f9db/endpoints/66b8e706-23c2-42c6-a018-d361c7e4f2ca"},"appWans":{"href":"http://localhost/networks/75c1490e-b724-463f-985a-c756cdd9f9db/endpoints/66b8e706-23c2-42c6-a018-d361c7e4f2ca/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 |
---|---|---|
|
|
The Service’s name |
|
|
Optional.(either endpointId or gatewayClusterId) UUID of endpoint to register Service on |
|
|
The service class |
|
|
The intercept type |
|
|
The type of service |
|
|
Gateway IP |
|
|
CIDR block of the Gateway |
|
|
Intercept IP |
|
|
Optional. Low latency service setting |
|
|
Optional. Data interleaving service setting |
|
|
Optional. Transparency setting |
|
|
Optional. Boolean for local network gateway activation |
|
|
Optional. Multicast setting |
|
|
Optional. DNS Service Options |
|
|
Optional, default: YES Allow TCP over ICMP |
|
|
Optional. Cryptographic level |
|
|
Optional. Is this a permanent connection |
|
|
Optional. Location to send collection data to |
|
|
Optional. PBR Type |
|
|
Optional. Rate smoothing active |
|
|
Optional. Netflow index |
|
|
Optional. Profile index |
|
|
Optional. Intercept Mode of intercept_all or specific_ports |
|
|
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 |
|
|
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 |
|
|
Optional.(either endpointId or gatewayClusterId) HA Gateway Cluster Id |
|
|
The ID of the subscription this service is being created under |
|
|
Endpoint as code |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/a7185821-f67a-42c6-bc80-3b791ae133e6/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 |
---|---|---|
|
|
The service’s name |
|
|
The service’s id |
|
|
The service class |
|
|
The intercept type |
|
|
The type of service |
|
|
Low latency service setting |
|
|
Data interleaving service setting |
|
|
Transparency setting |
|
|
Boolean for local network gateway activation |
|
|
Multicast setting |
|
|
DNS Service Options |
|
|
Allow ICMP tunneling |
|
|
Cryptographic level |
|
|
Is this a permanent connection |
|
|
Location to send collection data to |
|
|
PBR Type |
|
|
Rate smoothing active |
|
|
Network IP |
|
|
Gateway Netmask |
|
|
Network Netmask |
|
|
First network port in range |
|
|
Last network port in range |
|
|
Intercept IP |
|
|
First intercept port in range |
|
|
Last intercept port in range |
|
|
Ziti Fabric DNS Intercept hostname |
|
|
Ziti Fabric DNS Intercept port |
|
|
Gateway IP |
|
|
Gateway CIDR Block |
|
|
L2 Svc Vlan Id |
|
|
L2 Svc bridge Interface |
|
|
Netwflow index |
|
|
Profile index |
|
|
Protection Group Id |
|
|
Intercept Mode of intercept_all or specific_ports |
|
|
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 |
|
|
Intercept these ports |
|
|
Do not intercept these ports |
|
|
Provisioning status |
|
|
vlanId |
|
|
bridgeIntf |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Links to other resources |
|
|
Endpoint id associated with the service |
|
|
Gateway cluster id if the service endpoint is of cluster type |
|
|
The Network ID of the service resource |
|
|
Identity Id of the owner |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1514
{"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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2023-01-24T07:56:24.610+00:00","updatedAt":"2023-01-24T17:56:24.610+00:00","name":"Test Service 01","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"ae5b212e-5c61-4e5e-b084-725801dd6c45","_links":{"self":{"href":"http://localhost/networks/a7185821-f67a-42c6-bc80-3b791ae133e6/services/ae5b212e-5c61-4e5e-b084-725801dd6c45"},"network":{"href":"http://localhost/networks/a7185821-f67a-42c6-bc80-3b791ae133e6"},"endpoint":{"href":"http://localhost/networks/a7185821-f67a-42c6-bc80-3b791ae133e6/endpoints/2c047b6e-66bb-4681-8b0a-6b28e9f22859"}}}
Creating services from csv
A POST
request creates services on a specific network.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/159551e4-dedf-4880-9ebf-d536fcd69c23/services' -i -X POST \
-H 'Content-Type: multipart/form-data' \
-F 'file=@hello;type=multipart/form-data'
Example response
Path | Type | Description |
---|---|---|
|
|
The businessKey of the process |
|
|
Services Data |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3131
{"businessKey":"159551e4-dedf-4880-9ebf-d536fcd69c23","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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2023-01-24T07:56:24.316+00:00","updatedAt":"2023-01-24T17:56:24.316+00:00","name":"Test Service 01","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"8705314b-41dd-4a7a-aa05-130142d0a128","links":[{"rel":"self","href":"http://localhost/networks/159551e4-dedf-4880-9ebf-d536fcd69c23/services/8705314b-41dd-4a7a-aa05-130142d0a128"},{"rel":"network","href":"http://localhost/networks/159551e4-dedf-4880-9ebf-d536fcd69c23"},{"rel":"endpoint","href":"http://localhost/networks/159551e4-dedf-4880-9ebf-d536fcd69c23/endpoints/1dd9699e-a64b-4f7d-845e-676227878d57"}]},{"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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2023-01-24T07:56:24.316+00:00","updatedAt":"2023-01-24T17:56:24.316+00:00","name":"Test Service 02","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"2959cb97-c425-4186-85c8-6263b84c358f","links":[{"rel":"self","href":"http://localhost/networks/159551e4-dedf-4880-9ebf-d536fcd69c23/services/2959cb97-c425-4186-85c8-6263b84c358f"},{"rel":"network","href":"http://localhost/networks/159551e4-dedf-4880-9ebf-d536fcd69c23"},{"rel":"endpoint","href":"http://localhost/networks/159551e4-dedf-4880-9ebf-d536fcd69c23/endpoints/1dd9699e-a64b-4f7d-845e-676227878d57"}]}]}
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/d0be9514-7b2a-4363-aa6a-91780b5d17e6/services/098941a4-f63d-4666-904b-ec13b81b2915' -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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2023-01-24T07:56:23.996+00:00","updatedAt":"2023-01-24T17:56:23.996+00:00","name":"Test Service 01","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"098941a4-f63d-4666-904b-ec13b81b2915"}'
Example response
Path | Type | Description |
---|---|---|
|
|
The service’s name |
|
|
The service’s id |
|
|
The service class |
|
|
The intercept type |
|
|
The type of service |
|
|
Low latency service setting |
|
|
Data interleaving service setting |
|
|
Transparency setting |
|
|
Boolean for local network gateway activation |
|
|
Multicast setting |
|
|
DNS Service Options |
|
|
Allow ICMP tunneling |
|
|
Cryptographic level |
|
|
Is this a permanent connection |
|
|
Location to send collection data to |
|
|
PBR Type |
|
|
Rate smoothing active |
|
|
Network IP |
|
|
Network Netmask |
|
|
First network port in range |
|
|
Last network port in range |
|
|
Intercept IP |
|
|
First intercept port in range |
|
|
Last intercept port in range |
|
|
Ziti Fabric DNS Intercept hostname |
|
|
Ziti Fabric DNS Intercept port |
|
|
Gateway IP |
|
|
Gateway Netmask |
|
|
Gateway CIDR Block |
|
|
Netwflow index |
|
|
Profile index |
|
|
Protection Group Id |
|
|
Intercept Mode of intercept_all or specific_ports |
|
|
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 |
|
|
Intercept these ports |
|
|
Do not intercept these ports |
|
|
L2 Svc Vlan Id |
|
|
L2 Svc bridge Interface |
|
|
Provisioning status |
|
|
vlanId |
|
|
bridgeIntf |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
|
|
Endpoint id associated with the service |
|
|
Gateway cluster id if the service endpoint is of cluster type |
|
|
The Network ID of the service resource |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1516
{"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,"vlanId":0,"bridgeIntf":null,"interceptIncludePorts":"22-22","interceptExcludePorts":"80-80","createdAt":"2023-01-24T07:56:23.996+00:00","updatedAt":"2023-01-24T17:56:23.996+00:00","name":"Test Service 01","gatewayNetmask":"255.255.255.0","interceptPorts":{"include":[{"first":22,"last":22}],"exclude":[{"first":80,"last":80}]},"id":"098941a4-f63d-4666-904b-ec13b81b2915","_links":{"self":{"href":"http://localhost/networks/d0be9514-7b2a-4363-aa6a-91780b5d17e6/services/098941a4-f63d-4666-904b-ec13b81b2915"},"network":{"href":"http://localhost/networks/d0be9514-7b2a-4363-aa6a-91780b5d17e6"},"endpoint":{"href":"http://localhost/networks/d0be9514-7b2a-4363-aa6a-91780b5d17e6/endpoints/2717b596-0b0b-4410-8e38-cc4d95182239"}}}
Deleting a Service
A DELETE
request deletes a service on a specific network.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/dda9de34-9986-477d-9bd2-d6b6c9d212a0/services/a6fc1ab4-ca1b-4900-bff5-80aa95690a1e' -i -X DELETE \
-H 'Content-Type: application/json'
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/ab3470da-fe9e-4958-8abc-e92ef64f8193/appWans?page=0&size=10&sort=name,ASC' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of AppWan resources |
|
|
Links to other resources and pages |
|
|
Pagination info |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1972
{"_embedded":{"appWans":[{"createdAt":"2023-01-24T07:56:54.730+00:00","updatedAt":"2023-01-24T17:56:54.730+00:00","name":"AppWan 01","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"c7923eae-c284-4975-a6ad-c9f42710ee9f","_links":{"self":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193/appWans/c7923eae-c284-4975-a6ad-c9f42710ee9f"},"network":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193"},"endpointGroups":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193/appWans/c7923eae-c284-4975-a6ad-c9f42710ee9f/endpointGroups"},"endpoints":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193/appWans/c7923eae-c284-4975-a6ad-c9f42710ee9f/endpoints"},"services":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193/appWans/c7923eae-c284-4975-a6ad-c9f42710ee9f/services"}}},{"createdAt":"2023-01-24T07:56:54.730+00:00","updatedAt":"2023-01-24T17:56:54.730+00:00","name":"AppWan 02","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"a6be247d-017c-41d8-9639-80ac815ce814","_links":{"self":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193/appWans/a6be247d-017c-41d8-9639-80ac815ce814"},"network":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193"},"endpointGroups":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193/appWans/a6be247d-017c-41d8-9639-80ac815ce814/endpointGroups"},"endpoints":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193/appWans/a6be247d-017c-41d8-9639-80ac815ce814/endpoints"},"services":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193/appWans/a6be247d-017c-41d8-9639-80ac815ce814/services"}}}]},"_links":{"first":{"href":"http://localhost/networks/ab3470da-fe9e-4958-8abc-e92ef64f8193/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/cfda0907-b0d8-4926-a112-6e12e9d28691/appWans' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of AppWan resources |
|
|
Links to other resources and pages |
|
|
Pagination info |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1972
{"_embedded":{"appWans":[{"createdAt":"2023-01-24T07:56:55.077+00:00","updatedAt":"2023-01-24T17:56:55.077+00:00","name":"AppWan 01","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"307a4530-09a3-4066-aac8-b2f097a575b7","_links":{"self":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691/appWans/307a4530-09a3-4066-aac8-b2f097a575b7"},"network":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691"},"endpointGroups":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691/appWans/307a4530-09a3-4066-aac8-b2f097a575b7/endpointGroups"},"endpoints":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691/appWans/307a4530-09a3-4066-aac8-b2f097a575b7/endpoints"},"services":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691/appWans/307a4530-09a3-4066-aac8-b2f097a575b7/services"}}},{"createdAt":"2023-01-24T07:56:55.077+00:00","updatedAt":"2023-01-24T17:56:55.077+00:00","name":"AppWan 02","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"66b20b11-3d4b-4373-bcaf-b4136b3c54db","_links":{"self":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691/appWans/66b20b11-3d4b-4373-bcaf-b4136b3c54db"},"network":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691"},"endpointGroups":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691/appWans/66b20b11-3d4b-4373-bcaf-b4136b3c54db/endpointGroups"},"endpoints":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691/appWans/66b20b11-3d4b-4373-bcaf-b4136b3c54db/endpoints"},"services":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691/appWans/66b20b11-3d4b-4373-bcaf-b4136b3c54db/services"}}}]},"_links":{"first":{"href":"http://localhost/networks/cfda0907-b0d8-4926-a112-6e12e9d28691/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/0f2a7de0-afaa-4181-8aa8-8299a19b2d4d/appWans/4f0620b1-7a51-4844-90c7-b5ed06cc46a1' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The AppWan’s name |
|
|
The AppWan’s type(L2 or STD(default)) |
|
|
The AppWan id |
|
|
Provisioning status of the AppWan |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 880
{"createdAt":"2023-01-24T07:56:55.038+00:00","updatedAt":"2023-01-24T17:56:55.038+00:00","name":"Test AppWan 01","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"4f0620b1-7a51-4844-90c7-b5ed06cc46a1","_links":{"self":{"href":"http://localhost/networks/0f2a7de0-afaa-4181-8aa8-8299a19b2d4d/appWans/4f0620b1-7a51-4844-90c7-b5ed06cc46a1"},"network":{"href":"http://localhost/networks/0f2a7de0-afaa-4181-8aa8-8299a19b2d4d"},"endpointGroups":{"href":"http://localhost/networks/0f2a7de0-afaa-4181-8aa8-8299a19b2d4d/appWans/4f0620b1-7a51-4844-90c7-b5ed06cc46a1/endpointGroups"},"endpoints":{"href":"http://localhost/networks/0f2a7de0-afaa-4181-8aa8-8299a19b2d4d/appWans/4f0620b1-7a51-4844-90c7-b5ed06cc46a1/endpoints"},"services":{"href":"http://localhost/networks/0f2a7de0-afaa-4181-8aa8-8299a19b2d4d/appWans/4f0620b1-7a51-4844-90c7-b5ed06cc46a1/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/2e29baa3-8e6b-4875-b964-6fb5a071f647/appWans/d6036bb5-f7d9-4dd8-bba9-202cd83c8d1a/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 |
---|---|---|
|
|
The AppWan’s name |
|
|
The AppWan’s type(L2 or STD(default)) |
|
|
The ID of the subscription this app wan is being created under |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/5c074c9f-54cc-4d42-8d5f-b2ce5d45792c/appWans' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"name":"Test AppWan Create","subscriptionId":"08306310-08d4-49b6-b9aa-8d67d892600d","appWanType":"STD"}'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The AppWan’s type(L2 or STD(default)) |
|
|
The AppWan id |
|
|
The AppWan name |
|
|
AppWan provisioning status |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 884
{"createdAt":"2023-01-24T07:56:55.273+00:00","updatedAt":"2023-01-24T17:56:55.273+00:00","name":"Test AppWan Create","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"5ce0d77a-2438-4ec0-b1b1-d75f13791a57","_links":{"self":{"href":"http://localhost/networks/5c074c9f-54cc-4d42-8d5f-b2ce5d45792c/appWans/5ce0d77a-2438-4ec0-b1b1-d75f13791a57"},"network":{"href":"http://localhost/networks/5c074c9f-54cc-4d42-8d5f-b2ce5d45792c"},"endpointGroups":{"href":"http://localhost/networks/5c074c9f-54cc-4d42-8d5f-b2ce5d45792c/appWans/5ce0d77a-2438-4ec0-b1b1-d75f13791a57/endpointGroups"},"endpoints":{"href":"http://localhost/networks/5c074c9f-54cc-4d42-8d5f-b2ce5d45792c/appWans/5ce0d77a-2438-4ec0-b1b1-d75f13791a57/endpoints"},"services":{"href":"http://localhost/networks/5c074c9f-54cc-4d42-8d5f-b2ce5d45792c/appWans/5ce0d77a-2438-4ec0-b1b1-d75f13791a57/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/451643a6-325f-466f-aada-6cb4b0fd0359/appWans' -i -X POST \
-H 'Content-Type: multipart/form-data' \
-F 'file=@hello;type=multipart/form-data'
Example response
Path | Type | Description |
---|---|---|
|
|
The businessKey of the process |
|
|
Appwan Data |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 941
{"businessKey":"451643a6-325f-466f-aada-6cb4b0fd0359","appWan":{"createdAt":"2023-01-24T07:56:54.683+00:00","updatedAt":"2023-01-24T17:56:54.683+00:00","name":"Test AppWan","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"05dcccbd-323a-4cfd-a3e0-465a498aebb6","_links":{"self":{"href":"http://localhost/networks/451643a6-325f-466f-aada-6cb4b0fd0359/appWans/05dcccbd-323a-4cfd-a3e0-465a498aebb6"},"network":{"href":"http://localhost/networks/451643a6-325f-466f-aada-6cb4b0fd0359"},"endpointGroups":{"href":"http://localhost/networks/451643a6-325f-466f-aada-6cb4b0fd0359/appWans/05dcccbd-323a-4cfd-a3e0-465a498aebb6/endpointGroups"},"endpoints":{"href":"http://localhost/networks/451643a6-325f-466f-aada-6cb4b0fd0359/appWans/05dcccbd-323a-4cfd-a3e0-465a498aebb6/endpoints"},"services":{"href":"http://localhost/networks/451643a6-325f-466f-aada-6cb4b0fd0359/appWans/05dcccbd-323a-4cfd-a3e0-465a498aebb6/services"}}}}
Updating an AppWan
A PUT
request updates an AppWan on a specific network.
Example request
Path | Type | Description |
---|---|---|
|
|
The AppWan’s name |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/41f87b1d-2dcb-41dc-b416-5990878187f6/appWans/d1636822-b236-4eb8-a9e6-2878c5781bde' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{"name":"Test AppWan Updated","status":0}'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The AppWan name |
|
|
The AppWan’s type(L2 or STD(default)) |
|
|
The AppWan id |
|
|
AppWan provisioning status |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 885
{"createdAt":"2023-01-24T07:56:54.793+00:00","updatedAt":"2023-01-24T17:56:54.793+00:00","name":"Test AppWan Updated","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"d1636822-b236-4eb8-a9e6-2878c5781bde","_links":{"self":{"href":"http://localhost/networks/41f87b1d-2dcb-41dc-b416-5990878187f6/appWans/d1636822-b236-4eb8-a9e6-2878c5781bde"},"network":{"href":"http://localhost/networks/41f87b1d-2dcb-41dc-b416-5990878187f6"},"endpointGroups":{"href":"http://localhost/networks/41f87b1d-2dcb-41dc-b416-5990878187f6/appWans/d1636822-b236-4eb8-a9e6-2878c5781bde/endpointGroups"},"endpoints":{"href":"http://localhost/networks/41f87b1d-2dcb-41dc-b416-5990878187f6/appWans/d1636822-b236-4eb8-a9e6-2878c5781bde/endpoints"},"services":{"href":"http://localhost/networks/41f87b1d-2dcb-41dc-b416-5990878187f6/appWans/d1636822-b236-4eb8-a9e6-2878c5781bde/services"}}}
Adding Endpoints to an AppWan
A POST
request adds Endpoints to an AppWan on a specific network.
Example request
Path | Type | Description |
---|---|---|
|
|
List of Endpoint UUIDs to add to the AppWan |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82/endpoints' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"ids":["1d32312f-e761-4da4-bc4c-daf05b92d305","1306fc30-71e3-4bfd-a96e-dce985268459"]}'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The AppWan name |
|
|
The AppWan id |
|
|
The AppWan’s type(L2 or STD(default)) |
|
|
AppWan provisioning status |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 877
{"createdAt":"2023-01-24T07:56:54.889+00:00","updatedAt":"2023-01-24T17:56:54.889+00:00","name":"Test AppWan","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"64d4c3cb-1fa5-457d-94a8-f2402a113b82","_links":{"self":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82"},"network":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4"},"endpointGroups":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82/endpointGroups"},"endpoints":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82/endpoints"},"services":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82/services"}}}
Remove Endpoints from an AppWan
A DELETE
request removes Endpoints from an AppWan on a specific network.
Example request
Path | Type | Description |
---|---|---|
|
|
List of Endpoint UUIDs to remove from the AppWan |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/4ca5cf65-74d5-4048-a9bd-fa9607b46097/appWans/307f46f7-e0a0-47a4-a8ee-af077674c0c3/endpoints' -i -X DELETE \
-H 'Content-Type: application/json' \
-d '{"ids":["ecb9223a-57be-4d60-8046-8579a638ec66","e0a284d2-34e3-48cd-bc62-13a72364eb0b"]}'
Adding Endpoint Groups to an AppWan
A POST
request adds Endpoint Groups to an AppWan on a specific network.
Example request
Path | Type | Description |
---|---|---|
|
|
List of Endpoint Group UUIDs to add to the AppWan |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/3ed03286-3c50-44a2-a915-61b4da0e3a64/appWans/097640dc-48c5-474b-9452-b92a0a3540d5/endpointGroups' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"ids":["296eac0d-ec83-4bc3-bc8e-f43c1eb31bcf","c273f898-ca41-4d27-9239-a8fd3b960d93"]}'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The AppWan name |
|
|
The AppWan’s type(L2 or STD(default)) |
|
|
The AppWan id |
|
|
AppWan provisioning status |
|
|
The AppWan Type |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 877
{"createdAt":"2023-01-24T07:56:54.940+00:00","updatedAt":"2023-01-24T17:56:54.940+00:00","name":"Test AppWan","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"097640dc-48c5-474b-9452-b92a0a3540d5","_links":{"self":{"href":"http://localhost/networks/3ed03286-3c50-44a2-a915-61b4da0e3a64/appWans/097640dc-48c5-474b-9452-b92a0a3540d5"},"network":{"href":"http://localhost/networks/3ed03286-3c50-44a2-a915-61b4da0e3a64"},"endpointGroups":{"href":"http://localhost/networks/3ed03286-3c50-44a2-a915-61b4da0e3a64/appWans/097640dc-48c5-474b-9452-b92a0a3540d5/endpointGroups"},"endpoints":{"href":"http://localhost/networks/3ed03286-3c50-44a2-a915-61b4da0e3a64/appWans/097640dc-48c5-474b-9452-b92a0a3540d5/endpoints"},"services":{"href":"http://localhost/networks/3ed03286-3c50-44a2-a915-61b4da0e3a64/appWans/097640dc-48c5-474b-9452-b92a0a3540d5/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 |
---|---|---|
|
|
List of Endpoint Group UUIDs to remove from the AppWan |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/916f11b9-a3f1-4e5d-b6b4-68babfae35ba/appWans/42444dbe-a703-4571-a16c-ef12969dc0c9/endpointGroups' -i -X DELETE \
-H 'Content-Type: application/json' \
-d '{"ids":["dc3761a4-a300-490d-b8e9-873158c132a7","2f35ec96-2eaf-4621-b433-03800c930e0d"]}'
Add Services to an AppWan
A POST
request adds Services to an AppWan on a specific network.
Example request
Path | Type | Description |
---|---|---|
|
|
List of Service UUIDs to add to the AppWan |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82/endpoints' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"ids":["1d32312f-e761-4da4-bc4c-daf05b92d305","1306fc30-71e3-4bfd-a96e-dce985268459"]}'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The AppWan name |
|
|
The AppWan id |
|
|
The AppWan’s type(L2 or STD(default)) |
|
|
AppWan provisioning status |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
Links to other resources |
HTTP/1.1 202 Accepted
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 877
{"createdAt":"2023-01-24T07:56:54.889+00:00","updatedAt":"2023-01-24T17:56:54.889+00:00","name":"Test AppWan","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"64d4c3cb-1fa5-457d-94a8-f2402a113b82","_links":{"self":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82"},"network":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4"},"endpointGroups":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82/endpointGroups"},"endpoints":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82/endpoints"},"services":{"href":"http://localhost/networks/69cd6f4b-49fc-4160-986c-22553346b6a4/appWans/64d4c3cb-1fa5-457d-94a8-f2402a113b82/services"}}}
Remove Services from an AppWan
A DELETE
request removes Services from an AppWan on a specific network.
Example request
Path | Type | Description |
---|---|---|
|
|
List of Service UUIDs to remove from the AppWan |
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/a5a1d050-9598-4619-91a8-3df7ab56ea5d/appWans/b92744d7-e311-4092-b872-e4aadbaefd00/services' -i -X DELETE \
-H 'Content-Type: application/json' \
-d '{"ids":["b0cb870e-9863-4187-94ff-943fbde5359d","7cd080cd-968b-4a1b-9140-e0e334ce9607"]}'
Deleting an AppWan
A DELETE
request deletes an AppWan on a specific network.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/5697527e-cacd-4581-88f5-e13e0245b4ae/appWans/999e9529-120b-448b-825b-313e3f36862a' -i -X DELETE \
-H 'Content-Type: application/json'
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/4a9bc804-5971-4c74-9444-ce934b21ccbd/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" : "1c110719-3f97-450f-8bdc-8a1c3700e615",
"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/2617ef4b-cb10-4fbc-a455-f266e8f2866e/appWan-processes/c48de1f6-720b-41a7-9118-458dffe4f2dc' -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" : "c48de1f6-720b-41a7-9118-458dffe4f2dc",
"processDefinitionKey" : "createAppwan",
"workFlowStatus" : [ {
"task" : "Started",
"status" : "InProgress"
} ]
} ]
GeoRoutingPolicies
The GeoRoutingPolicies resource is used to list GeoRoutingPolicies.
Listing GeoRouting Policies
A GET
request lists all of the georouting policies.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860/geoRoutingPolicies?appWanId=6f079590-5bf2-4f5e-b268-ae00a1b454c5' -i -X GET \
-H 'Accept: application/json'
Example response
Response Fields
Path | Type | Description |
---|---|---|
|
|
An array of geo routing policy resources |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 3770
{"_embedded":{"serviceGroupInlines":[{"createdAt":"2023-01-24T07:57:24.678+00:00","updatedAt":"2023-01-24T17:57:24.678+00:00","name":"Geo Routing Policy 01","networkId":null,"dartServiceGroupId":"SG951f70a6-f99c-46ff-b966-12c403eef8f5","ownerIdentityId":null,"dartServiceGroupType":"STD","serviceGroupType":null,"parentServiceGroupId":null,"geoRegion":{"createdAt":"2023-01-24T07:57:24.679+00:00","updatedAt":"2023-01-24T17:57:24.679+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":"79f6fa73-3b49-435b-b054-62ff5316f058"},"appWan":{"createdAt":"2023-01-24T07:57:24.678+00:00","updatedAt":"2023-01-24T17:57:24.678+00:00","name":"Appwan01","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"7eb21a78-6dd0-4c63-8c5d-9f3d7164cf0b"},"services":null,"endpoints":null,"endpointGroups":null,"id":"7867477d-24e5-492f-b0aa-07ea57db7961","_links":{"self":{"href":"http://localhost/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860/geoRoutingPolicies/7867477d-24e5-492f-b0aa-07ea57db7961"},"transferNodePool":{"href":"http://localhost/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860/transferNodePools/79f6fa73-3b49-435b-b054-62ff5316f058"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"network":{"href":"http://localhost/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860"},"appWans":{"href":"http://localhost/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860/appWans/7eb21a78-6dd0-4c63-8c5d-9f3d7164cf0b"}}},{"createdAt":"2023-01-24T07:57:24.679+00:00","updatedAt":"2023-01-24T17:57:24.679+00:00","name":"Geo Routing Policy 02","networkId":null,"dartServiceGroupId":"SG951f70a6-f99c-46ff-b966-12c403eef8f5","ownerIdentityId":null,"dartServiceGroupType":"STD","serviceGroupType":null,"parentServiceGroupId":null,"geoRegion":{"createdAt":"2023-01-24T07:57:24.679+00:00","updatedAt":"2023-01-24T17:57:24.679+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":"35993636-7381-4243-bef1-d4dc02e3dde4"},"appWan":{"createdAt":"2023-01-24T07:57:24.679+00:00","updatedAt":"2023-01-24T17:57:24.679+00:00","name":"Appwan01","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"c6e6236a-54cb-4408-8e36-ee0681487c9a"},"services":null,"endpoints":null,"endpointGroups":null,"id":"5a4a7f59-7245-4187-860c-bdd42cf7c19d","_links":{"self":{"href":"http://localhost/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860/geoRoutingPolicies/5a4a7f59-7245-4187-860c-bdd42cf7c19d"},"transferNodePool":{"href":"http://localhost/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860/transferNodePools/35993636-7381-4243-bef1-d4dc02e3dde4"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"network":{"href":"http://localhost/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860"},"appWans":{"href":"http://localhost/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860/appWans/c6e6236a-54cb-4408-8e36-ee0681487c9a"}}}]},"_links":{"self":{"href":"http://localhost/networks/da3ba860-8b08-45a7-8d2a-c19b922f7860/geoRoutingPolicies"}}}
Fetching a GeoRoutingPolicy
A GET
request fetches a specific GeoRouting Policy.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/a40e6e9a-a6f3-4a02-85c9-7e20e6f0aede/geoRoutingPolicies/eec73039-c05e-4c69-8c51-fc1aa31ffd39' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The GeoRouting policy name |
|
|
The GeoRouting policy id |
|
|
Record creation time |
|
|
Record last modification time |
|
|
GeoRouting policy id in dart application |
|
|
GeoRouting policy type L2 or STD |
|
|
GeoRouting policy type Manual or Default |
|
|
GeoRouting policy id of the parent record |
|
|
List of services associated the GeoRouting policy |
|
|
List of endpoints associated the GeoRouting policy |
|
|
List of endpoint groups associated the GeoRouting policy |
|
|
Geo Region of GeoRouting policy |
|
|
Transfer Node Pool of GeoRouting policy |
|
|
AppWan to which GeoRouting policy belongs to |
|
|
Geo Region of GeoRouting policy |
|
|
Transfer Node Pool of GeoRouting policy |
|
|
AppWan to which GeoRouting policy belongs to |
|
|
Identity Id of the owner |
|
|
GeoRouting policy type L2 or STD |
|
|
Links to other resources |
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 1809
{"createdAt":"2023-01-24T07:57:24.860+00:00","updatedAt":"2023-01-24T17:57:24.860+00:00","name":"Geo Routing Policy 01","networkId":null,"dartServiceGroupId":"SG951f70a6-f99c-46ff-b966-12c403eef8f5","ownerIdentityId":null,"dartServiceGroupType":"STD","serviceGroupType":null,"parentServiceGroupId":null,"geoRegion":{"createdAt":"2023-01-24T07:57:24.861+00:00","updatedAt":"2023-01-24T17:57:24.861+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":"62bafb12-6c3e-4e5c-a0ce-b23d13684c22"},"appWan":{"createdAt":"2023-01-24T07:57:24.860+00:00","updatedAt":"2023-01-24T17:57:24.860+00:00","name":"Appwan01","networkId":null,"status":300,"ownerIdentityId":null,"appWanType":null,"id":"fa99db92-6c49-404d-816c-a25926d35e3a"},"services":null,"endpoints":null,"endpointGroups":null,"id":"eec73039-c05e-4c69-8c51-fc1aa31ffd39","_links":{"self":{"href":"http://localhost/networks/a40e6e9a-a6f3-4a02-85c9-7e20e6f0aede/geoRoutingPolicies/eec73039-c05e-4c69-8c51-fc1aa31ffd39"},"transferNodePool":{"href":"http://localhost/networks/a40e6e9a-a6f3-4a02-85c9-7e20e6f0aede/transferNodePools/62bafb12-6c3e-4e5c-a0ce-b23d13684c22"},"geoRegion":{"href":"http://localhost/geoRegions/9bbca6aa-767c-4c48-b4ab-dac0ead018fc"},"network":{"href":"http://localhost/networks/a40e6e9a-a6f3-4a02-85c9-7e20e6f0aede"},"appWans":{"href":"http://localhost/networks/a40e6e9a-a6f3-4a02-85c9-7e20e6f0aede/appWans/fa99db92-6c49-404d-816c-a25926d35e3a"}}}
Creating a GeoRouting Policy
A POST
request creates a new geo routing Policy.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/9feccf3b-f724-4258-abae-192eb4e98476/geoRoutingPolicy?appWanId=d2b9539c-99ff-4404-8112-e719695f28bf' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"geoRegionId":"9bbca6aa-767c-4c48-b4ab-dac0ead018fc","geoRoutingPolicyId":"9bbca6aa-767c-4c48-b4ab-dac0ead018fc","endpointIds":["78c1fc64-69d5-4321-9366-e5e6f66aa26a","63866ef4-5119-4eb4-a08d-570839ad0001"],"endpointGroupIds":["d6d60de5-1efb-41ac-bb92-28a02fdaf986"]}'
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/3380aedf-df00-446b-b4c4-2e6cdc549320/transferNodePools/43fbfb2a-c4d6-4e21-9be6-ea99c4b24328' -i -X GET \
-H 'Accept: application/json'
Example response
Response Fields
Path | Type | Description |
---|---|---|
|
|
The parent network id |
|
|
The transfer node pool’s name |
|
|
The transfer node pool’s id |
|
|
Network |
|
|
Transfer nodes |
|
|
Service groups |
|
|
Geo Region |
|
|
Dart Deflect Pool Id if it is present in dart |
|
|
minimum Channels |
|
|
channels Low |
|
|
channels High |
|
|
direct Channels |
|
|
selected |
|
|
Interval - default value is 60 |
|
|
low Bandwidth can be Yes or No |
|
|
roll Policy can have values like full_spectrum |
|
|
Record creation time |
|
|
Record last modification time |
|
|
Identity Id of the owner |
|
|
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":"43fbfb2a-c4d6-4e21-9be6-ea99c4b24328","_links":{"self":{"href":"http://localhost/networks/3380aedf-df00-446b-b4c4-2e6cdc549320/transferNodePools/43fbfb2a-c4d6-4e21-9be6-ea99c4b24328"}}}
Fetching a TransferNodePool
A GET
request fetches a specific TransferNodePool.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/608bdb6a-cb19-4784-b3ca-9f75f24dabd4/transferNodePools' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of TransferNodePool resources |
|
|
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":"cda11d5b-d576-4395-a8e4-ecdefbb1dcdf","_links":{"self":{"href":"http://localhost/networks/608bdb6a-cb19-4784-b3ca-9f75f24dabd4/transferNodePools/cda11d5b-d576-4395-a8e4-ecdefbb1dcdf"}}}]},"_links":{"self":{"href":"http://localhost/networks/608bdb6a-cb19-4784-b3ca-9f75f24dabd4/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=ef14c935-6a2f-400a-ade8-bf9771ac8a6e' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
An array of Host resources |
|
|
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":"ef14c935-6a2f-400a-ade8-bf9771ac8a6e","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":"d748e2ea-2da9-40aa-9d16-687de771ce82"}]},"_links":{"network":{"href":"http://localhost/networks/ef14c935-6a2f-400a-ade8-bf9771ac8a6e"}}}
Fetching a host
A GET
request fetches a specific host.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/hosts/44d668ee-0ac3-4f68-8907-d297a35c1115' -i -X GET \
-H 'Accept: application/json'
Example response
Path | Type | Description |
---|---|---|
|
|
A unique identifier of Host resource |
|
|
The parent network id |
|
|
The Host’s name |
|
|
Provisioning status of the Host |
|
|
Record creation time |
|
|
Record last modification time |
|
|
The type of host |
|
|
The OS of host |
|
|
Primary address of the host |
|
|
Memory in GB |
|
|
Number of CPU |
|
|
The model of the host |
|
|
Provider Id of the host |
|
|
Provider name of the host |
|
|
User Registration Data |
|
|
Identity Id of the owner |
|
|
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":"0b673d0f-3171-4e56-a3d7-f561a6501e79","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":"44d668ee-0ac3-4f68-8907-d297a35c1115","_links":{"network":{"href":"http://localhost/networks/0b673d0f-3171-4e56-a3d7-f561a6501e79"}}}
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.
Search
Index | Description |
---|---|
|
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. |
|
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. |
|
This index contains all API-driven events and changes, as well as endpoint status changes. These events are available for 90 days. |
|
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/97b5ca8d-1199-4b0e-8763-9172b7fb9828/_search/ HTTP/1.1
Content-Type: application/json
Accept: application/json
Content-Length: 476
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJaTXBvOE1Lc1pNWjRRY1R3a1pkMFBRIiwiaXNzIjoiTmV0Rm91bmRyeSIsInN1YiI6ImEwOGU5OTg3LTIyZDQtNGQ5OC04NWJkLWVhMzYwZGU2ZGU5MCIsImF1ZCI6ImlvLm5ldGZvdW5kcnkubmV0d29yayIsImlhdCI6MTY3NDU4Mjk3NSwiZXhwIjoxNjc0NTg2NTc1LCJncmFudHMtc3VwZXIiOiJbe1wiaWRcIjpcIjBmMjU2YWI3LTU3OTQtNDI4Yy1iYzQ1LTczMWUyYjA3NDRlOVwiLFwibGFzdE1vZGlmaWVkXCI6MTY3NDU4Mjk3NX1dIiwiZ3JhbnRzLWN1c3RvbSI6IltdIiwiZ3JhbnRzLXB1YmxpYyI6IltdIiwiZ3JhbnRzLWFjdGlvbiI6IltdIiwiZ3JhbnRzLXN0YW5kYXJkIjoiW10ifQ.BopqSAfWS-gx43OgAq6Ti3nRGWy_F4ri6StHXKTSu-YhGZmHdnqg5Oqx0M2eVOH7slF7hGPaJn4XRoomivoH_7N_UvbbpwsEQ0yiBE7rjpy9tgwJhYHpnmRE4b1B9zBa3dytl7BjmxgV3S8mmlwd7Hm8_r5z2vM1pKqvyrdfLk_sPzbBlEGUFy7ZwMPirmKzqVlucQF6oXgEQx02xGv4dwjdThRSibQIUWB88MgnmwccDr4Yn1uUto4YT_sqC0nlF9zfTUhG5bAdM1OZ_-AOQoSO81_pC0Mpd37XOyD3hVsWRZSzmuLjnvnwckVtnhNUJZj3dNX7-JAy_spxMk1dRQ
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 |
---|---|---|
|
|
An array of DataCenter resources |
|
|
An array of DataCenter resources |
|
|
An array of DataCenter resources |
|
|
An array of DataCenter resources |
|
|
An array of DataCenter resources |
|
|
An array of DataCenter resources |
|
|
An array of DataCenter resources |
|
|
An array of DataCenter resources |
|
|
An array of DataCenter resources |
|
|
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":[]}}
Alarms
The Alarms of a network.
Fetching alarms of a network
A GET
request fetches all alarms matching the given id in a network.
Example request
$ curl 'https://gateway.production.netfoundry.io/rest/v1/networks/701d36bf-798f-4e0a-8b9d-5b0cf3fc1047/alarms/1' -i -X GET \
-H 'Accept: application/json'
Example response
HTTP/1.1 200 OK
X-B3-TraceId: 0000000000000001
Content-Type: application/json
Content-Length: 222
[{"domain":0,"alarm_id":1,"code":null,"severity":1,"description":null,"timestamp":null,"timestampSecsEpoch":0,"prob_cause":null,"id":"Soft Switch","ack":0,"object_type":null,"vtc_id":null,"dsx_id":null,"lastchanged":null}]