Updates mac ranges and fixes errors in docs

Change-Id: I98ef53b4d2cfac7749268a4b4a15632ddcc6904e
This commit is contained in:
rajarammallya 2012-01-27 18:34:11 +05:30
parent 41a38d96a6
commit c2c5415058

View File

@ -25,14 +25,14 @@ General Information
The Melange API is implemented using a RESTful web service interface.
* All GET /resources accepts 'limit' and 'marker' params. If these params are not passed default limit is applied.
* All GET /resources accept 'limit' and 'marker' params. If these params are not passed a default limit is applied.
* If POST or PUT on a resource doesn't send mandatory params, API returns '400 Bad Request' response.
* If POST or PUT on a resource doesn't send mandatory params, the API returns a '400 Bad Request' response.
Request/Response Types
======================
* The Melange API supports both the JSON and XML data serialization formats.
* The Melange API supports both JSON and XML data serialization formats.
* The request format is specified using the Content-Type header and is required for operations that have a request body.
@ -67,12 +67,21 @@ Normal Response code: 200
::
{"versions":[
{"status":"CURRENT",
"name":"v0.1",
"links":[
{"href":"http://melange/v0.1",
"rel":"self"}]}]}
{
"versions":
[
{
"status":"CURRENT",
"name":"v0.1",
"links":
[
{ "href":"http://melange/v0.1",
"rel":"self"
}
]
}
]
}
Extensions
@ -83,8 +92,6 @@ The Melange API is extensible. The API Extensions allow introducing new features
List extensions
---------------
====== ============= ===============================
Verb URI Description
====== ============= ===============================
@ -134,7 +141,9 @@ List Tenant's blocks
**Params:**
type ('public' or 'private')
'type': ('public' or 'private') Represents a public or private ip block.
Marking a block as public ensures it doesn't overlap with existing
public blocks.
**Response Codes:**
@ -282,6 +291,20 @@ Create tenant's IP block
**Params:**
::
{
"ip_block": {
"type": "private"
"cidr": "10.0.0.0/24"
"network_id":"new_net",
"policy_id":"policy_id",
"dns1": "8.8.8.8"
"dns2": "8.8.4.4"
"gateway": "10.0.0.2"
}
}
'type': 'public' or 'private' [Mandatory]
'cidr': IPV4 or IPV6 cidr [Mandatory]
@ -291,7 +314,6 @@ Create tenant's IP block
'policy_id': Is a uuid, has to be an existing policy
'dns1': Primary dns server ip address, defaults to dns configured in melange
'dns2': Secondary dns server ip address, defaults to dns configured in melange
'gateway': any valid ip address, defaults to second ip address of the block
@ -337,7 +359,18 @@ Create tenant's subnet
**Params:**
cidr': IpV4 or IpV6 cidr [Mandatory]
::
{
"ip_block": {
"cidr": "10.0.0.0/28"
"network_id": "new_net",
"policy_id": "policy_id",
"tenant_id": "subnet_tenant_id"
}
}
'cidr': IpV4 or IpV6 cidr that is a subnet of the parent cidr [Mandatory]
'network_id' : Can be a uuid, any string accepted
@ -349,9 +382,9 @@ cidr': IpV4 or IpV6 cidr [Mandatory]
Normal Response code: 201
Error - 404 Not Found [When IpBlock for given ip_block_id and tenant_id doesn't exist]
Error - 404 Not Found [When IpBlock for the ip_block_id and tenant_id doesn't exist]
Error - 400 Bad Request [When mandatory fields are not present or field validations fails]
Error - 400 Bad Request [When mandatory fields are not present or field validations fail]
**JSON Response Example:**
@ -380,18 +413,32 @@ Error - 400 Bad Request [When mandatory fields are not present or field valida
Update tenant's IP block
------------------------
====== ========================================= =================================================
====== ========================================= =====================================
Verb URI Description
====== ========================================= =================================================
PUT /ipam/tenants/{tenant_id}/ip_blocks/:(id) Update details of a tenant's ip block by given id
====== ========================================= =================================================
====== ========================================= =====================================
PUT /ipam/tenants/{tenant_id}/ip_blocks/:(id) Update details of a tenant's ip block
====== ========================================= =====================================
**Params:**
network_id' : Can be a uuid, any string accepted
::
{
"ip_block": {
"type": "private"
"network_id": "new_net",
"policy_id": "policy_id",
}
}
'type': ('public' or 'private')
'network_id' : Can be a uuid, any string accepted
'policy_id' : Is a uuid, has to be an existing policy
All other properties of an ip block cannot be updated
**Response Codes:**
Normal Response code: 200
@ -430,7 +477,7 @@ Delete tenant's IP block
====== ========================================= ================================
Verb URI Description
====== ========================================= ================================
DELETE /ipam/tenants/{tenant_id}/ip_blocks/:(id) Deletes the tenants ip block
DELETE /ipam/tenants/{tenant_id}/ip_blocks/:(id) Deletes the tenant's ip block
====== ========================================= ================================
**Params:**
@ -441,7 +488,7 @@ None
Normal Response code: 200
Error - 404 Not Found [When IpBlock for given id and tenant_id doesn't exist]
Error - 404 Not Found [When IpBlock for with this id and tenant_id doesn't exist]
IP Address from Tenant's IP Blocks
@ -450,11 +497,11 @@ IP Address from Tenant's IP Blocks
List tenant's address
---------------------
====== ============================================================== ===============================================================================================================
====== ============================================================== ==============================================================================================================
Verb URI Description
====== ============================================================== ===============================================================================================================
GET /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_addresses List all ip addresses in a tenant's ip block. This will return all allocated and soft deallocated ip addresses.
====== ============================================================== ===============================================================================================================
====== ============================================================== ==============================================================================================================
GET /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_addresses List all ip addresses in a tenant's ip block. This will return all allocated and soft deallocated ip addresses
====== ============================================================== ==============================================================================================================
**Params:**
@ -464,7 +511,7 @@ None
Normal Response code: 200
Error - 404 Not Found (When IpBlock for given ip_block_id and tenant_id is not found)
Error - 404 Not Found (When an ip_address for the ip_block_id and tenant_id is not found)
**JSON Response Example:**
@ -521,7 +568,6 @@ Normal Response code: 200
::
{
"ip_addresses": [
{
@ -570,7 +616,6 @@ Normal Response code: 200
::
{
"ip_addresses": [
{
@ -610,19 +655,18 @@ Get address details
**Params:**
None
{address} in the URI is the ipv4 or ipv6 address
**Response Codes:**
Normal Response code: 200
Error - 404 Not Found (When either IpBlock for given ip_block_id and tenant_id is not found, or IpAddress for given address is not found)-~+~
Error - 404 Not Found (When either IpBlock for given ip_block_id and tenant_id is not found, or IpAddress for given address is not found)
**JSON Response Example:**
::
{
"ip_address": {
"address": "10.1.1.6",
@ -649,23 +693,34 @@ Allocate tenant's address
**Params:**
::
{
"ip_address": {
"interface_id": "vif_id",
"address": "10.0.0.3",
"tenant_id": "lesse_tenant_id",
"used_by_device": "device_id",
"mac_address": "AB:CD:EF:01:02:03",
}
}
'interface_id' : Can be a uuid, any string accepted. Is an id pointing to the interface on which the ip will be configured.
'address' : This address is used for allocation. If this is not provided, next available address will be allocated.
'interface_id' : Can be a uuid, any string accepted. Is an id pointing to the interface on which the ip will be configured
'tenant_id' : The 'lessee' tenant (the tenant actually using the ip, as opposed to the tenant owning the block). Defaults to the tenant owning the block.
'tenant_id' : The 'lessee' tenant (the tenant using the ip, as opposed to the tenant owning the block). Defaults to the tenant owning the block.
'used_by_device' : Can be a uuid, any string accepted. Is an id pointing to the instance(or any other device) on which the ip will be used.
'mac_address' : any valid mac_address, applicable only for generating ipv6 addresses, Mandatory for ipv6 blocks.-~+~
'mac_address' : Optional, can be provided if Melange is not in charge of generating mac addresses.
**Response Codes:**
Normal Response code: 201
Error - 404 Not Found (When either IpBlock for given ip_block_id and tenant_id is not found, or IpAddress for given address is not found)-~+~
Error - 404 Not Found (When either IpBlock for given ip_block_id and tenant_id is not found, or IpAddress for given address is not found)
Error - 404 Not Found [When IpBlock for given ip_block_id is not found]
@ -698,11 +753,11 @@ Error - 400 Bad Request [When mandatory fields are not present or fields fail
Deallocate tenant's address
---------------------------
====== ======================================================================== ====================================================================================================================================================================
====== ======================================================================== =====================================================================================================================================================================
Verb URI Description
====== ======================================================================== ====================================================================================================================================================================
DELETE /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_addresses/{address} Deallocate an IpAddress from a tenant's block. This ip address will be deleted after a certain number of days. Number of days can be configured in melange.conf file
====== ======================================================================== ====================================================================================================================================================================
====== ======================================================================== =====================================================================================================================================================================
DELETE /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_addresses/{address} Deallocate an IpAddress from a tenant's block. This ip address will be deleted after a certain number of days. Number of days can be configured in melange.conf file.
====== ======================================================================== =====================================================================================================================================================================
**Params:**
@ -712,7 +767,7 @@ None
Normal Response code: 200
Error - 404 Not Found (When ip_block for given id and tenant_id is not found)
Error - 404 Not Found (When ip_block for this id and tenant_id is not found)
Restore tenant's address
@ -732,7 +787,7 @@ None
Normal Response code: 200
Error - 404 Not Found (When IpBlock for given id and tenant_id is not found or IpAddress for given address is not found)
Error - 404 Not Found (When IpBlock for this ip_block_id and tenant_id is not found or when address is not found)
@ -745,7 +800,7 @@ List all Static Routes for an IpBlock
====== =========================================================== ========================================
Verb URI Description
====== =========================================================== ========================================
GET /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_routes List all static routes for the ip_block
GET /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_routes List all static routes for the ip block.
====== =========================================================== ========================================
**Params:**
@ -824,32 +879,41 @@ Create a Static Route for an IpBlock
====== ============================================================ =======================================
Verb URI Description
====== ============================================================ =======================================
POST /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_routes Create an static route for an ip_block
POST /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_routes Create a static route for an ip block.
====== ============================================================ =======================================
**Params:**
'destination' : [Mandatory] IpAddress or Cidr of the destination host or network.
::
{
"ip_route": {
"destination": "10.1.1.1",
"netmask": "255.255.255.0",
"gateway": "10.1.1.0",
}
}
'destination' : IpAddress or Cidr of the destination host or network.[Mandatory]
'netmask : netmask of the destination network, if applicable.
'gateway' : [Mandatory] IpAddress of the gateway.
'gateway' : IpAddress of the gateway.[Mandatory]
**Response Codes:**
Normal Response code: 201
Error - 404 Not Found [When IpBlock for given ip_block_id and tenant_id does not exists]
Error - 404 Not Found [When IpBlock for the ip_block_id and tenant_id does not exists]
Error - 400 Bad Request [When required parameters are not present or field validation fails]
Error - 400 Bad Request [When required parameters are not present or field validations fail]
**JSON Response Example:**
::
{
"ip_route": {
"created_at": "2011-12-01T10:20:47",
@ -867,11 +931,21 @@ Update a static route
====== ================================================================= ==================================
Verb URI Description
====== ================================================================= ==================================
PUT /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_routes/:(id) Update details of a static route
PUT /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_routes/:(id) Update details of a static route.
====== ================================================================= ==================================
**Params:**
::
{
"ip_route": {
"destination": "10.1.1.1",
"netmask": "255.255.255.0",
"gateway": "10.1.1.0",
}
}
'destination' : IpAddress or Cidr of the destination host or network.
'netmask : netmask of the destination network, if applicable.
@ -882,15 +956,14 @@ Update a static route
Normal Response code: 200
Error - 404 Not Found [When IpBlock for given ip_block_id and tenant_id does not exists or Static Route for given id does not exists]
Error - 404 Not Found [When IpBlock for given ip_block_id and tenant_id does not exists or Static Route for this id does not exists]
Error - 400 Bad Request [When field validation fails]
Error - 400 Bad Request [When field validations fail]
**JSON Response Example:**
::
{
"ip_route": {
"created_at": "2011-12-01T10:20:47",
@ -908,7 +981,7 @@ Delete a static route
====== ================================================================== ======================
Verb URI Description
====== ================================================================== ======================
DELETE /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_routes/:(id) delete a static route
DELETE /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_routes/:(id) delete a static route.
====== ================================================================== ======================
**Params:**
@ -919,7 +992,7 @@ None
Normal Response code: 200
Error - 404 Not Found [When IpBlock for given ip_block_id and tenant_id does not exists or Static Route for given id does not exists]
Error - 404 Not Found [When IpBlock for the ip_block_id and tenant_id does not exists or Static Route for this id does not exists]
Interfaces
===========================
@ -927,23 +1000,38 @@ Interfaces
Create an Interface and allocate ips on the network
---------------------------------------------------
====== ========================================================================================= ==========================================================
====== ========================================================================================= =================================================================================================================================
Verb URI Description
====== ========================================================================================= ==========================================================
POST /ipam/tenants/{tenant_id}/networks/{network_id}/interfaces/ Allocate an IPv4 and IPv6 address from a tenant's network
====== ========================================================================================= ==========================================================
====== ========================================================================================= =================================================================================================================================
POST /ipam/interfaces/ Creates a vif record, allocates a mac and optionally allocates ip address from a network if specified(requires admin privileges).
====== ========================================================================================= =================================================================================================================================
**Params:**
'id' : virtual interface id generated by caller(eg: nova) for the vnic of a device
::
{
"interface": {
"id": "virt_iface",
"device_id": "instance",
"tenant_id": "tnt",
"network": {
"id": "net1",
"addresses": ["10.0.0.2"],
"tenant_id": "network_owner_tenant_id"
}
}
}
'id' : virtual interface id generated by caller(eg: nova) for the vnic of a device.
'tenant_id' : The 'lessee' tenant for whom the interface is being created.
'device_id' : Can be a uuid, any string accepted. Is an id pointing to the instance(or any other device) on which the ip will be used.
'mac_address' : Optional, can be provided if Melange is not in charge of generating mac addresses
'mac_address' : Optional, can be provided if Melange is not in charge of generating mac addresses.
'network' : all network and ip related details Eg: 'network': { 'id': "net1", 'addresses': ['10.0.0.2'], 'tenant_id': "network_owner_tenant_id"}
'network' : all network and ip related details.
**Response Codes:**
@ -993,11 +1081,11 @@ Error - 400 Bad Request [When required parameters are not present or field val
Get details of interface
------------------------
====== ======================================================================================== ========================================================
====== ======================================================================================== =========================================================
Verb URI Description
====== ======================================================================================== ========================================================
GET /ipam/tenants/{tenant_id}/networks/{network_id}/interfaces/{vif_id} Get interface details along with all ips allocated on it
====== ======================================================================================== ========================================================
====== ======================================================================================== =========================================================
GET /ipam/tenants/{tenant_id}/interfaces/{vif_id} Get interface details along with all ips allocated on it.
====== ======================================================================================== =========================================================
**Params:**
@ -1049,7 +1137,7 @@ Delete interface
====== ======================================================================================== ========================================================
Verb URI Description
====== ======================================================================================== ========================================================
DELETE /ipam/tenants/{tenant_id}/networks/{network_id}/interfaces/{vif_id} delete interface along with all ips allocated on it
DELETE /ipam/tenants/{tenant_id}/networks/{network_id}/interfaces/{vif_id} delete interface along with all ips allocated on it.
====== ======================================================================================== ========================================================
**Params:**
@ -1069,15 +1157,15 @@ Instance Interfaces
Create all interfaces for an instance and allocate ips for the interfaces
-------------------------------------------------------------------------
====== ========================================================================================= =================================================================
====== ========================================================================================= ==================================================================
Verb URI Description
====== ========================================================================================= =================================================================
PUT /ipam/instances/{instance_id}/interfaces/ Create interfaces, allocate macs and ips on all networks provided
====== ========================================================================================= =================================================================
====== ========================================================================================= ==================================================================
PUT /ipam/instances/{instance_id}/interfaces/ Create interfaces, allocate macs and ips on all networks provided.
====== ========================================================================================= ==================================================================
**Params:**
'instance_id' : Can be a uuid, any string accepted. Is an id pointing to the instance(or any other device) on which the ip will be used.
{instance_id} in URI can be a uuid, any string accepted. Is an id pointing to the instance(or any other device) on which the ip will be used.
**Params Body Example:**
@ -1090,15 +1178,14 @@ Create all interfaces for an instance and allocate ips for the interfaces
{"network": {"id": "public_net1", "tenant_id": "RAX"}, "mac_address": null},
{"network": {"id": "public_net2", "tenant_id": "RAX"}, "mac_address": null},
]
}
}
}
'tenant_id' : The 'lessee' tenant for whom the interface is being created.
'network' : all network and ip related details Eg: 'network': { 'id': "net1", 'addresses': ['10.0.0.2'], 'tenant': 'the_network_tenant'}
'network' : all network and ip related details.
'mac_address' : Optional, can be provided if Melange is not in charge of generating mac addresses
'mac_address' : Optional, can be provided if Melange is not in charge of generating mac addresses.
**Response Codes:**
@ -1157,11 +1244,11 @@ Error - 400 Bad Request [When required parameters are not present or field val
Get details of all interfaces on the instance
---------------------------------------------
====== ======================================================================================== ===========================================================================
====== ======================================================================================== ============================================================================
Verb URI Description
====== ======================================================================================== ===========================================================================
GET /ipam/instances/{instance_id}/interfaces/ Get all interface details of an instance along with all ips allocated on it
====== ======================================================================================== ===========================================================================
====== ======================================================================================== ============================================================================
GET /ipam/instances/{instance_id}/interfaces/ Get all interface details of an instance along with all ips allocated on it.
====== ======================================================================================== ============================================================================
**Params:**
@ -1219,11 +1306,11 @@ Error - 404 Not Found [When interface is not found]
Delete all interfaces of the instance
-------------------------------------
====== ======================================================================================== =================================================================
====== ======================================================================================== ==================================================================
Verb URI Description
====== ======================================================================================== =================================================================
DELETE /ipam/instances/{instance_id}/interfaces delete all instance interfaces along with all ips allocated on it
====== ======================================================================================== =================================================================
====== ======================================================================================== ==================================================================
DELETE /ipam/instances/{instance_id}/interfaces delete all instance interfaces along with all ips allocated on it.
====== ======================================================================================== ==================================================================
**Params:**
@ -1246,7 +1333,7 @@ Allocate address from tenant's network
====== ========================================================================================= ==========================================================
Verb URI Description
====== ========================================================================================= ==========================================================
POST /ipam/tenants/{tenant_id}/networks/{network_id}/interfaces/{interface_id}/ip_allocations Allocate an IPv4 and IPv6 address from a tenant's network
POST /ipam/tenants/{tenant_id}/networks/{network_id}/interfaces/{interface_id}/ip_allocations Allocate an IPv4 and IPv6 address from a tenant's network.
====== ========================================================================================= ==========================================================
**Params:**
@ -1642,7 +1729,16 @@ Create an IP Policy for a tenant
**Params:**
'name' : [Mandatory] Name of the policy.
::
{
"policy": {
"name": "infrastructure"
"description": "Policy to disallow allocation of infrastruture ips"
}
}
'name' : Name of the policy.[Mandatory]
'description' : Small description about the policy.
@ -1674,11 +1770,20 @@ Update an IP Policy for a tenant
====== ======================================== ===================================================
Verb URI Description
====== ======================================== ===================================================
PUT /ipam/tenants/{tenant_id}/policies/:(id) Update name or descritopn of a tenant's ip policy
PUT /ipam/tenants/{tenant_id}/policies/:(id) Update name or descritopn of a tenant's ip policy.
====== ======================================== ===================================================
**Params:**
::
{
"policy": {
"name": "infrastructure"
"description": "Policy to disallow allocation of infrastruture ips"
}
}
'name' : Name of the policy.
'description' : Small description about the policy.
@ -1714,12 +1819,12 @@ Delete an IP Policy for a tenant
====== ======================================== =============================
Verb URI Description
====== ======================================== =============================
DELETE /ipam/tenants/{tenant_id}/policies/:(id) Delete a tenant's ip policy
DELETE /ipam/tenants/{tenant_id}/policies/:(id) Delete a tenant's ip policy
====== ======================================== =============================
**Params:**
None
None
**Response Codes:**
@ -1769,14 +1874,14 @@ Error - 404 Not Found [When policy doesn't exist]
}
Get details of a tenant's policy's unusable ip range
Get details of a policy's unusable ip range
----------------------------------------------------
====== ================================================================= ======================================================
Verb URI Description
====== ================================================================= ======================================================
GET /ipam/tenants/{tenant_id}/policies/{policy_id}/unusable_ip_ranges Get details of a tenant's policy's unusable ip range.
GET /ipam/tenants/{tenant_id}/policies/{policy_id}/unusable_ip_ranges Get details of a policy's unusable ip range.
====== ================================================================= ======================================================
**Params:**
@ -1817,6 +1922,15 @@ Create a unusable ip range in tenant's policy
**Params:**
::
{
"ip_range": {
"offset": "10",
"length": "2",
}
}
'offset': integer [Mandatory, Can be +ve or -ve integer]
'length' : integer [Mandatory, Should be +ve integer]
@ -1832,7 +1946,6 @@ Error - 404 Not Found [When Policy doesn't exist]
::
{
"ip_range": {
"created_at": "2011-12-01T10:26:23",
@ -1844,18 +1957,27 @@ Error - 404 Not Found [When Policy doesn't exist]
}
}
Update details of a tenant's policy's unusable ip range
Update details of a policy's unusable ip range
-------------------------------------------------------
====== ======================================================================= ========================================================
Verb URI Description
====== ======================================================================= ========================================================
PUT /ipam/tenants/{tenant_id}/policies/{policy_id}/unusable_ip_ranges/:(id) Update details of a tenant's policy's unusable IP range
PUT /ipam/tenants/{tenant_id}/policies/{policy_id}/unusable_ip_ranges/:(id) Update details of a policy's unusable IP range
====== ======================================================================= ========================================================
**Params:**
::
{
"ip_range": {
"offset": "10",
"length": "2",
}
}
'offset': integer [Can be +ve or -ve integer]
'length' : integer [Should be +ve integer]
@ -1871,7 +1993,6 @@ Error - 404 Not Found [When Policy or IP range doesn't exist]
::
{
"ip_range": {
"created_at": "2011-12-01T10:26:23",
@ -1883,14 +2004,14 @@ Error - 404 Not Found [When Policy or IP range doesn't exist]
}
}
Delete a tenant's policy's unusable ip range
Delete a policy's unusable ip range
--------------------------------------------
====== ======================================================================= =============================================
Verb URI Description
====== ======================================================================= =============================================
DELETE /ipam/tenants/{tenant_id}/policies/{policy_id}/unusable_ip_ranges/:(id) Delete a tenant's policy's unusable ip range
DELETE /ipam/tenants/{tenant_id}/policies/{policy_id}/unusable_ip_ranges/:(id) Delete a policy's unusable ip range
====== ======================================================================= =============================================
**Params:**
@ -2069,12 +2190,89 @@ None
Normal Response code: 200
Error - 404 Not Found [When Policy or IP octet doesn't exist]
To Be Done:
===========
Mac Ranges
================================
* Add 'self' and 'bookmark' links in resource details.
List all mac ranges
--------------------
====== ================================================================= ============================
Verb URI Description
====== ================================================================= ============================
GET /ipam/mac_address_ranges List all mac address ranges.
====== ================================================================= ============================
**Params:**
None
**Response Codes:**
Normal Response code: 200
**JSON Response Example:**
::
{
"mac_address_ranges": [
{
"created_at": "2011-12-01T10:37:30",
"id": "0e7a873e-0fe6-41e9-9f58-1182db01309c",
"cidr": "BC:76:4E:20:00:00/27",
"updated_at": "2011-12-01T10:37:30"
},
{
"created_at": "2011-12-01T10:37:30",
"id": "0e7a873e-0fe6-41e9-9f58-1182db01309c",
"cidr": "CD:76:4E:20:00:00/27",
"updated_at": "2011-12-01T10:37:30"
},
]
}
Create a mac address range
--------------------------
====== ================================================================= ===========================
Verb URI Description
====== ================================================================= ===========================
POST /ipam/mac_address_ranges Create a mac address range.
====== ================================================================= ===========================
**Params:**
::
{
"mac_address_range": {
"cidr": "ab-bc-cd-12-23-34/40"
}
}
'cidr': The "cidr" that defines the range of mac addresses
**Response Codes:**
Normal Response code: 201
Error - 400 Bad Request [When required parameters are not present or field validation fails]
**JSON Response Example:**
::
{
"mac_address_range": {
"created_at": "2011-12-01T10:37:30",
"id": "0e7a873e-0fe6-41e9-9f58-1182db01309c",
"cidr": "BC:76:4E:20:00:00/27",
"updated_at": "2011-12-01T10:37:30"
}
}
* Versions atom feed