Skip to content

UI Network Management API v2.3.0

This schema defines the REST API for a IP Address Management System (IPAM). The IPAM system manages IP subnet definitions and their corresponding allocations.

Contact: Cloud Operations

Operations

Tag: networkManagement

list-subnet-allocations

Operation Id: list-subnet-allocations

Action: GET /allocations

Summary: Retrieve list of existing subnet allocations

Parameters

Name In Type Required Description
workloadName query string false none
workloadEnvironment query string false none
maxResults query integer false none
orderBy query string false none

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Status Code 200

Name Type Required Restrictions Description
anonymous [SubnetAllocation] false none none
» objectId SubnetAllocationId(uuid) false none none
» networkId NetworkId false none none
» maskBits MaskBits(int32) false none none
» workload string false none none
» workloadEnvironment string false none none
» capabilities [Capability] false none none
» assignmentProperties any false none none
» extensionProperties any false none none

Example responses

200 Response

[
  {
    "objectId": "e39ea5f2-2188-47f8-add0-f1976630af5e",
    "networkId": "string",
    "maskBits": 27,
    "workload": "string",
    "workloadEnvironment": "string",
    "capabilities": [
      "string"
    ],
    "assignmentProperties": null,
    "extensionProperties": null
  }
]

Note

This operation does not require authentication

Code samples

GET http://localhost:3000/allocations HTTP/1.1
Host: localhost:3000
Accept: application/json
# You can also use wget
curl -X GET http://localhost:3000/allocations \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:3000/allocations', headers = headers)

print(r.json())

create-subnet-allocation

Operation Id: create-subnet-allocation

Action: POST /allocations

Summary: Allocate a subnet

Body parameter

{
  "objectID": "e38a5427-23c9-4db1-a8ed-f0f2264f0584",
  "maskBits": 27,
  "workload": "string",
  "workloadEnvironment": "string",
  "capabilities": [
    "string"
  ],
  "assignmentProperties": null,
  "extensionProperties": null
}

Parameters

Name In Type Required Description
body body SubnetAllocationCreateData true none

Responses

Status Meaning Description Schema
201 Created Created SubnetAllocationId
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
409 Conflict Conflict Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

POST http://localhost:3000/allocations HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X POST http://localhost:3000/allocations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('http://localhost:3000/allocations', headers = headers)

print(r.json())

get-subnet-allocation

Operation Id: get-subnet-allocation

Action: GET /allocations/{id}

Summary: Get an existing subnet allocation

Parameters

Name In Type Required Description
id path SubnetAllocationId true none

Responses

Status Meaning Description Schema
200 OK OK SubnetAllocation
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

GET http://localhost:3000/allocations/{id} HTTP/1.1
Host: localhost:3000
Accept: application/json
# You can also use wget
curl -X GET http://localhost:3000/allocations/{id} \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:3000/allocations/{id}', headers = headers)

print(r.json())

update-subnet-allocation

Operation Id: update-subnet-allocation

Action: PATCH /allocations/{id}

Summary: Update an existing subnet allocation

Body parameter

{
  "assignmentProperties": null,
  "extensionProperties": null
}

Parameters

Name In Type Required Description
id path SubnetAllocationId true none
body body SubnetAllocationUpdateData true none

Responses

Status Meaning Description Schema
200 OK OK SubnetAllocation
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

PATCH http://localhost:3000/allocations/{id} HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X PATCH http://localhost:3000/allocations/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('http://localhost:3000/allocations/{id}', headers = headers)

print(r.json())

delete-subnet-allocation

Operation Id: delete-subnet-allocation

Action: DELETE /allocations/{id}

Summary: Delete an existing subnet allocation

Parameters

Name In Type Required Description
id path SubnetAllocationId true none

Responses

Status Meaning Description Schema
204 No Content No Content None
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

DELETE http://localhost:3000/allocations/{id} HTTP/1.1
Host: localhost:3000
Accept: application/problem+json
# You can also use wget
curl -X DELETE http://localhost:3000/allocations/{id} \
  -H 'Accept: application/problem+json'
import requests
headers = {
  'Accept': 'application/problem+json'
}

r = requests.delete('http://localhost:3000/allocations/{id}', headers = headers)

print(r.json())

list-subnets

Operation Id: list-subnets

Action: GET /subnets

Summary: Retrieve list of existing subnets

Parameters

Name In Type Required Description
maxResults query integer false none
capabilities query array[string] false none
orderBy query string false none
onlyLocked query boolean false Return only locked subnets

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Status Code 200

Name Type Required Restrictions Description
anonymous [Subnet] false none none
» objectId SubnetId(uuid) false none none
» networkId NetworkId true none none
» maskBits MaskBits(int32) true none none
» startIp string false none none
» endIp string false none none
» capabilities [Capability] false none none
» locked boolean false none The locked state of a subnet. Locked subnets cannot be assigned to an allocation.
» allocatedBy SubnetAllocationId(uuid) false none none

