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
# 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
# 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
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
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
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
# 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
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
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string(uuid) | false | none | none |
SubnetId
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string(uuid) | false | none | none |
SubnetIdList
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [SubnetId] | false | none | none |
MaskBits
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | integer(int32) | false | none | none |
NetworkId
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | none | none |
Capability
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | none | none |
CapabilityList
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
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
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
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
capabilities | CapabilityList | false | none | none |
locked | boolean | false | none | Update the locked state of a subnet |