adefc64f21
This commit: * removes all params defined in parameters.yaml which are not used in any .inc file, * rename "type_2" param to "vpn_endpoint_type" as it is easier to understand what it is, * remove "tenant_id" and "tenant_id-request" params and replace them with "project_id-body-optional" and "project_id-request" as both were the same Change-Id: I6acfc28514e3201b6035a6bbfedc08ec8e389899 Closes-Bug: #1745380
1301 lines
30 KiB
ReStructuredText
1301 lines
30 KiB
ReStructuredText
.. -*- rst -*-
|
|
|
|
==================================================================================================
|
|
VPNaaS 2.0 (vpn, vpnservices, ikepolicies, ipsecpolicies, endpoint-groups, ipsec-site-connections)
|
|
==================================================================================================
|
|
|
|
The Virtual-Private-Network-as-a-Service (VPNaaS) extension enables
|
|
OpenStack projects to extend private networks across the public
|
|
telecommunication infrastructure.
|
|
|
|
This initial implementation of the VPNaaS extension provides:
|
|
|
|
- Site-to-site VPN that connects two private networks.
|
|
|
|
- Multiple VPN connections per project.
|
|
|
|
- IKEv1 policy support with 3des, aes-128, aes-256, or aes-192
|
|
encryption.
|
|
|
|
- IPsec policy support with 3des, aes-128, aes-192, or aes-256
|
|
encryption, sha1 authentication, ESP, AH, or AH-ESP transform
|
|
protocol, and tunnel or transport mode encapsulation.
|
|
|
|
- Dead Peer Detection (DPD) with hold, clear, restart, disabled, or
|
|
restart-by-peer actions.
|
|
|
|
This extension introduces these resources:
|
|
|
|
- ``service``. A parent object that associates VPN with a specific
|
|
subnet and router.
|
|
|
|
- ``ikepolicy``. The Internet Key Exchange (IKE) policy that
|
|
identifies the authentication and encryption algorithm to use
|
|
during phase one and two negotiation of a VPN connection.
|
|
|
|
- ``ipsecpolicy``. The IP security policy that specifies the
|
|
authentication and encryption algorithm and encapsulation mode to
|
|
use for the established VPN connection.
|
|
|
|
- ``ipsec-site-connection``. Details for the site-to-site IPsec
|
|
connection, including the peer CIDRs, MTU, authentication mode,
|
|
peer address, DPD settings, and status.
|
|
|
|
VPN Endpoint Groups
|
|
===================
|
|
|
|
The ``endpoint-groups`` extension adds support for defining one or more
|
|
endpoints of a specific type, and can be used to specify both local
|
|
and peer endpoints for IPsec connections.
|
|
|
|
VPN Flavors
|
|
===========
|
|
|
|
The ``vpn-flavors`` extension adds the ``flavor_id`` attribute
|
|
to ``vpnservices`` resources. During vpnservice creation, if a ``flavor_id``
|
|
is passed, it is used to find the provider for the driver which would
|
|
handle the newly created vpnservice.
|
|
|
|
List IKE policies
|
|
=================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/ikepolicies
|
|
|
|
Lists IKE policies.
|
|
|
|
Use the ``fields`` query parameter to control which fields are
|
|
returned in the response body. Additionally, you can filter results
|
|
by using query string parameters. For information, see `Filtering
|
|
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
|
-specification#Filtering_and_Column_Selection>`__.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- fields: fields
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ikepolicies: ikepolicies
|
|
- name: name-request
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- phase1_negotiation_mode: phase1_negotiation_mode
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- id: ikepolicy_id-body-response
|
|
- ike_version: ike_version
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ikepolicies-list-response.json
|
|
:language: javascript
|
|
|
|
Create IKE policy
|
|
=================
|
|
|
|
.. rest_method:: POST /v2.0/vpn/ikepolicies
|
|
|
|
Creates an IKE policy.
|
|
|
|
The IKE policy is used for phases one and two negotiation of the
|
|
VPN connection. You can specify both the authentication and
|
|
encryption algorithms for connections.
|
|
|
|
Normal response codes: 201
|
|
|
|
Error response codes: 400, 401
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ikepolicy: ikepolicy
|
|
- name: name-request
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- phase1_negotiation_mode: phase1_negotiation_mode
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- ike_version: ike_version
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/ikepolicy-create-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ikepolicies: ikepolicies
|
|
- ikepolicy: ikepolicy
|
|
- name: name-request
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- phase1_negotiation_mode: phase1_negotiation_mode
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- id: ikepolicy_id-body-response
|
|
- ike_version: ike_version
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ikepolicy-create-response.json
|
|
:language: javascript
|
|
|
|
Show IKE policy details
|
|
=======================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/ikepolicies/{ikepolicy_id}
|
|
|
|
Shows details for an IKE policy.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ikepolicy_id: ikepolicy_id-path
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ikepolicies: ikepolicies
|
|
- ikepolicy: ikepolicy
|
|
- name: name-request
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- phase1_negotiation_mode: phase1_negotiation_mode
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- id: ikepolicy_id-body-response
|
|
- ike_version: ike_version
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ikepolicy-show-response.json
|
|
:language: javascript
|
|
|
|
Update IKE policy
|
|
=================
|
|
|
|
.. rest_method:: PUT /v2.0/vpn/ikepolicies/{ikepolicy_id}
|
|
|
|
Updates policy settings in an IKE policy.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 400, 401, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ikepolicy_id: ikepolicy_id-path
|
|
- ikepolicy: ikepolicy
|
|
- description: description-request
|
|
- auth_algorithm: auth_algorithm
|
|
- name: name-request
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- phase1_negotiation_mode: phase1_negotiation_mode
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- ike_version: ike_version
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/ikepolicy-update-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ikepolicies: ikepolicies
|
|
- ikepolicy: ikepolicy
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- name: name-request
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- phase1_negotiation_mode: phase1_negotiation_mode
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- id: ikepolicy_id-body-response
|
|
- ike_version: ike_version
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ikepolicy-update-response.json
|
|
:language: javascript
|
|
|
|
Remove IKE policy
|
|
=================
|
|
|
|
.. rest_method:: DELETE /v2.0/vpn/ikepolicies/{ikepolicy_id}
|
|
|
|
Removes an IKE policy.
|
|
|
|
Normal response codes: 204
|
|
|
|
Error response codes: 401, 404, 409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ikepolicy_id: ikepolicy_id-path
|
|
|
|
Response
|
|
--------
|
|
|
|
There is no body content for the response of a successful DELETE request.
|
|
|
|
List IPsec policies
|
|
===================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/ipsecpolicies
|
|
|
|
Lists all IPsec policies.
|
|
|
|
Use the ``fields`` query parameter to control which fields are
|
|
returned in the response body. Additionally, you can filter results
|
|
by using query string parameters. For information, see `Filtering
|
|
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
|
-specification#Filtering_and_Column_Selection>`__.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- fields: fields
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsecpolicies: ipsecpolicies
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- encapsulation_mode: encapsulation_mode
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- transform_protocol: transform_protocol
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- id: ipsecpolicy_id-body-response
|
|
- name: name-request
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsecpolicies-list-response.json
|
|
:language: javascript
|
|
|
|
Create IPsec policy
|
|
===================
|
|
|
|
.. rest_method:: POST /v2.0/vpn/ipsecpolicies
|
|
|
|
Creates an IP security (IPsec) policy.
|
|
|
|
The IPsec policy specifies the authentication and encryption
|
|
algorithms and encapsulation mode to use for the established VPN
|
|
connection.
|
|
|
|
Normal response codes: 201
|
|
|
|
Error response codes: 400, 401
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsecpolicy: ipsecpolicy
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- encapsulation_mode: encapsulation_mode
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- transform_protocol: transform_protocol
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- name: name-request
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsecpolicy-create-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsecpolicies: ipsecpolicies
|
|
- ipsecpolicy: ipsecpolicy
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- encapsulation_mode: encapsulation_mode
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- transform_protocol: transform_protocol
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- id: ipsecpolicy_id-body-response
|
|
- name: name-request
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsecpolicy-create-response.json
|
|
:language: javascript
|
|
|
|
Show IPsec policy
|
|
=================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/ipsecpolicies/{ipsecpolicy_id}
|
|
|
|
Shows details for an IPsec policy.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsecpolicy_id: ipsecpolicy_id-path
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsecpolicies: ipsecpolicies
|
|
- ipsecpolicy: ipsecpolicy
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- encapsulation_mode: encapsulation_mode
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- transform_protocol: transform_protocol
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- id: ipsecpolicy_id-body-response
|
|
- name: name-request
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsecpolicy-show-response.json
|
|
:language: javascript
|
|
|
|
Update IPsec policy
|
|
===================
|
|
|
|
.. rest_method:: PUT /v2.0/vpn/ipsecpolicies/{ipsecpolicy_id}
|
|
|
|
Updates policy settings in an IPsec policy.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 400, 401, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsecpolicy_id: ipsecpolicy_id-path
|
|
- ipsecpolicy: ipsecpolicy
|
|
- description: description-request
|
|
- transform_protocol: transform_protocol
|
|
- auth_algorithm: auth_algorithm
|
|
- encapsulation_mode: encapsulation_mode
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- name: name-request
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsecpolicy-update-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsecpolicies: ipsecpolicies
|
|
- ipsecpolicy: ipsecpolicy
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- auth_algorithm: auth_algorithm
|
|
- encapsulation_mode: encapsulation_mode
|
|
- encryption_algorithm: encryption_algorithm
|
|
- pfs: pfs
|
|
- value: value
|
|
- transform_protocol: transform_protocol
|
|
- units: units
|
|
- lifetime: lifetime
|
|
- id: ipsecpolicy_id-body-response
|
|
- name: name-request
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsecpolicy-update-response.json
|
|
:language: javascript
|
|
|
|
Remove IPsec policy
|
|
===================
|
|
|
|
.. rest_method:: DELETE /v2.0/vpn/ipsecpolicies/{ipsecpolicy_id}
|
|
|
|
Removes an IPsec policy.
|
|
|
|
Normal response codes: 204
|
|
|
|
Error response codes: 401, 404, 409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsecpolicy_id: ipsecpolicy_id-path
|
|
|
|
Response
|
|
--------
|
|
|
|
There is no body content for the response of a successful DELETE request.
|
|
|
|
List IPsec connections
|
|
======================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/ipsec-site-connections
|
|
|
|
Lists all IPsec connections.
|
|
|
|
Use the ``fields`` query parameter to control which fields are
|
|
returned in the response body. For information, see `Filtering and
|
|
Column Selection <http://specs.openstack.org/openstack/neutron-
|
|
specs/specs/api/networking_general_api_information.html#filtering-
|
|
and-column-selection>`__.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- fields: fields
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- auth_mode: auth_mode
|
|
- ikepolicy_id: ikepolicy_id-body-response
|
|
- vpnservice_id: vpnservice_id-body-response
|
|
- local_ep_group_id: local_ep_group_id
|
|
- peer_address: peer_address
|
|
- id: connection_id-body-response
|
|
- route_mode: route_mode
|
|
- ipsecpolicy_id: ipsecpolicy_id-body-response
|
|
- peer_id: peer_id
|
|
- status: ipsec_site_connection-status
|
|
- psk: psk
|
|
- description: description-request
|
|
- initiator: initiator
|
|
- peer_cidrs: peer_cidrs
|
|
- name: name-request
|
|
- admin_state_up: admin_state_up
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- interval: interval
|
|
- mtu: mtu
|
|
- peer_ep_group_id: peer_ep_group_id
|
|
- dpd: dpd
|
|
- timeout: ipsec_site_connection-timeout
|
|
- action: ipsec_site_connection-action
|
|
- local_id: local_id
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsec-site-connections-list-response.json
|
|
:language: javascript
|
|
|
|
Create IPsec connection
|
|
=======================
|
|
|
|
.. rest_method:: POST /v2.0/vpn/ipsec-site-connections
|
|
|
|
Creates a site-to-site IPsec connection for a service.
|
|
|
|
Normal response codes: 201
|
|
|
|
Error response codes: 400, 401
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsec_site_connection: ipsec_site_connection
|
|
- auth_mode: auth_mode
|
|
- ikepolicy_id: ikepolicy_id-body-request
|
|
- vpnservice_id: vpnservice_id-body-request
|
|
- local_ep_group_id: local_ep_group_id
|
|
- peer_address: peer_address
|
|
- route_mode: route_mode
|
|
- ipsecpolicy_id: ipsecpolicy_id-body-request
|
|
- peer_id: peer_id
|
|
- psk: psk
|
|
- description: description-request
|
|
- initiator: initiator
|
|
- peer_cidrs: peer_cidrs
|
|
- name: name-request
|
|
- admin_state_up: admin_state_up
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- interval: interval
|
|
- mtu: mtu
|
|
- peer_ep_group_id: peer_ep_group_id
|
|
- dpd: dpd
|
|
- timeout: ipsec_site_connection-timeout
|
|
- action: ipsec_site_connection-action
|
|
- local_id: local_id
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsec-site-connection-create-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- ipsec_site_connection: ipsec_site_connection
|
|
- auth_mode: auth_mode
|
|
- ikepolicy_id: ikepolicy_id-body-response
|
|
- vpnservice_id: vpnservice_id-body-response
|
|
- local_ep_group_id: local_ep_group_id
|
|
- peer_address: peer_address
|
|
- id: connection_id-body-response
|
|
- route_mode: route_mode
|
|
- ipsecpolicy_id: ipsecpolicy_id-body-response
|
|
- peer_id: peer_id
|
|
- status: ipsec_site_connection-status
|
|
- psk: psk
|
|
- description: description-request
|
|
- initiator: initiator
|
|
- peer_cidrs: peer_cidrs
|
|
- name: name-request
|
|
- admin_state_up: admin_state_up
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- interval: interval
|
|
- mtu: mtu
|
|
- peer_ep_group_id: peer_ep_group_id
|
|
- dpd: dpd
|
|
- timeout: ipsec_site_connection-timeout
|
|
- action: ipsec_site_connection-action
|
|
- local_id: local_id
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsec-site-connection-create-response.json
|
|
:language: javascript
|
|
|
|
Show IPsec connection
|
|
=====================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/ipsec-site-connections/{connection_id}
|
|
|
|
Shows details for an IPsec connection.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- connection_id: connection_id-path
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- auth_mode: auth_mode
|
|
- ikepolicy_id: ikepolicy_id-body-response
|
|
- vpnservice_id: vpnservice_id-body-response
|
|
- local_ep_group_id: local_ep_group_id
|
|
- peer_address: peer_address
|
|
- id: connection_id-body-response
|
|
- ipsec_site_connection: ipsec_site_connection
|
|
- route_mode: route_mode
|
|
- ipsecpolicy_id: ipsecpolicy_id-body-response
|
|
- peer_id: peer_id
|
|
- status: ipsec_site_connection-status
|
|
- psk: psk
|
|
- description: description-request
|
|
- initiator: initiator
|
|
- peer_cidrs: peer_cidrs
|
|
- name: name-request
|
|
- admin_state_up: admin_state_up
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- interval: interval
|
|
- mtu: mtu
|
|
- peer_ep_group_id: peer_ep_group_id
|
|
- dpd: dpd
|
|
- timeout: ipsec_site_connection-timeout
|
|
- action: ipsec_site_connection-action
|
|
- local_id: local_id
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsec-site-connection-show-response.json
|
|
:language: javascript
|
|
|
|
Update IPsec connection
|
|
=======================
|
|
|
|
.. rest_method:: PUT /v2.0/vpn/ipsec-site-connections/{connection_id}
|
|
|
|
Updates connection settings for an IPsec connection.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 400, 401, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- connection_id: connection_id-path
|
|
- ipsec_site_connection: ipsec_site_connection
|
|
- psk: psk
|
|
- initiator: initiator
|
|
- description: description-request
|
|
- admin_state_up: admin_state_up
|
|
- interval: interval
|
|
- peer_cidrs: peer_cidrs
|
|
- mtu: mtu
|
|
- peer_ep_group_id: peer_ep_group_id
|
|
- local_ep_group_id: local_ep_group_id
|
|
- dpd: dpd
|
|
- timeout: ipsec_site_connection-timeout
|
|
- action: ipsec_site_connection-action
|
|
- peer_address: peer_address
|
|
- peer_id: peer_id
|
|
- name: name-request
|
|
- local_id: local_id
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsec-site-connection-update-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- auth_mode: auth_mode
|
|
- ikepolicy_id: ikepolicy_id-body-response
|
|
- vpnservice_id: vpnservice_id-body-response
|
|
- local_ep_group_id: local_ep_group_id
|
|
- peer_address: peer_address
|
|
- id: connection_id-body-response
|
|
- ipsec_site_connection: ipsec_site_connection
|
|
- route_mode: route_mode
|
|
- ipsecpolicy_id: ipsecpolicy_id-body-response
|
|
- peer_id: peer_id
|
|
- status: ipsec_site_connection-status
|
|
- psk: psk
|
|
- description: description-request
|
|
- initiator: initiator
|
|
- peer_cidrs: peer_cidrs
|
|
- name: name-request
|
|
- admin_state_up: admin_state_up
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- interval: interval
|
|
- mtu: mtu
|
|
- peer_ep_group_id: peer_ep_group_id
|
|
- dpd: dpd
|
|
- timeout: ipsec_site_connection-timeout
|
|
- action: ipsec_site_connection-action
|
|
- local_id: local_id
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/ipsec-site-connection-update-response.json
|
|
:language: javascript
|
|
|
|
Remove IPsec connection
|
|
=======================
|
|
|
|
.. rest_method:: DELETE /v2.0/vpn/ipsec-site-connections/{connection_id}
|
|
|
|
Removes an IPsec connection.
|
|
|
|
Normal response codes: 204
|
|
|
|
Error response codes: 401, 404, 409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- connection_id: connection_id-path
|
|
|
|
Response
|
|
--------
|
|
|
|
There is no body content for the response of a successful DELETE request.
|
|
|
|
List VPN endpoint groups
|
|
========================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/endpoint-groups
|
|
|
|
Lists VPN endpoint groups.
|
|
|
|
Use the ``fields`` query parameter to control which fields are
|
|
returned in the response body. Additionally, you can filter results
|
|
by using query string parameters. For information, see `Filtering
|
|
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
|
-specification#Filtering_and_Column_Selection>`__.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- fields: fields
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- endpoints: endpoints
|
|
- name: name-request
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- type: vpn_endpoint_type
|
|
- id: endpoint_group_id-body-response
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/vpn-endpoint-groups-list-response.json
|
|
:language: javascript
|
|
|
|
Create VPN endpoint group
|
|
=========================
|
|
|
|
.. rest_method:: POST /v2.0/vpn/endpoint-groups
|
|
|
|
Creates a VPN endpoint group.
|
|
|
|
The endpoint group contains one or more endpoints of a specific
|
|
type that you can use to create a VPN connections.
|
|
|
|
Normal response codes: 201
|
|
|
|
Error response codes: 400, 401
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- endpoints: endpoints
|
|
- type: vpn_endpoint_type
|
|
- description: description-request
|
|
- name: name-request
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/vpn-endpoint-group-create-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- endpoints: endpoints
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- type: vpn_endpoint_type
|
|
- id: endpoint_group_id-body-response
|
|
- name: name-request
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/vpn-endpoint-group-create-response.json
|
|
:language: javascript
|
|
|
|
Show VPN endpoint group
|
|
=======================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/endpoint-groups/{endpoint_group_id}
|
|
|
|
Shows details for a VPN endpoint group.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- endpoint_group_id: endpoint_group_id-path
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- endpoints: endpoints
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- type: vpn_endpoint_type
|
|
- id: endpoint_group_id-body-response
|
|
- name: name-request
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/vpn-endpoint-group-show-response.json
|
|
:language: javascript
|
|
|
|
Update VPN endpoint group
|
|
=========================
|
|
|
|
.. rest_method:: PUT /v2.0/vpn/endpoint-groups/{endpoint_group_id}
|
|
|
|
Updates settings for a VPN endpoint group.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 400, 401, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- description: description-request
|
|
- name: name-request
|
|
- endpoint_group_id: endpoint_group_id-path
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/vpn-endpoint-group-update-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- endpoints: endpoints
|
|
- description: description-request
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- type: vpn_endpoint_type
|
|
- id: endpoint_group_id-body-response
|
|
- name: name-request
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/vpn-endpoint-group-update-response.json
|
|
:language: javascript
|
|
|
|
Remove VPN endpoint group
|
|
=========================
|
|
|
|
.. rest_method:: DELETE /v2.0/vpn/endpoint-groups/{endpoint_group_id}
|
|
|
|
Removes a VPN endpoint group.
|
|
|
|
Normal response codes: 204
|
|
|
|
Error response codes: 401, 404, 409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- endpoint_group_id: endpoint_group_id-path
|
|
|
|
Response
|
|
--------
|
|
|
|
There is no body content for the response of a successful DELETE request.
|
|
|
|
List VPN services
|
|
=================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/vpnservices
|
|
|
|
Lists all VPN services.
|
|
|
|
The list might be empty.
|
|
|
|
Use the ``fields`` query parameter to control which fields are
|
|
returned in the response body. Additionally, you can filter results
|
|
by using query string parameters. For information, see `Filtering
|
|
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
|
-specification#Filtering_and_Column_Selection>`__.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- fields: fields
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- vpnservices: vpnservices
|
|
- router_id: router_id
|
|
- status: vpnservice-status
|
|
- name: name-request
|
|
- external_v6_ip: external_v6_ip
|
|
- admin_state_up: admin_state_up
|
|
- subnet_id: subnet_id
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- external_v4_ip: external_v4_ip
|
|
- id: vpnservice_id-body-response
|
|
- description: description-request
|
|
- flavor_id: flavor-id-response
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/vpnservices-list-response.json
|
|
:language: javascript
|
|
|
|
Create VPN service
|
|
==================
|
|
|
|
.. rest_method:: POST /v2.0/vpn/vpnservices
|
|
|
|
Creates a VPN service.
|
|
|
|
The service is associated with a router. After you create the
|
|
service, it can contain multiple VPN connections.
|
|
|
|
An optional ``flavor_id`` attribute can be passed to enable dynamic
|
|
selection of an appropriate provider if configured by the operator.
|
|
It is only available when ``vpn-flavors`` extension is enabled.
|
|
The basic selection algorithm chooses the provider in the first
|
|
service profile currently associated with flavor. This option can
|
|
only be set in ``POST`` operation.
|
|
|
|
Normal response codes: 201
|
|
|
|
Error response codes: 400, 401
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- vpnservice: vpnservice
|
|
- router_id: router_id
|
|
- description: description-request
|
|
- admin_state_up: admin_state_up
|
|
- subnet_id: subnet_id
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- name: name-request
|
|
- flavor_id: flavor-id-request
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/vpnservice-create-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- vpnservice: vpnservice
|
|
- router_id: router_id
|
|
- status: vpnservice-status
|
|
- name: name-request
|
|
- external_v6_ip: external_v6_ip
|
|
- admin_state_up: admin_state_up
|
|
- subnet_id: subnet_id
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- external_v4_ip: external_v4_ip
|
|
- id: vpnservice_id-body-response
|
|
- description: description-request
|
|
- flavor_id: flavor-id-response
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/vpnservice-create-response.json
|
|
:language: javascript
|
|
|
|
Show VPN service details
|
|
========================
|
|
|
|
.. rest_method:: GET /v2.0/vpn/vpnservices/{service_id}
|
|
|
|
Shows details for a VPN service.
|
|
|
|
If the user is not an administrative user and the VPN service
|
|
object does not belong to the tenant account for the user, the
|
|
operation returns the ``Forbidden (403)`` response code.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 401, 403, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- service_id: vpnservice_id-path
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- vpnservice: vpnservice
|
|
- router_id: router_id
|
|
- status: vpnservice-status
|
|
- name: name-request
|
|
- external_v6_ip: external_v6_ip
|
|
- admin_state_up: admin_state_up
|
|
- subnet_id: subnet_id
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- external_v4_ip: external_v4_ip
|
|
- id: vpnservice_id-body-response
|
|
- description: description-request
|
|
- flavor_id: flavor-id-response
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/vpnservice-show-response.json
|
|
:language: javascript
|
|
|
|
Update VPN service
|
|
==================
|
|
|
|
.. rest_method:: PUT /v2.0/vpn/vpnservices/{service_id}
|
|
|
|
Updates a VPN service.
|
|
|
|
Updates the attributes of a VPN service. You cannot update a
|
|
service with a ``PENDING_*`` status.
|
|
|
|
Normal response codes: 200
|
|
|
|
Error response codes: 400, 401, 404
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- vpnservice: vpnservice
|
|
- description: description-request
|
|
- name: name-request
|
|
- admin_state_up: admin_state_up
|
|
- service_id: vpnservice_id-path
|
|
|
|
Request Example
|
|
---------------
|
|
|
|
.. literalinclude:: samples/vpn/vpnservice-update-request.json
|
|
:language: javascript
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- vpnservice: vpnservice
|
|
- router_id: router_id
|
|
- status: vpnservice-status
|
|
- name: name-request
|
|
- external_v6_ip: external_v6_ip
|
|
- admin_state_up: admin_state_up
|
|
- subnet_id: subnet_id
|
|
- tenant_id: project_id
|
|
- project_id: project_id
|
|
- external_v4_ip: external_v4_ip
|
|
- id: vpnservice_id-body-response
|
|
- description: description-request
|
|
- flavor_id: flavor-id-response
|
|
|
|
Response Example
|
|
----------------
|
|
|
|
.. literalinclude:: samples/vpn/vpnservice-update-response.json
|
|
:language: javascript
|
|
|
|
Remove VPN service
|
|
==================
|
|
|
|
.. rest_method:: DELETE /v2.0/vpn/vpnservices/{service_id}
|
|
|
|
Removes a VPN service.
|
|
|
|
If the service has connections, the request is rejected.
|
|
|
|
Normal response codes: 204
|
|
|
|
Error response codes: 401, 404, 409
|
|
|
|
Request
|
|
-------
|
|
|
|
.. rest_parameters:: parameters.yaml
|
|
|
|
- service_id: vpnservice_id-path
|
|
|
|
Response
|
|
--------
|
|
|
|
There is no body content for the response of a successful DELETE request.
|