Example responses

200 Response

[
  {
    "objectId": "e39ea5f2-2188-47f8-add0-f1976630af5e",
    "networkId": "string",
    "maskBits": 27,
    "startIp": "string",
    "endIp": "string",
    "capabilities": [
      "string"
    ],
    "locked": false,
    "allocatedBy": "e702f7b1-dd91-47fd-9bff-9ae02361e481"
  }
]

Note

This operation does not require authentication

Code samples

GET http://localhost:3000/subnets HTTP/1.1
Host: localhost:3000
Accept: application/json
# You can also use wget
curl -X GET http://localhost:3000/subnets \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:3000/subnets', headers = headers)

print(r.json())

create-subnet

Operation Id: create-subnet

Action: POST /subnets

Summary: Create a new subnet

Body parameter

{
  "networkId": "string",
  "maskBits": 27,
  "capabilities": [
    "string"
  ],
  "locked": false
}

Parameters

Name In Type Required Description
body body SubnetCreateData true none

Responses

Status Meaning Description Schema
201 Created Created SubnetIdList
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
409 Conflict Conflict Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

POST http://localhost:3000/subnets HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X POST http://localhost:3000/subnets \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('http://localhost:3000/subnets', headers = headers)

print(r.json())

get-subnet

Operation Id: get-subnet

Action: GET /subnets/{id}

Summary: Get an existing subnet

Parameters

Name In Type Required Description
id path SubnetId true none

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Status Code 200

Name Type Required Restrictions Description
anonymous [Subnet] false none none
» objectId SubnetId(uuid) false none none
» networkId NetworkId true none none
» maskBits MaskBits(int32) true none none
» startIp string false none none
» endIp string false none none
» capabilities [Capability] false none none
» locked boolean false none The locked state of a subnet. Locked subnets cannot be assigned to an allocation.
» allocatedBy SubnetAllocationId(uuid) false none none

Example responses

200 Response

[
  {
    "objectId": "e39ea5f2-2188-47f8-add0-f1976630af5e",
    "networkId": "string",
    "maskBits": 27,
    "startIp": "string",
    "endIp": "string",
    "capabilities": [
      "string"
    ],
    "locked": false,
    "allocatedBy": "e702f7b1-dd91-47fd-9bff-9ae02361e481"
  }
]

Note

This operation does not require authentication

Code samples

GET http://localhost:3000/subnets/{id} HTTP/1.1
Host: localhost:3000
Accept: application/json
# You can also use wget
curl -X GET http://localhost:3000/subnets/{id} \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:3000/subnets/{id}', headers = headers)

print(r.json())

delete-subnet

Operation Id: delete-subnet

Action: DELETE /subnets/{id}

Summary: Delete an existing subnet

Parameters

Name In Type Required Description
id path SubnetId true none

Responses

Status Meaning Description Schema
204 No Content No Content None
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

DELETE http://localhost:3000/subnets/{id} HTTP/1.1
Host: localhost:3000
Accept: application/problem+json
# You can also use wget
curl -X DELETE http://localhost:3000/subnets/{id} \
  -H 'Accept: application/problem+json'
import requests
headers = {
  'Accept': 'application/problem+json'
}

r = requests.delete('http://localhost:3000/subnets/{id}', headers = headers)

print(r.json())

update-subnet

Operation Id: update-subnet

Action: PATCH /subnets/{id}

Summary: Update an existing subnet

Body parameter

{
  "capabilities": [
    "string"
  ],
  "locked": true
}

Parameters

Name In Type Required Description
id path SubnetId true none
body body SubnetUpdateData true none

Responses

Status Meaning Description Schema
200 OK OK Subnet
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

PATCH http://localhost:3000/subnets/{id} HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X PATCH http://localhost:3000/subnets/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('http://localhost:3000/subnets/{id}', headers = headers)

print(r.json())

Schemas

InnerError

