diff --git a/v1.0/neutron-api-guide.xml b/v1.0/neutron-api-guide.xml index 372140d..05b414e 100644 --- a/v1.0/neutron-api-guide.xml +++ b/v1.0/neutron-api-guide.xml @@ -60,8 +60,8 @@ This document is intended for software developers interested in developing applications using the OpenStack Quantum Layer-2 Networking Service - (API). - + (API). + @@ -82,7 +82,7 @@ Fixed incorrect mention of &PUT; verb in . Verb changed to &DELETE;. + />. Verb changed to &DELETE;. Fixed formatting issues in request @@ -95,7 +95,7 @@ - Initial release. + Initial release. First edition of this document. @@ -114,10 +114,10 @@ home page () and the NetStack home page (). + xlink:href="http://wiki.openstack.org/Network"/>). We welcome feedback, comments, and bug reports at bugs.launchpad.net/Quantum. + >bugs.launchpad.net/Quantum.
Intended Audience This guide is intended to assist software developers @@ -128,7 +128,7 @@ (Nova), and the integration between the two. The user should also have access to a plugin providing the implementation for the API described in this document. - Two plugins are included in the Quantum distribution: + Two plugins are included in the Quantum distribution: Openvswitch - Implementing Quantum API with Open vSwitch @@ -140,7 +140,7 @@ You should also be familiar with: - + ReSTful web services @@ -178,7 +178,7 @@ Corrected verb in delete networks API operation to - DELETE from PUT. + DELETE from PUT. @@ -187,7 +187,7 @@ - + September 22, 2011 @@ -205,8 +205,8 @@
-->
- Glossary - + Glossary + Term @@ -221,7 +221,7 @@ software that wants to connect to the network services provided by Quantum. An entity can use Quantum network services by - implementing a VIF. + implementing a VIF. Layer-2 network @@ -230,7 +230,7 @@ virtual Ethernet network managed by the Quantum service. For the time being, Quantum will manage only Ethernet - networks. + networks. @@ -241,7 +241,7 @@ such as, a collection of virtual ports sharing network connectivity. In the Quantum terminology, a network is always a - Layer-2 network. + Layer-2 network. @@ -250,7 +250,7 @@ Software component that provides the actual implementation for - Quantum APIs. + Quantum APIs. @@ -258,7 +258,7 @@ A port on the virtual network switch represented by a Quantum - virtual Layer-2 network. + virtual Layer-2 network. @@ -276,26 +276,26 @@ The association of an interface identifier to a logical port, which represents 'plugging' an interface - into a port. + into a port. - +
-
- Theory of Operation - This section presents the objects and semantics of - Quantum’s logical model. Quantum abstracts the physical implementation of the network, +
+ Theory of Operation + This section presents the objects and semantics of + Quantum’s logical model.Quantum abstracts the physical implementation of the network, allowing plugins to configure and manage physical resources. Quantum is a standalone service, in that it requires no other project within OpenStack to function - correctly. - Further Quantum is agnostic to the entities it allows to connect. - While we anticipate Nova instances will be a heavy user of - Quantum, any entity can make use of any Quantum created network - so long as it provides an appropriate interfaces for exposing VIFs - to Quantum itself. - Virtual Interfaces (VIF) in the logical model are analogous to + correctly. + Further Quantum is agnostic to the entities it allows to connect. + While we anticipate Nova instances will be a heavy user of + Quantum, any entity can make use of any Quantum created network + so long as it provides an appropriate interfaces for exposing VIFs + to Quantum itself. + Virtual Interfaces (VIF) in the logical model are analogous to physical network interface cards (NICs). VIFs are typically owned a managed by an external service; for instance when Quantum is used for building OpenStack @@ -304,23 +304,23 @@ ports. A port is analogous to a port on a network switch, and it has an administrative state. Quantum API allows for controlling the administrative state of - the port, which can be either 'DOWN' or 'ACTIVE'. - When a VIF is attached to a port the Quantum API creates - an attachment object, which specifies the fact that a VIF with a - given identifier is plugged into the port. - - The Quantum plugin is responsible for managing virtual and/or - physical network switches to implement the network forwarding - connectivity described by the Quantum networks, ports, and - attachments. - - VIFs attached to ACTIVE ports are required to have access to the - L2 broadcast domain defined by the network where they are attached. - Each VIF shall be capable of exchanging traffic with all other - entities attached through ACTIVE ports. - -
- + the port, which can be either 'DOWN' or 'ACTIVE'.
+ When a VIF is attached to a port the Quantum API creates + an attachment object, which specifies the fact that a VIF with a + given identifier is plugged into the port. + + The Quantum plugin is responsible for managing virtual and/or + physical network switches to implement the network forwarding + connectivity described by the Quantum networks, ports, and + attachments. + + VIFs attached to ACTIVE ports are required to have access to the + L2 broadcast domain defined by the network where they are attached. + Each VIF shall be capable of exchanging traffic with all other + entities attached through ACTIVE ports. + +
+ @@ -331,30 +331,30 @@
Network - Each tenant can define one or more networks. A network is a virtual - isolated layer-2 broadcast domain reserved to the tenant. - A tenant can create several ports for a network, and plug - virtual interfaces into these ports. - + Each tenant can define one or more networks. A network is a virtual + isolated layer-2 broadcast domain reserved to the tenant. + A tenant can create several ports for a network, and plug + virtual interfaces into these ports. +
Port - A port represents a virtual switch port on a logical - network switch where all the interfaces attached to a given - network are connected. - - A port has an administrative state which - is either 'DOWN' or 'ACTIVE'. Ports which are administratively - down will not be able to receive/send traffic. - + A port represents a virtual switch port on a logical + network switch where all the interfaces attached to a given + network are connected. + + A port has an administrative state which + is either 'DOWN' or 'ACTIVE'. Ports which are administratively + down will not be able to receive/send traffic. +
Attachment An attachment represents an interface plugged into a logical port. At any time at most one attachment can - be plugged into a given port. An attachment typically identified a virtual network interface. + be plugged into a given port.An attachment typically identified a virtual network interface. Network interfaces are typically defined in an external services which uses Quantum, for instance the - OpenStack Compute service, Nova. + OpenStack Compute service, Nova.
@@ -370,51 +370,51 @@ Additionally, providers may offer support for conditional &GET; requests using ETags, or they may send a redirect in response to a &GET; request. Clients should be written to - account for these differences. + account for these differences.
Authentication The current version of the OpenStack Quantum service does not require that each request will include the - credentials of the user submitting the request. However, Quantum deployments can support several authentication + credentials of the user submitting the request.However, Quantum deployments can support several authentication schemes (OAuth, Basic Auth, Token). The authentication scheme used is determined by the provider of the Quantum service. Please contact your provider to determine the best way to authenticate against this - API. + API. Ideally, middleware modules for Authentication and/or Authorization should be inserted in the first stages of the Quantum pipeline (available in etc/quantum.conf). Some authentication schemes may require that the - API operate using SSL over HTTP (HTTPS). + API operate using SSL over HTTP (HTTPS).
- URI structure - - Each request to the OpenStack Quantum API must refer to a - specific version of the API itself, and it must also - identify the tenant for which the request is being sent. - - - This information is specified in the URI. The URI - for each request to the OpenStack Quantum API should be - prefixed with the API version identifier and the tenant - identifier, as follows: - - - /{Quantum-version}/tenants/{tenant-id}/{Quantum-API-entity} - - - As an example, the following URI represents a request for - retrieving all the networks configured for the tenant "ABC" - using the 1.0 API. - - - /v1.0/ABC/networks - + URI structure + + Each request to the OpenStack Quantum API must refer to a + specific version of the API itself, and it must also + identify the tenant for which the request is being sent. + + + This information is specified in the URI. The URI + for each request to the OpenStack Quantum API should be + prefixed with the API version identifier and the tenant + identifier, as follows: + + + /{Quantum-version}/tenants/{tenant-id}/{Quantum-API-entity} + + + As an example, the following URI represents a request for + retrieving all the networks configured for the tenant "ABC" + using the 1.0 API. + + + /v1.0/ABC/networks +
Request/Response Types @@ -424,10 +424,10 @@ using the Content-Type header, the Accept header or adding an .xml or .json extension - to the request URI. If conflicting formats are specified in headers and/or format + to the request URI.If conflicting formats are specified in headers and/or format extensions, the latter takes precedence. XML is currently the default format for both requests and - responses. + responses. @@ -476,7 +476,7 @@ Content-Length 59 Content-Type header always takes precedence over the Accept header. The value of the latter header is therefore ignored in the - example above. + example above. Request/Response with Headers: XML Request: @@ -515,41 +515,41 @@ Content-Length 59
Asynchronous Behavior by Quantum Plugins - - The Quantum API presents a logical model of network connectivity - consisting of networks, ports, and attachments. It is up to - the Quantum plugin to communicate with all managed virtual - and/or physical switches to ensure that these devices implement - packet forwarding behavior consistent with the logical model. - - The plugin's task of mapping from the logical model to the physical - world might happen asynchronously. This means that when an API - client modifies the logical model using an HTTP POST, PUT, - or DELETE, the API call may return prior to the plugin performing - any modifications to underlying virtual and/or physical switching - devices. The only guarantee an API client has is that all - subsequent API calls will properly reflect the changed logical model. - - As a concrete example, consider the case where a client uses an HTTP - PUT to set the attachment for a port. There is no guarantee that - packets sent by the interface named in the attachment will be - forwarded immediately once the HTTP call returns. - However, there is a guarantee that a subsequent HTTP GET to view - the attachment on that port would return the new attachment value. - - - Future versions of the API may expose a notion of an "operational status" - on a logical entity like a network or port. - - This would indicate whether the Quantum plugin had successfully - configured virtual and/or physical switches in order to implement - the network connectivity described by that element of the logical - model. - - For example, a port might have an operational status of "DOWN" - because the VM interface specified as an attachment was not - currently running on any physical server. - + + The Quantum API presents a logical model of network connectivity + consisting of networks, ports, and attachments. It is up to + the Quantum plugin to communicate with all managed virtual + and/or physical switches to ensure that these devices implement + packet forwarding behavior consistent with the logical model. + + The plugin's task of mapping from the logical model to the physical + world might happen asynchronously. This means that when an API + client modifies the logical model using an HTTP POST, PUT, + or DELETE, the API call may return prior to the plugin performing + any modifications to underlying virtual and/or physical switching + devices. The only guarantee an API client has is that all + subsequent API calls will properly reflect the changed logical model. + + As a concrete example, consider the case where a client uses an HTTP + PUT to set the attachment for a port. There is no guarantee that + packets sent by the interface named in the attachment will be + forwarded immediately once the HTTP call returns. + However, there is a guarantee that a subsequent HTTP GET to view + the attachment on that port would return the new attachment value. + + + Future versions of the API may expose a notion of an "operational status" + on a logical entity like a network or port. + + This would indicate whether the Quantum plugin had successfully + configured virtual and/or physical switches in order to implement + the network connectivity described by that element of the logical + model. + + For example, a port might have an operational status of "DOWN" + because the VM interface specified as an attachment was not + currently running on any physical server. +
Versions @@ -585,8 +585,7 @@ Content-Type application/xml - - + Version List Request/Response: JSON @@ -609,26 +608,26 @@ Content-Type application/json They allow the introduction of new - features in the API without requiring a - version change; + features in the API without requiring a + version change; - They allow the introduction of vendor specific - niche functionality + They allow the introduction of vendor specific + niche functionality - They act as a proving ground for experimental - functionalities which might be included in a future - version of the API. + They act as a proving ground for experimental + functionalities which might be included in a future + version of the API. - Applications can programmatically + Applications can programmatically determine what extensions are available by performing a &GET; on the /v1.0/extensions URI. Note that this is a versioned request — that is, @@ -645,37 +644,37 @@ Content-Type application/json - - Extensions may also be queried individually by their unique alias by performing - a &GET; on the /v1.0/extensions/alias_name. This provides the simplest - method of checking if an extension is available as an unavailable extension will issue an - itemNotFound (404) response. - - + + Extensions may also be queried individually by their unique alias by performing + a &GET; on the /v1.0/extensions/alias_name. This provides the simplest + method of checking if an extension is available as an unavailable extension will issue an + itemNotFound (404) response. + + Existing core API resources can be extended with new actions or extra data in request/response of existing actions. - Further new resources can also be added as extensions. - Extensions usually have vendor specific tags that prevent clash with other extensions. - Availability of an extension will vary with deployments and the specific plugin in use. + Further new resources can also be added as extensions. + Extensions usually have vendor specific tags that prevent clash with other extensions. + Availability of an extension will vary with deployments and the specific plugin in use. - + Applications should be prepared to ignore response data that contains extension elements. Applications should also verify that an extension is available before submitting an extended - request. + request.
Faults - - When an error occurs at request time, the system - will return an HTTP error response code denoting - the type of error. The system will also return - additional information about the fault in the body - of the response. - + + When an error occurs at request time, the system + will return an HTTP error response code denoting + the type of error. The system will also return + additional information about the fault in the body + of the response. + "Network not found" fault Response (XML) @@ -685,7 +684,7 @@ Content-Type application/json "Network not found" fault Response (XML) - The error code is returned in the body of the response for convenience. The + The error code is returned in the body of the response for convenience. The message section returns a human-readable message that is appropriate for display to the end user. The detail section is optional and may contain information—for example, a stack trace—to assist in tracking down an error. @@ -711,7 +710,7 @@ Content-Type application/json
+ to parse the contents of the request body. @@ -722,57 +721,57 @@ Content-Type application/json identity service, this might mean that either no authentication token has been supplied in the request, or that the token - itself is either invalid or expired. + itself is either invalid or expired. + execute the requested operation. + does not exist on the Quantum API server. + been removed. + its ports. + removed. + currently supported. - + + attachment plugged in it. - + + plugged into another port.
JSON and XML Response Formats
BadRequest 400 Malformed request body. The Quantum service is unable - to parse the contents of the request body.
Unauthorized
Forbidden 403 The user does not have the necessary rights to - execute the requested operation.
ItemNotFound 404 The requested resource - does not exist on the Quantum API server.
NetworkNotFound 420 The specified network has not been created or has - been removed.
NetworkInUse 421 The specified network has attachments plugged into one or more of - its ports.
PortNotFound 430 The specified port has not been created or has been - removed.
RequestedStateInvalid 431 Indicates a request to change port to an administrative state not - currently supported.
PortInUse --> 432 The specified port cannot be removed as there is an - attachment plugged in it.
AlreadyAttached 440 Attachment is already - plugged into another port.
@@ -824,7 +823,7 @@ Content-Type application/json currently defined in Quantum for the tenant specified in the request URI. The list provides the unique identifier of each network configured - for the tenant specified in the resource URI. + for the tenant specified in the resource URI. TenantId is a unique tenant @@ -841,11 +840,11 @@ Content-Type application/json Response: - + Networks List Request/Response (JSON) Request: - GET /tenants/XYZ/networks.json + GET /tenants/XYZ/networks.json Response: @@ -867,7 +866,7 @@ Content-Type application/json Lists more detailed information about networks configured in Quantum for a given tenant, - identified by tenant-id. + identified by tenant-id. @@ -900,7 +899,7 @@ Content-Type application/json Networks List Details Request/Response (JSON) Request: - GET /tenants/XYZ/networks/detail.json + GET /tenants/XYZ/networks/detail.json Response: @@ -923,7 +922,7 @@ Content-Type application/json specific network, identified by network-id, for a given tenant, identified by - tenant-id. + tenant-id. @@ -936,10 +935,10 @@ Content-Type application/json (403), NetworkNotFound (420) - This operation returns the identifier and the name for a - specific network configured in Quantum. - - This operation does not require a request body. + This operation returns the identifier and the name for a + specific network configured in Quantum. + + This operation does not require a request body. Show Network Request/Response (XML) Request: @@ -951,7 +950,7 @@ Content-Type application/json Show Network Request/Response (JSON) Request: - GET /tenants/XYZ/networks/8bec1293-16bd-4568-ba75-1f58bec0b4c3.json + GET /tenants/XYZ/networks/8bec1293-16bd-4568-ba75-1f58bec0b4c3.json Response: @@ -974,7 +973,7 @@ Content-Type application/json for a specific network, identified by network-id, for a given tenant, identified by - tenant-id. + tenant-id. @@ -987,10 +986,10 @@ Content-Type application/json (403), NetworkNotFound (420) - This operation returns detailed information concerning the - network specified in the request URI. Returned data include - the full list of ports configured for the network - and attachments plugged into such ports. + This operation returns detailed information concerning the + network specified in the request URI. Returned data include + the full list of ports configured for the network + and attachments plugged into such ports. If no attachment is plugged into a port, the response will not include an attachment child element for that @@ -1010,7 +1009,7 @@ Content-Type application/json Show Network Details Request/Response (JSON) Request: - GET /tenants/XYZ/networks/8bec1293-16bd-4568-ba75-1f58bec0b4c3/detail.json + GET /tenants/XYZ/networks/8bec1293-16bd-4568-ba75-1f58bec0b4c3/detail.json Response: @@ -1045,33 +1044,33 @@ Content-Type application/json (401), Forbidden (403) - This operation creates a Layer-2 network in - Quantum based on the information provided in the request body. - - Quantum validates the request, and dispatches it to the plugin, - and then returns the unique identifier of the network to the - caller. Although the network API entity can be immediately used - for other operations, this does not guarantee that the network - will be available when the API call returns, as this depends - on the particular plugin implementation. - - If the validation phase fails, the network object is not - created at all, and a 400 error is returned to the caller. - - - - The Quantum API v1.0 does not provide an interface - for checking the progress of asynchronous operations - performed by plugins. - - - This will be addressed in future releases of the - Quantum API. - - + This operation creates a Layer-2 network in + Quantum based on the information provided in the request body. + + Quantum validates the request, and dispatches it to the plugin, + and then returns the unique identifier of the network to the + caller. Although the network API entity can be immediately used + for other operations, this does not guarantee that the network + will be available when the API call returns, as this depends + on the particular plugin implementation. + + If the validation phase fails, the network object is not + created at all, and a 400 error is returned to the caller. + + + + The Quantum API v1.0 does not provide an interface + for checking the progress of asynchronous operations + performed by plugins. + + + This will be addressed in future releases of the + Quantum API. + + - The body for this request must contain a Network object - specifying a symbolic name for the network. + The body for this request must contain a Network object + specifying a symbolic name for the network. Create Network Request/Response (XML) @@ -1085,13 +1084,13 @@ Content-Type application/json Create Network Request/Response (JSON) Request: - POST /tenants/XYZ/networks.json + POST /tenants/XYZ/networks.json Response:
-
+
Update Network @@ -1123,16 +1122,16 @@ Content-Type application/json (403) NetworkNotFound (420) - This operation renames a Quantum network using the data - provided in the request body. - + This operation renames a Quantum network using the data + provided in the request body. + - The body for this request must contain a Network object - specifying a symbolic name for the network. The network - entity specified in the request body can contain the - network's identifier as well, even if it is not required, - as the identifier must be expressed on the URI; in this - case the identifier in the request body will be ignored. + The body for this request must contain a Network object + specifying a symbolic name for the network. The network + entity specified in the request body can contain the + network's identifier as well, even if it is not required, + as the identifier must be expressed on the URI; in this + case the identifier in the request body will be ignored. Update Network Request (XML) @@ -1146,7 +1145,7 @@ Content-Type application/json Update Network Request (JSON) Request: - PUT /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1.json + PUT /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1.json Response: No data is returned in the @@ -1189,14 +1188,14 @@ Content-Type application/json is at least one port on the network with attachments plugged in it. If all ports on the networks are unattached, they will be destroyed - together with the network itself. - As for the create operation there is no guarantee that the + together with the network itself. + As for the create operation there is no guarantee that the plugin will have completely removed the network when the call returns. Quantum forwards the request to the plugin, which will then destroy the - network. - This operation cannot be undone. - This operation does not require a request body. + network. + This operation cannot be undone. + This operation does not require a request body. Delete Network Request (XML) Request: @@ -1208,7 +1207,7 @@ Content-Type application/json Delete Network Request (JSON) Request: - DELETE /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1.json + DELETE /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1.json Response: No data is returned in the response body. @@ -1221,7 +1220,7 @@ Content-Type application/json This section describes the operations exposed by Quantum API for manipulating port resources. -
+
List Ports @@ -1235,11 +1234,11 @@ Content-Type application/json &GET; /tenants/tenant-id/networks/ - network-id/ports + network-id/ports - Lists all the ports currently defined for a Quantum network, - identified by network-id - + Lists all the ports currently defined for a Quantum network, + identified by network-id + @@ -1254,7 +1253,7 @@ Content-Type application/json configured for a network. For each port the response reports its unique identifier. If no ports have been created on the network an empty - list will be returned. + list will be returned. This operation does not require a request body. Port List Request/Response (XML) @@ -1263,16 +1262,16 @@ Content-Type application/json Response: - + Port List Request/Response (JSON) Request: - GET /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports.json + GET /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports.json Response:
-
+
List Ports Details @@ -1306,7 +1305,7 @@ Content-Type application/json Response for each port includes its identifier and the current administrative state. If no ports have been created on the network an empty list will be - returned. + returned. This operation does not require a request body. Port List Details Request/Response (XML) @@ -1315,17 +1314,17 @@ Content-Type application/json Response: - + Port List Details Request/Response (JSON) Request: - GET /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/detail.json + GET /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/detail.json Response:
-
+
Show Port @@ -1339,14 +1338,14 @@ Content-Type application/json &GET; /tenants/tenant-id/networks/ - network-id/ports/ - port-id + network-id/ports/ + port-id Retrieves the port port-id configured for the network network-id belonging to the tenant - tenant-id. + tenant-id. @@ -1361,7 +1360,7 @@ Content-Type application/json This operation returns the unique identifier and the current administrative state for a specific port configured for the network specified in the - request URI. + request URI. This operation does not require a request body. Show Port Request/Response (XML) @@ -1370,11 +1369,11 @@ Content-Type application/json Response: - + Show Port Request/Response (JSON) Request: - GET /tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/98017ddc-efc8-4c25-a915-774b2a633855.json + GET /tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/98017ddc-efc8-4c25-a915-774b2a633855.json Response: @@ -1393,15 +1392,15 @@ Content-Type application/json &GET; /tenants/tenant-id/networks/ - network-id/ports/ - port-id/detail + network-id/ports/ + port-id/detail Retrieves detailed information for the port port-id configured for the network network-id belonging to the tenant - tenant-id. + tenant-id. @@ -1416,8 +1415,8 @@ Content-Type application/json This operation provides at least the identifier and the current administrative state for specific - port configured for a given network. If an attachment is plugged into the port, this operation will - return the identifier of the attachment as well. + port configured for a given network.If an attachment is plugged into the port, this operation will + return the identifier of the attachment as well. This operation does not require a request body. Show Port Details Request/Response @@ -1431,12 +1430,12 @@ Content-Type application/json <title>Show Port Details Request/Response (JSON) Request: - GET /tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/98017ddc-efc8-4c25-a915-774b2a633855/detail.json + GET /tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/98017ddc-efc8-4c25-a915-774b2a633855/detail.json Response:
-
+
Create Port @@ -1450,7 +1449,7 @@ Content-Type application/json &POST; /tenants/tenant-id/networks/ - network-id/ports + network-id/ports Creates a port on the network specified in the request URI, identified by @@ -1473,27 +1472,27 @@ Content-Type application/json request body. Quantum validates the request, and dispatches the request to the plugin, which creates the port and attaches it to the - appropriate network. This operation could not be implemented for some plugins as the + appropriate network.This operation could not be implemented for some plugins as the number of ports available might be fixed when the - network is created. If the validation phase fails, the port object is not created at + network is created.If the validation phase fails, the port object is not created at all, and a BadRequest error is - returned to the caller. The operation returns a port with an identifier, and set its + returned to the caller.The operation returns a port with an identifier, and set its administrative state set to DOWN, unless a state has been explicitly specified in - the request body. - This operation does not guarantee that the port + the request body. + This operation does not guarantee that the port has been actually created when the calls returns, as the plugin might still be performing the necessary operations on the network infrastructure. However, the port entity can be - immediately used for API operations. - The request body is not required for this operation, but it can + immediately used for API operations. + The request body is not required for this operation, but it can optionally contain the administrative state for the port being created, which can be either DOWN or ACTIVE. The administrative state should be encapsulated into a Port object within the request body, as shown in - the example below. + the example below. Create Port Request/Response (XML) Request: @@ -1505,13 +1504,13 @@ Content-Type application/json Create Port Request/Response (JSON) Request: - POST /tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports.json - + POST /tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports.json + Response:
-
+
Update Port @@ -1548,22 +1547,22 @@ Content-Type application/json RequestedStateInvalid (431) - This operation sets the administrative state for a port. - Currently Quantum recognizes two port states: - DOWN and ACTIVE. In the - DOWN state a port will not provide - connectivity to the network. - - This feature allows the tenant the ability to take entities - offline without affecting the logical topology. - - The operation will return the RequestedStateInvalid - error code if the specified administrative state is not either - DOWN or ACTIVE. - - The operation's request body must contain a Port object with - the new administrative state for the port. - + This operation sets the administrative state for a port. + Currently Quantum recognizes two port states: + DOWN and ACTIVE. In the + DOWN state a port will not provide + connectivity to the network. + + This feature allows the tenant the ability to take entities + offline without affecting the logical topology. + + The operation will return the RequestedStateInvalid + error code if the specified administrative state is not either + DOWN or ACTIVE. + + The operation's request body must contain a Port object with + the new administrative state for the port. + Update Port Request (XML) Request: @@ -1571,15 +1570,15 @@ Content-Type application/json Response: - No data is returned in the response + No data is returned in the response body. Update Port Request (JSON) Request: - PUT tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/98017ddc-efc8-4c25-a915-774b2a633855.json - - + PUT tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/98017ddc-efc8-4c25-a915-774b2a633855.json + + Response: No data is returned in the response body. @@ -1604,7 +1603,7 @@ Content-Type application/json identified by port-id on the network identified by - network-id. + network-id. @@ -1622,29 +1621,29 @@ Content-Type application/json PortInUse (432) - This operation removes a port from a Quantum network. - This operation might not be available for plugins in - which the number of ports is fixed at network creation; - in this case ports should not be deleted, just as they - cannot be created. - - The operation is not recoverable and will fail if an - attachment is plugged into the port. # - - This operation does not require a request body. - + This operation removes a port from a Quantum network. + This operation might not be available for plugins in + which the number of ports is fixed at network creation; + in this case ports should not be deleted, just as they + cannot be created. + + The operation is not recoverable and will fail if an + attachment is plugged into the port. # + + This operation does not require a request body. + Delete Port Request (XML) Request: DELETE tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/98017ddc-efc8-4c25-a915-774b2a633855.xml Response: - No data is returned in the response + No data is returned in the response body.. Delete Port Request (JSON) Request: - DELETE tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/98017ddc-efc8-4c25-a915-774b2a633855.json + DELETE tenants/33/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/98017ddc-efc8-4c25-a915-774b2a633855.json Response: No data is returned in the response body.. @@ -1657,11 +1656,11 @@ Content-Type application/json This section describes the operations exposed by Quantum API for manipulating port attachments. - An attachment is typically a virtual network interface - belonging to a VM instance. Different kinds of resources - can be defined in the future. + An attachment is typically a virtual network interface + belonging to a VM instance. Different kinds of resources + can be defined in the future. -
+
Show Attachment for Port @@ -1679,7 +1678,7 @@ Content-Type application/json Returns the identifier of the attachment plugged into the specified port, identified by - port-id. + port-id. @@ -1694,11 +1693,11 @@ Content-Type application/json This operation returns configuration details for the attachment plugged into the port specified in the request URI. This information is a reference - to a virtual interface identifier. If no attachment is currently plugged into the port, the + to a virtual interface identifier.If no attachment is currently plugged into the port, the operation does not return any attachment identifier in the response. The response will contain an empty attachment element - with no id attribute set. + with no id attribute set. This operation does not require a request body. Show Attachment Request/Response @@ -1716,7 +1715,7 @@ Content-Type application/json <title>Show Attachment Request/Response (JSON) Request: - GET /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.json + GET /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.json Response (attachment set): @@ -1742,7 +1741,7 @@ Content-Type application/json Plugs a resource, such as a virtual network interface, into the port identified by - port-id. + port-id. @@ -1757,27 +1756,28 @@ Content-Type application/json (432), AlreadyAttached (440) This operation plugs an attachment into the port - specified in the request URL. Quantum validates the request and dispatches the request to the + specified in the request URL.Quantum validates the request and dispatches the request to the plugin. It is not guaranteed that the attached resource will be available as soon as the - operation returns. The validation can fail if: - - - An attachment with the same identifier is - already plugged in somewhere else. - - - Another attachment is already plugged into - the specified port. - - - If validation fails, the attachment is not created at all, + operation returns. + The validation can fail if: + + + An attachment with the same identifier is + already plugged in somewhere else. + + + Another attachment is already plugged into + the specified port. + + + If validation fails, the attachment is not created at all, and the appropriate error code is returned to the - caller. - If no attachment is currently plugged into the + caller. + If no attachment is currently plugged into the port, the operation does not return any attachment identifier in the response. The response will - contain an empty attachment element. + contain an empty attachment element. The request body for this network should contain a reference to the attachment to plug into the port. @@ -1785,7 +1785,7 @@ Content-Type application/json Plug Attachment Request (XML) Request: - PUT /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.xml + PUT /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.xml Response: No data is returned @@ -1794,15 +1794,15 @@ Content-Type application/json Plug Attachment Request (JSON) Request: - PUT /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.json + PUT /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.json Response: - No data is returned in the response + No data is returned in the response body. - +
-
+
Delete Attachment from Port @@ -1819,7 +1819,7 @@ Content-Type application/json Removes the attachment currently plugged into the port identified by - port-id. + port-id. @@ -1832,14 +1832,14 @@ Content-Type application/json (420), PortNotFound (430) This operation removes the specified attachment - from the port specified in the request URI. - If no attachment is currently plugged into the port, this - operation has no effect. - This operation does not require a request body. + from the port specified in the request URI. + If no attachment is currently plugged into the port, this + operation has no effect. + This operation does not require a request body. Delete Attachment Request (XML) Request: - DELETE /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.xml + DELETE /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.xml Response: No data is returned in the response body. @@ -1847,7 +1847,7 @@ Content-Type application/json Delete Attachment Request (JSON) Request: - DELETE /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.json + DELETE /tenants/XYZ/networks/158233b0-ca9a-40b4-8614-54a4a99d47d1/ports/b832be00-6553-4f69-af33-acd554e36d08/attachment.json Response: No data is returned in the response body. diff --git a/v1.0/samples/att-put-req.xml b/v1.0/samples/att-put-req.xml index cf2dbfd..a6459bf 100644 --- a/v1.0/samples/att-put-req.xml +++ b/v1.0/samples/att-put-req.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v1.0/samples/network-get-detail-res.xml b/v1.0/samples/network-get-detail-res.xml index 8d5b2d6..1f94640 100644 --- a/v1.0/samples/network-get-detail-res.xml +++ b/v1.0/samples/network-get-detail-res.xml @@ -2,13 +2,13 @@ id="8bec1293-16bd-4568-ba75-1f58bec0b4c3" name="test_network"> - - + + - \ No newline at end of file + diff --git a/v1.0/samples/network-post-req.xml b/v1.0/samples/network-post-req.xml index 6531ee9..40608da 100644 --- a/v1.0/samples/network-post-req.xml +++ b/v1.0/samples/network-post-req.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v1.0/samples/network-post-res.xml b/v1.0/samples/network-post-res.xml index 79d997b..03cfe12 100644 --- a/v1.0/samples/network-post-res.xml +++ b/v1.0/samples/network-post-res.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v1.0/samples/networks-get-detail-res.xml b/v1.0/samples/networks-get-detail-res.xml index 2f52ea4..c8df9d5 100644 --- a/v1.0/samples/networks-get-detail-res.xml +++ b/v1.0/samples/networks-get-detail-res.xml @@ -1,8 +1,8 @@ - - - \ No newline at end of file + diff --git a/v1.0/samples/port-get-detail-res.xml b/v1.0/samples/port-get-detail-res.xml index 507f23c..d0dbce8 100644 --- a/v1.0/samples/port-get-detail-res.xml +++ b/v1.0/samples/port-get-detail-res.xml @@ -1,6 +1,6 @@ - - \ No newline at end of file + + diff --git a/v1.0/samples/port-post-req.xml b/v1.0/samples/port-post-req.xml index 79f9890..4f8c1f6 100644 --- a/v1.0/samples/port-post-req.xml +++ b/v1.0/samples/port-post-req.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v1.0/samples/port-post-res.xml b/v1.0/samples/port-post-res.xml index c710d9c..f1564b8 100644 --- a/v1.0/samples/port-post-res.xml +++ b/v1.0/samples/port-post-res.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v1.0/samples/ports-get-detail-res.xml b/v1.0/samples/ports-get-detail-res.xml index ddb7923..605b98d 100644 --- a/v1.0/samples/ports-get-detail-res.xml +++ b/v1.0/samples/ports-get-detail-res.xml @@ -1,8 +1,8 @@ - - - \ No newline at end of file + diff --git a/v1.0/samples/ports-get-res.xml b/v1.0/samples/ports-get-res.xml index 1e9e0b3..73ac5a3 100644 --- a/v1.0/samples/ports-get-res.xml +++ b/v1.0/samples/ports-get-res.xml @@ -1,6 +1,6 @@ - - - \ No newline at end of file + + + diff --git a/v2.0/api_samples/subnet-get-detail-res.xml b/v2.0/api_samples/subnet-get-detail-res.xml index 507f23c..d0dbce8 100644 --- a/v2.0/api_samples/subnet-get-detail-res.xml +++ b/v2.0/api_samples/subnet-get-detail-res.xml @@ -1,6 +1,6 @@ - - \ No newline at end of file + + diff --git a/v2.0/api_samples/subnet-post-req.xml b/v2.0/api_samples/subnet-post-req.xml index 79f9890..4f8c1f6 100644 --- a/v2.0/api_samples/subnet-post-req.xml +++ b/v2.0/api_samples/subnet-post-req.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v2.0/api_samples/subnet-post-res.xml b/v2.0/api_samples/subnet-post-res.xml index c710d9c..f1564b8 100644 --- a/v2.0/api_samples/subnet-post-res.xml +++ b/v2.0/api_samples/subnet-post-res.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v2.0/api_samples/subnets-get-detail-res.xml b/v2.0/api_samples/subnets-get-detail-res.xml index ddb7923..605b98d 100644 --- a/v2.0/api_samples/subnets-get-detail-res.xml +++ b/v2.0/api_samples/subnets-get-detail-res.xml @@ -1,8 +1,8 @@ - - - \ No newline at end of file + diff --git a/v2.0/api_samples/subnets-get-res.xml b/v2.0/api_samples/subnets-get-res.xml index 1e9e0b3..73ac5a3 100644 --- a/v2.0/api_samples/subnets-get-res.xml +++ b/v2.0/api_samples/subnets-get-res.xml @@ -1,6 +1,6 @@ - - - \ No newline at end of file + + + diff --git a/v2.0/ch_neutron_overview.xml b/v2.0/ch_neutron_overview.xml index 1e06b96..1438705 100644 --- a/v2.0/ch_neutron_overview.xml +++ b/v2.0/ch_neutron_overview.xml @@ -44,7 +44,7 @@ >Quantum API v1.1 with some essential Internet Protocol Address Management (IPAM) capabilities from the Melange API. + >Melange API. These IPAM capabilities enable you to: @@ -115,7 +115,7 @@ A virtual Ethernet network that is managed by the OpenStack Networking service. Currently, OpenStack Networking manages only - Ethernet networks. + Ethernet networks. network @@ -145,7 +145,7 @@ port, this also implies the port is associated with a subnet, as the IP address was taken from the allocation pool for a specific - subnet. + subnet. subnet diff --git a/v2.0/ch_neutron_preface.xml b/v2.0/ch_neutron_preface.xml index f70e3a6..169273f 100644 --- a/v2.0/ch_neutron_preface.xml +++ b/v2.0/ch_neutron_preface.xml @@ -36,7 +36,7 @@ format="SVG" scale="60"/> The OpenStack Networking project provides virtual networking services among devices managed by the OpenStack - compute service. + compute service. This document describes the &APIv2; features. We welcome feedback, comments, and bug reports at - Attribute - Type - Required + Attribute + Type + Required CRUD C. Use the attribute in - create operations. + create operations. R. This attribute is returned in response to show and - list operations. + list operations. D. You can delete the - value of this attribute. + value of this attribute. - Default Value - Validation Constraints + Default Value + Validation Constraints Notes diff --git a/v2.0/neutron-metering-ext.xml b/v2.0/neutron-metering-ext.xml index e2b5d1b..18574e3 100644 --- a/v2.0/neutron-metering-ext.xml +++ b/v2.0/neutron-metering-ext.xml @@ -39,6 +39,6 @@ Metering Labels and Rules Creates, modifies, and deletes OpenStack Layer3 Metering labels - and rules. + and rules.
diff --git a/v2.0/samples/att-put-req.xml b/v2.0/samples/att-put-req.xml index cf2dbfd..a6459bf 100644 --- a/v2.0/samples/att-put-req.xml +++ b/v2.0/samples/att-put-req.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v2.0/samples/network-get-detail-res.xml b/v2.0/samples/network-get-detail-res.xml index 8d5b2d6..1f94640 100644 --- a/v2.0/samples/network-get-detail-res.xml +++ b/v2.0/samples/network-get-detail-res.xml @@ -2,13 +2,13 @@ id="8bec1293-16bd-4568-ba75-1f58bec0b4c3" name="test_network"> - - + + - \ No newline at end of file + diff --git a/v2.0/samples/network-post-res.xml b/v2.0/samples/network-post-res.xml index 79d997b..03cfe12 100644 --- a/v2.0/samples/network-post-res.xml +++ b/v2.0/samples/network-post-res.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v2.0/samples/networks-get-detail-res.xml b/v2.0/samples/networks-get-detail-res.xml index 2f52ea4..c8df9d5 100644 --- a/v2.0/samples/networks-get-detail-res.xml +++ b/v2.0/samples/networks-get-detail-res.xml @@ -1,8 +1,8 @@ - - - \ No newline at end of file + diff --git a/v2.0/samples/port-get-detail-res.xml b/v2.0/samples/port-get-detail-res.xml index 507f23c..d0dbce8 100644 --- a/v2.0/samples/port-get-detail-res.xml +++ b/v2.0/samples/port-get-detail-res.xml @@ -1,6 +1,6 @@ - - \ No newline at end of file + + diff --git a/v2.0/samples/port-post-req.xml b/v2.0/samples/port-post-req.xml index 79f9890..4f8c1f6 100644 --- a/v2.0/samples/port-post-req.xml +++ b/v2.0/samples/port-post-req.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v2.0/samples/port-post-res.xml b/v2.0/samples/port-post-res.xml index c710d9c..f1564b8 100644 --- a/v2.0/samples/port-post-res.xml +++ b/v2.0/samples/port-post-res.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v2.0/samples/ports-get-detail-res.xml b/v2.0/samples/ports-get-detail-res.xml index ddb7923..605b98d 100644 --- a/v2.0/samples/ports-get-detail-res.xml +++ b/v2.0/samples/ports-get-detail-res.xml @@ -1,8 +1,8 @@ - - - \ No newline at end of file + diff --git a/v2.0/samples/ports-get-res.xml b/v2.0/samples/ports-get-res.xml index 1e9e0b3..73ac5a3 100644 --- a/v2.0/samples/ports-get-res.xml +++ b/v2.0/samples/ports-get-res.xml @@ -1,6 +1,6 @@ - - - \ No newline at end of file + + + diff --git a/v2.0/samples/subnet-get-detail-res.xml b/v2.0/samples/subnet-get-detail-res.xml index 507f23c..d0dbce8 100644 --- a/v2.0/samples/subnet-get-detail-res.xml +++ b/v2.0/samples/subnet-get-detail-res.xml @@ -1,6 +1,6 @@ - - \ No newline at end of file + + diff --git a/v2.0/samples/subnet-post-req.xml b/v2.0/samples/subnet-post-req.xml index 79f9890..4f8c1f6 100644 --- a/v2.0/samples/subnet-post-req.xml +++ b/v2.0/samples/subnet-post-req.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v2.0/samples/subnet-post-res.xml b/v2.0/samples/subnet-post-res.xml index c710d9c..f1564b8 100644 --- a/v2.0/samples/subnet-post-res.xml +++ b/v2.0/samples/subnet-post-res.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/v2.0/samples/subnets-get-detail-res.xml b/v2.0/samples/subnets-get-detail-res.xml index ddb7923..605b98d 100644 --- a/v2.0/samples/subnets-get-detail-res.xml +++ b/v2.0/samples/subnets-get-detail-res.xml @@ -1,8 +1,8 @@ - - - \ No newline at end of file + diff --git a/v2.0/samples/subnets-get-res.xml b/v2.0/samples/subnets-get-res.xml index 1e9e0b3..73ac5a3 100644 --- a/v2.0/samples/subnets-get-res.xml +++ b/v2.0/samples/subnets-get-res.xml @@ -1,6 +1,6 @@ - - - \ No newline at end of file + + + diff --git a/v2.0/section_binding_ext_ports.xml b/v2.0/section_binding_ext_ports.xml index 1bf6532..f23d70b 100644 --- a/v2.0/section_binding_ext_ports.xml +++ b/v2.0/section_binding_ext_ports.xml @@ -58,9 +58,9 @@ - Attribute - Type - Required + Attribute + Type + Required CRUD @@ -265,7 +265,7 @@ (401), Not Found (404) This operation returns information for the port - specified in the request URI. + specified in the request URI. This operation does not require a request body. This operation returns a response body. In addition to any fields returned in the &GET; /agents - List agents which report their status to OpenStack Networking server. + List agents which report their status to OpenStack Networking server. Normal Response Code: 200 - This operation does not require a request body. + This operation does not require a request body. This operation returns a response body. The default policy behavior is that non-admin user won't be able to see any agent in the response when this call is invoked @@ -153,7 +153,7 @@ X-Auth-Token: c52a1b304fec4ca0ac85dc1741eec6e2 Error Response Codes:NotFound (404) if not authorized or the agent does not exist - This operation returns information for the given agent. + This operation returns information for the given agent. This operation does not require a request body. This operation returns a response body. The body contents depend on the agent's type. diff --git a/v2.0/section_neutron-allowed-address-pair-ext.xml b/v2.0/section_neutron-allowed-address-pair-ext.xml index d953039..1a8fdc4 100644 --- a/v2.0/section_neutron-allowed-address-pair-ext.xml +++ b/v2.0/section_neutron-allowed-address-pair-ext.xml @@ -44,7 +44,7 @@ attribute to allow one to specify arbitrary mac_address/ip_address(cidr) pairs that are allowed to pass through a port regardness of the subnet associated with the - network. + network.
Port API operations with allowed address pair diff --git a/v2.0/section_neutron-extgwmodes-ext.xml b/v2.0/section_neutron-extgwmodes-ext.xml index cc2f7b3..571a395 100644 --- a/v2.0/section_neutron-extgwmodes-ext.xml +++ b/v2.0/section_neutron-extgwmodes-ext.xml @@ -44,9 +44,9 @@ <para>This is achieved simply by specifying a boolean attribute, <literal>enable_snat</literal>, in the <literal>external_gateway_info</literal> attribute of the - <literal>router</literal> resource. </para> + <literal>router</literal> resource.</para> <para>This extension redefines the external_gateway_info attribute - as depicted in the following table. </para> + as depicted in the following table.</para> <table rules="all"> <caption>external_gateway_info attributes</caption> <col width="20%"/> @@ -57,11 +57,11 @@ <col width="32%"/> <thead> <tr> - <th>Attribute </th> - <th>Type </th> - <th>Required </th> - <th>Default Value </th> - <th>Validation Constraints </th> + <th>Attribute</th> + <th>Type</th> + <th>Required</th> + <th>Default Value</th> + <th>Validation Constraints</th> <th>Notes</th> </tr> </thead> @@ -206,7 +206,7 @@ SNAT will be enabled for the new network.</para> <para>It is important to note that whenever updating a router's external gateway information, the - <literal>network_id </literal>parameter must be + <literal>network_id</literal>parameter must be specified always, even if the final goal is just to enable or disable SNAT for the router on the same external network.</para> diff --git a/v2.0/section_neutron-extra-dhcp-opt-ext.xml b/v2.0/section_neutron-extra-dhcp-opt-ext.xml index 9c96c1a..c9d13a9 100755 --- a/v2.0/section_neutron-extra-dhcp-opt-ext.xml +++ b/v2.0/section_neutron-extra-dhcp-opt-ext.xml @@ -42,7 +42,7 @@ tagged data items that are stored in the 'options' field of the DHCP message.</para> <para>You can specify a DHCP options when defining or updating a Port by specifying the extra_dhcp_opts tag and providing its options as name value pairs e.g. - opt_name='bootfile-name', opt_value='pxelinux.0'. </para> + opt_name='bootfile-name', opt_value='pxelinux.0'.</para> <section xml:id="extra_dhcp_opt-concepts"> <title>Concepts The extra-dhcp-opt extension is an attribute extension which adds the following set of @@ -60,13 +60,13 @@ extra-dhcp-opt:opt_value - Identifies the value associated with the opt_name. These are handled in opt_name, opt_value pairs only. value_opt can be any text string depending upon the - name. + name. The actual semantics of extra-dhcp-opt attributes depend on the name of the dhcp option being used that defines the vendor extension to DHCP. For example reference RFC: - http://tools.ietf.org/html/rfc2132, contains specific detail on BOOTP Vendor Extensions. + http://tools.ietf.org/html/rfc2132, contains specific detail on BOOTP Vendor Extensions.
diff --git a/v2.0/section_neutron-extraroute-ext.xml b/v2.0/section_neutron-extraroute-ext.xml index a80fc61..4c87fa0 100644 --- a/v2.0/section_neutron-extraroute-ext.xml +++ b/v2.0/section_neutron-extraroute-ext.xml @@ -37,11 +37,11 @@ The ExtraRoute Extension You can set up route configuration on the Router using this extension. This extension augments the 'Router' resource by - adding a new 'routes' attribute. + adding a new 'routes' attribute. You can specify a set of nexthop IPs and destination CIDRs. Note the nexthop IP must be a part of one of the subnets router interfaces are connected to. This is why configuration - of route property is allowed only update operation on REST. + of route property is allowed only update operation on REST. @@ -53,22 +53,22 @@ - - - + + + - - + + @@ -96,7 +96,7 @@ + [{'nexthop':IPAddress, 'destination':CIDR}] diff --git a/v2.0/section_neutron-firewall-ext.xml b/v2.0/section_neutron-firewall-ext.xml index 16a09ec..db4ddd9 100644 --- a/v2.0/section_neutron-firewall-ext.xml +++ b/v2.0/section_neutron-firewall-ext.xml @@ -420,8 +420,8 @@ Accept: application/json Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create Firewall Rule: Request @@ -516,8 +516,8 @@ Content-Type: application/json; charset=UTF-8 (409). The Conflict error response is returned when an operation is performed while the firewall is in a PENDING state. - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete Firewall Rule: Request @@ -783,8 +783,8 @@ Accept: application/json Normal Response Code: 201 Error Response Codes: Unauthorized (401). - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create Firewall Policy: Request @@ -878,8 +878,8 @@ Content-Type: application/json; charset=UTF-8 Not Found (404), Conflict (409 ). Conflict error code is returned the firewall policy is in use. - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete Firewall Policy: Request @@ -1252,8 +1252,8 @@ Accept: application/json Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create Firewall: Request @@ -1345,8 +1345,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete Firewall: Request diff --git a/v2.0/section_neutron-l3-ext.xml b/v2.0/section_neutron-l3-ext.xml index f1a627f..d6380a0 100644 --- a/v2.0/section_neutron-l3-ext.xml +++ b/v2.0/section_neutron-l3-ext.xml @@ -62,7 +62,7 @@ A router is used to interconnect subnets and forward traffic among them. Another feature of the router is to NAT internal traffic - to external networks. + to external networks. A router has an interface for each subnet it is associated with. By default the IP address of such interface is the subnet's gateway IP. Also, whenever a @@ -89,22 +89,22 @@ - - - + + + - - + + - - - - - - + + + + + + - - + + - + - - + + @@ -155,8 +155,8 @@ - - + + @@ -197,30 +197,30 @@ - - - + + + - - + + - - - - - - + + + + + + - - + + @@ -229,8 +229,8 @@ - - + + @@ -240,7 +240,7 @@ - + @@ -251,8 +251,8 @@ - - + + @@ -364,8 +364,8 @@ Accept: application/json router whose identifier is specified on the request URI. Users can control which attributes should be returned by using the fields - query parameter. - This operation does not require a request body. + query parameter. + This operation does not require a request body.This operation returns a response body. Show Router: JSON Request @@ -425,8 +425,8 @@ Accept: application/json { "network_id": <external_network_uuid> } - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create Router: JSON Request @@ -528,8 +528,8 @@ Accept: application/json interfaces through remove router interface operation. - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete Router: JSON Request DELETE /v2.0/routers/8604a0de-7f6b-409a-a47c-a1cc7bc77b2e @@ -659,7 +659,7 @@ Accept: application/json the affected router and interface. A 404 Not Found error will be returned either if the router or the subnet/port do - not exist or are not visible to the user. + not exist or are not visible to the user. As a consequence of this operation, the port connecting the router with the subnet is removed from the subnet's network. @@ -771,7 +771,7 @@ Accept: application/json floating IP whose identifier is specified on the request URI. Users can control which attributes should be returned by using the fields - query parameter. + query parameter. Show Floating IP: JSON Request GET /v2.0/floatingips/2f245a7b-796b-4f26-9cf9-9e82d248fda7.json?fields=fixed_ip_address&fields=floating_ip_address @@ -846,7 +846,7 @@ Accept: application/json the Floating IP must have at least an IP address configured, otherwise a 400 error will be returned. - As an OpenStack Networking port might be associated + As an OpenStack Networking port might be associated with multiple IP addresses, the particular IP address to associate with the floating IP can be specified using the fixed_ip_address request @@ -861,7 +861,7 @@ Accept: application/json returned. If the internal OpenStack Networking port and ip address selected for association are already associated to another - floating IP, a 409 error will be returned. + floating IP, a 409 error will be returned. Create Floating IP: JSON Request diff --git a/v2.0/section_neutron-loadbalancer-ext.xml b/v2.0/section_neutron-loadbalancer-ext.xml index 8a1ec88..80d022f 100644 --- a/v2.0/section_neutron-loadbalancer-ext.xml +++ b/v2.0/section_neutron-loadbalancer-ext.xml @@ -514,8 +514,8 @@ Accept: application/json Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create VIP: Request @@ -608,8 +608,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404), Conflict (409) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete VIP: Request @@ -920,8 +920,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create Pool: Request @@ -1014,8 +1014,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404), Conflict (409) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete Pool: Request @@ -1290,8 +1290,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create Member: Request @@ -1384,8 +1384,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404), Conflict (409) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete Member: Request @@ -1487,7 +1487,7 @@ Content-Length: 0 - + @@ -1496,7 +1496,7 @@ Content-Length: 0 - + @@ -1685,8 +1685,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create Health Monitor: Request @@ -1779,8 +1779,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404), Conflict (409) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete Health Monitor: Request @@ -1870,8 +1870,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404), Conflict (409) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Disassociate Health Monitor: Request diff --git a/v2.0/section_neutron-scheduler-ext.xml b/v2.0/section_neutron-scheduler-ext.xml index d361341..e1c0aa2 100644 --- a/v2.0/section_neutron-scheduler-ext.xml +++ b/v2.0/section_neutron-scheduler-ext.xml @@ -121,7 +121,7 @@ Error Response Codes: Unauthorized (401), Forbidden (403) - This operation does not require a request body. + This operation does not require a request body. This operation returns a response body. List Networks on DHCP agent: JSON Request @@ -354,7 +354,7 @@ X-Auth-Token: 7ae91cde8f504031be5a2cd5b99d4fe9 Error Response Codes: Unauthorized (401), Forbidden (403) - This operation does not require a request body. + This operation does not require a request body. This operation returns a response body. List Routers on L3 agent: JSON Request @@ -580,7 +580,7 @@ X-Auth-Token: 2147ef6fe4444f0299b1c0b6b529ff47 Error Response Codes: Unauthorized (401), Forbidden (403) - This operation does not require a request body. + This operation does not require a request body. This operation returns a response body. List Pools on LBaaS agent: JSON Request diff --git a/v2.0/section_neutron-security-groups-ext.xml b/v2.0/section_neutron-security-groups-ext.xml index 2f726fc..38281bd 100644 --- a/v2.0/section_neutron-security-groups-ext.xml +++ b/v2.0/section_neutron-security-groups-ext.xml @@ -39,6 +39,6 @@ Security Groups and Rules Creates, modifies, and deletes OpenStack Networking security groups and - rules. + rules. diff --git a/v2.0/section_neutron-vpn-ext.xml b/v2.0/section_neutron-vpn-ext.xml index 8338491..560eee6 100644 --- a/v2.0/section_neutron-vpn-ext.xml +++ b/v2.0/section_neutron-vpn-ext.xml @@ -416,8 +416,8 @@ Accept: application/json Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create VPN Service: Request @@ -511,8 +511,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404), Conflict (409) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete VPN Service: Request @@ -805,8 +805,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create IKE Policy: Request @@ -899,8 +899,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404), Conflict (409) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete IKE Policy: Request @@ -1193,8 +1193,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create IPSec Policy: Request @@ -1287,8 +1287,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404), Conflict (409) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete IPSec Policy: Request @@ -1658,8 +1658,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Bad Request (400) - This operation requires a request body. - This operation returns a response body. + This operation requires a request body. + This operation returns a response body. Create IPSec Site Connection: Request @@ -1747,8 +1747,8 @@ Content-Type: application/json; charset=UTF-8 Error Response Codes: Unauthorized (401), Not Found (404), Conflict (409) - This operation does not require a request body. - This operation does not return a response body. + This operation does not require a request body. + This operation does not return a response body. Delete IPSec Site Connection: Request diff --git a/v2.0/section_neutron_binding_ext_ports.xml b/v2.0/section_neutron_binding_ext_ports.xml index ea48cb0..08b3a9e 100644 --- a/v2.0/section_neutron_binding_ext_ports.xml +++ b/v2.0/section_neutron_binding_ext_ports.xml @@ -58,9 +58,9 @@ - - - + + + - - - + + + - - + + @@ -179,7 +179,7 @@ - + @@ -206,7 +206,7 @@ + a tenant_id other than its own.
Router Attributes
Attribute Type Required AttributeTypeRequired CRUD C. Use the attribute in - create operations. + create operations. R. This attribute is returned in response to show and - list operations. + list operations. D. You can delete the - value of this attribute. + value of this attribute. Default Value Validation Constraints Default ValueValidation Constraints Notes
U None List should be in this form. - [{'nexthop':IPAddress, 'destination':CIDR}] Extra route configuration
Attribute Type Required AttributeTypeRequired CRUD C. Use the attribute in - create operations. + create operations. R. This attribute is returned in response to show and - list operations. + list operations. D. You can delete the - value of this attribute. + value of this attribute. Default Value Validation Constraints Default ValueValidation Constraints Notes
id uuid-str N/A R generated N/A iduuid-strN/ARgeneratedN/A Unique identifier for the router.
nameString No StringNo CRU NoneN/A N/A Human readable name for the router. Does not have to be unique
admin_state_upBool No BoolNo CRU true {true | false }
statusString N/A StringN/A R N/A N/A
Attribute Type Required AttributeTypeRequired CRUDDefault Value Validation Constraints Default ValueValidation Constraints Notes
id uuid-str N/A R generated N/A iduuid-strN/ARgeneratedN/A Unique identifier for the Floating IP instance
floating_network_iduuid-str Yes uuid-strYes CR N/A UUID Pattern
port_iduuid-str Yes uuid-strYes CRU N/A UUID Pattern
fixed_ip_addressIP Address IP Address No CRU None
floating_ip_addressIP Address N/A IP AddressN/A R Automatically allocated from pool N/A CRU None non-negativeThe time in seconds between sending probes to members. The time in seconds between sending probes to members.
timeoutCRU None non-negativeThe maximum number of seconds for a monitor to wait for a connection to be established before it times out. The value must be less than the delay value. The maximum number of seconds for a monitor to wait for a connection to be established before it times out. The value must be less than the delay value.
max_retries
Attribute Type Required AttributeTypeRequired CRUD @@ -268,7 +268,7 @@ (401), Not Found (404) This operation returns information for the port - specified in the request URI. + specified in the request URI. This operation does not require a request body. This operation returns a response body. In addition to any fields returned in the show port diff --git a/v2.0/section_neutron_concepts.xml b/v2.0/section_neutron_concepts.xml index 022ed63..1debc1d 100644 --- a/v2.0/section_neutron_concepts.xml +++ b/v2.0/section_neutron_concepts.xml @@ -83,9 +83,9 @@
Attribute Type Required AttributeTypeRequired CRUD @@ -111,8 +111,8 @@ Default Value Validation Constraints Default ValueValidation Constraints Notes
R Empty List N/Asubnets associated with this network. subnets associated with this network.
sharedN/A No constraint Owner of network. Only admin users can specify - a tenant_id other than its own.
@@ -236,9 +236,9 @@ - Attribute - Type - Required + Attribute + Type + Required CRUD @@ -265,8 +265,8 @@ - Default Value - Validation Constraints + Default Value + Validation Constraints Notes @@ -392,7 +392,7 @@ N/A No constraint Owner of network. Only admin users can specify - a tenant_id other than its own. + a tenant_id other than its own. @@ -420,9 +420,9 @@ - Attribute - Type - Required + Attribute + Type + Required CRUD @@ -449,8 +449,8 @@ - Default Value - Validation Constraints + Default Value + Validation Constraints Notes @@ -492,7 +492,7 @@ true {true|false} Administrative state of port. If false (down), - port does not forward packets. + port does not forward packets. status @@ -576,7 +576,7 @@ N/A No constraint Owner of network. Only admin users can specify - a tenant_id other than its own. + a tenant_id other than its own. security_groups diff --git a/v2.0/section_provider_ext_networks.xml b/v2.0/section_provider_ext_networks.xml index d491cd6..c150fd8 100644 --- a/v2.0/section_provider_ext_networks.xml +++ b/v2.0/section_provider_ext_networks.xml @@ -263,7 +263,7 @@ user submitting the request is authorized to see provider networks mapping, this operation allows for specifying how an existing network should be mapped on the underlying - network infrastructure. + network infrastructure. If the user submitting the request is not allowed to set provider networks attributes, a 403 Forbidden response is returned. diff --git a/v2.0/section_provider_extended_attrs.xml b/v2.0/section_provider_extended_attrs.xml index e8e6c7a..50593c0 100644 --- a/v2.0/section_provider_extended_attrs.xml +++ b/v2.0/section_provider_extended_attrs.xml @@ -39,7 +39,7 @@ networks enables administrative users to specify how network objects map to the underlying networking infrastructure. These extended attributes also appear when administrative users - query networks. + query networks. The technology back end of the particular plug-in determines the semantics of these attributes. To understand which values to specify for each attribute when you deploy &APIv2; with a diff --git a/v2.0/wadl/metering-labels.wadl b/v2.0/wadl/metering-labels.wadl index f064f43..9960cd3 100644 --- a/v2.0/wadl/metering-labels.wadl +++ b/v2.0/wadl/metering-labels.wadl @@ -87,7 +87,7 @@ title="Create Metering Label"> Creates a l3 metering label. - This operation requires a request body. + This operation requires a request body. The following table describes the required and optional attributes in the request body:
Create Metering Label @@ -197,7 +197,7 @@ This operation deletes a l3 metering label. This operation does not require a request body. This - operation does not return a response body. + operation does not return a response body. @@ -239,7 +239,7 @@ The list provides the unique ID for each metering label rule. This operation does not require a request body. This - operation returns a response body. + operation returns a response body. @@ -272,7 +272,7 @@ title="Create Metering Label Rule"> Creates a l3 metering label rule. - This operation requires a request body. + This operation requires a request body. The following table describes the required and optional attributes in the request body:
Create Metering Label @@ -302,7 +302,7 @@ remote IP prefix to be associated with this metering rule. packet.
- This operation returns a response body. + This operation returns a response body. diff --git a/v2.0/wadl/os-networks-provider-ext.wadl b/v2.0/wadl/os-networks-provider-ext.wadl index 88c4752..6d1b12c 100644 --- a/v2.0/wadl/os-networks-provider-ext.wadl +++ b/v2.0/wadl/os-networks-provider-ext.wadl @@ -24,7 +24,7 @@ xsd/api.xsd http://docs.openstack.org/common/api/v1.0 xsd/api-common.xsd - http://wadl.dev.java.net/2009/02 + http://wadl.dev.java.net/2009/02 http://www.w3.org/Submission/wadl/wadl.xsd"> diff --git a/v2.0/wadl/os-networks.wadl b/v2.0/wadl/os-networks.wadl index 1781592..3761b49 100644 --- a/v2.0/wadl/os-networks.wadl +++ b/v2.0/wadl/os-networks.wadl @@ -35,7 +35,7 @@ - + @@ -73,9 +73,9 @@ The UUID for the network of interest to you. - + - + @@ -175,7 +175,6 @@ - @@ -91,7 +91,7 @@ - + @@ -134,7 +134,7 @@ -
+
diff --git a/v2.0/wadl/os-quotas.wadl b/v2.0/wadl/os-quotas.wadl index 1d2ff57..4f8f8d7 100644 --- a/v2.0/wadl/os-quotas.wadl +++ b/v2.0/wadl/os-quotas.wadl @@ -27,7 +27,7 @@ xsd/api.xsd http://docs.openstack.org/common/api/v1.0 xsd/common.xsd - http://wadl.dev.java.net/2009/02 + http://wadl.dev.java.net/2009/02 http://www.w3.org/Submission/wadl/wadl.xsd "> @@ -46,7 +46,7 @@ - + @@ -61,14 +61,13 @@ - - Lists quotas for tenants who have non-default quota values. @@ -87,10 +86,10 @@ - + - Shows information for a specified quota. @@ -114,7 +113,7 @@ - Updates quotas for a specified tenant. Use when non-default quotas are desired. @@ -143,7 +142,7 @@ - Resets quotas to default values for a specified tenant. diff --git a/v2.0/wadl/os-subnets.wadl b/v2.0/wadl/os-subnets.wadl index 82965ee..49ae6d7 100644 --- a/v2.0/wadl/os-subnets.wadl +++ b/v2.0/wadl/os-subnets.wadl @@ -227,7 +227,7 @@ - &fault401; &fault404; + &fault401; &fault404; diff --git a/v2.0/wadl/security-groups.wadl b/v2.0/wadl/security-groups.wadl index 2a0d4bb..43f7221 100644 --- a/v2.0/wadl/security-groups.wadl +++ b/v2.0/wadl/security-groups.wadl @@ -100,7 +100,7 @@ Creates an OpenStack Networking - security group. + security group. This operation requires a request body. The request body must include one or both of the following attributes: @@ -121,7 +121,7 @@ protocol remote_group_id remote_ip_prefix - This operation returns a response body. + This operation returns a response body. @@ -207,7 +207,7 @@ rules, provided that a port is not associated with the security group. This operation does not require a request body. This - operation does not return a response body. + operation does not return a response body. @@ -249,7 +249,7 @@ The list provides the unique ID for each security group rule. This operation does not require a request body. This - operation returns a response body. + operation returns a response body. @@ -281,8 +281,8 @@ Creates an OpenStack Networking - security group rule. - This operation requires a request body. + security group rule. + This operation requires a request body. The following table describes the required and optional attributes in the request body:
Create Security @@ -346,7 +346,7 @@ IP prefix as the source IP address of the IP packet.
- This operation returns a response body. + This operation returns a response body.
@@ -454,7 +454,7 @@ Deletes a specified rule from a - OpenStack Networking security group. + OpenStack Networking security group. This operation does not require a request body. This operation does not return a response body.