{
  "code": "string",
  "innererror": {
    "code": "string",
    "innererror": {
      "code": "string",
      "innererror": {
        "code": "string",
        "innererror": {
          "code": null,
          "innererror": null
        }
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
code string false none none
innererror InnerError false none none

Error

{
  "code": "string",
  "message": "string",
  "target": "string",
  "details": [
    {
      "code": "string",
      "message": "string",
      "target": "string",
      "details": [
        {
          "code": "string",
          "message": "string",
          "target": "string",
          "details": [
            {}
          ],
          "innererror": {
            "code": null,
            "innererror": null
          }
        }
      ],
      "innererror": {
        "code": "string",
        "innererror": {
          "code": "string",
          "innererror": {}
        }
      }
    }
  ],
  "innererror": {
    "code": "string",
    "innererror": {
      "code": "string",
      "innererror": {
        "code": "string",
        "innererror": {
          "code": null,
          "innererror": null
        }
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
code string false none none
message string false none none
target string false none none
details [Error] false none none
innererror InnerError false none none

Problem

{
  "type": "/some/uri-reference",
  "title": "some title for the error situation",
  "status": 100,
  "detail": "some description for the error situation",
  "instance": "/some/uri-reference#specific-occurrence-context",
  "cause": {
    "code": "string",
    "message": "string",
    "target": "string",
    "details": [
      {
        "code": "string",
        "message": "string",
        "target": "string",
        "details": [
          {
            "code": null,
            "message": null,
            "target": null,
            "details": null,
            "innererror": null
          }
        ],
        "innererror": {
          "code": "string",
          "innererror": {}
        }
      }
    ],
    "innererror": {
      "code": "string",
      "innererror": {
        "code": "string",
        "innererror": {
          "code": null,
          "innererror": null
        }
      }
    }
  }
}

https://datatracker.ietf.org/doc/html/rfc7807

Properties

Name Type Required Restrictions Description
type string(uri) true none A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type.
title string false none A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
status integer(int32) false none The HTTP status code generated by the origin server for this occurrence of the problem.
detail string false none A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
instance string(uri-reference) false none A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code.
cause Error false none none

SubnetAllocationId

"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Properties

Name Type Required Restrictions Description
anonymous string(uuid) false none none

SubnetId

"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Properties

Name Type Required Restrictions Description
anonymous string(uuid) false none none

SubnetIdList

[
  "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Properties

Name Type Required Restrictions Description
anonymous [SubnetId] false none none

MaskBits

27

Properties

Name Type Required Restrictions Description
anonymous integer(int32) false none none

NetworkId

"string"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Capability

"string"

Properties

Name Type Required Restrictions Description
anonymous string false none none

CapabilityList

[
  "string"
]

Properties

Name Type Required Restrictions Description
anonymous [Capability] false none none

SubnetAllocation

{
  "objectId": "e39ea5f2-2188-47f8-add0-f1976630af5e",
  "networkId": "string",
  "maskBits": 27,
  "workload": "string",
  "workloadEnvironment": "string",
  "capabilities": [
    "string"
  ],
  "assignmentProperties": null,
  "extensionProperties": null
}

Properties

Name Type Required Restrictions Description
objectId SubnetAllocationId false none none
networkId NetworkId false none none
maskBits MaskBits false none none
workload string false none none
workloadEnvironment string false none none
capabilities CapabilityList false none none
assignmentProperties any false none none
extensionProperties any false none none

SubnetAllocationCreateData

{
  "objectID": "e38a5427-23c9-4db1-a8ed-f0f2264f0584",
  "maskBits": 27,
  "workload": "string",
  "workloadEnvironment": "string",
  "capabilities": [
    "string"
  ],
  "assignmentProperties": null,
  "extensionProperties": null
}

Properties

Name Type Required Restrictions Description
objectID SubnetId false none none
maskBits MaskBits false none none
workload string true none none
workloadEnvironment string true none none
capabilities CapabilityList false none none
assignmentProperties any false none none
extensionProperties any false none none

SubnetAllocationUpdateData

{
  "assignmentProperties": null,
  "extensionProperties": null
}

Properties

Name Type Required Restrictions Description
assignmentProperties any false none none
extensionProperties any false none none

Subnet

{
  "objectId": "e39ea5f2-2188-47f8-add0-f1976630af5e",
  "networkId": "string",
  "maskBits": 27,
  "startIp": "string",
  "endIp": "string",
  "capabilities": [
    "string"
  ],
  "locked": false,
  "allocatedBy": "e702f7b1-dd91-47fd-9bff-9ae02361e481"
}

Properties

Name Type Required Restrictions Description
objectId SubnetId false none none
networkId NetworkId true none none
maskBits MaskBits true none none
startIp string false none none
endIp string false none none
capabilities CapabilityList false none none
locked boolean false none The locked state of a subnet. Locked subnets cannot be assigned to an allocation.
allocatedBy SubnetAllocationId false none none

SubnetCreateData

{
  "networkId": "string",
  "maskBits": 27,
  "capabilities": [
    "string"
  ],
  "locked": false
}

Properties

Name Type Required Restrictions Description
networkId NetworkId true none none
maskBits MaskBits true none none
capabilities CapabilityList false none none
locked boolean false none Create the subnet in locked state

SubnetUpdateData

{
  "capabilities": [
    "string"
  ],
  "locked": true
}

Properties

Name Type Required Restrictions Description
capabilities CapabilityList false none none
locked boolean false none Update the locked state of a subnet