From 1fc1f0eae479ff9e626261964e985ffc6395f479 Mon Sep 17 00:00:00 2001 From: Slawek Kaplonski Date: Fri, 15 Nov 2019 07:57:16 +0000 Subject: [PATCH] Remove 'interconnection' API extension definition (neutron-interconnection) Neutron-interconnection project has no activity since very long time. There is no any implementation done in the repo so far. So during the Shanghai PTG, we agreed that we will drop neutron-inteconnection project from stadium projects list and remove its api-ref from neutron-lib. This partially reverts commit 888a28d5982a763d8fc8f8211b3c00f763e8b099. It don't rever original release note and adds new release note about removal of interconnection API from neutron-lib. Change-Id: I186a8f42e1d387bfb31025b0c5c224a86d00cd6e --- api-ref/source/v2/index.rst | 4 - api-ref/source/v2/interconnection.inc | 237 ------------------ api-ref/source/v2/parameters.yaml | 104 -------- .../interconnection-create-request.json | 11 - .../interconnection-create-response.json | 14 -- .../interconnection-show-response.json | 16 -- .../interconnection-update-request.json | 5 - .../interconnection-update-response.json | 16 -- .../interconnections-list-response.json | 18 -- neutron_lib/api/definitions/__init__.py | 2 - neutron_lib/api/definitions/base.py | 3 - .../api/definitions/interconnection.py | 125 --------- .../api/definitions/test_interconnection.py | 24 -- ...ction-api-definition-4ff88c583f2fe47b.yaml | 8 + 14 files changed, 8 insertions(+), 579 deletions(-) delete mode 100644 api-ref/source/v2/interconnection.inc delete mode 100644 api-ref/source/v2/samples/interconnection/interconnection-create-request.json delete mode 100644 api-ref/source/v2/samples/interconnection/interconnection-create-response.json delete mode 100644 api-ref/source/v2/samples/interconnection/interconnection-show-response.json delete mode 100644 api-ref/source/v2/samples/interconnection/interconnection-update-request.json delete mode 100644 api-ref/source/v2/samples/interconnection/interconnection-update-response.json delete mode 100644 api-ref/source/v2/samples/interconnection/interconnections-list-response.json delete mode 100644 neutron_lib/api/definitions/interconnection.py delete mode 100644 neutron_lib/tests/unit/api/definitions/test_interconnection.py create mode 100644 releasenotes/notes/remove-neutron-interconnection-api-definition-4ff88c583f2fe47b.yaml diff --git a/api-ref/source/v2/index.rst b/api-ref/source/v2/index.rst index a0b2c8abd..cd95b3160 100644 --- a/api-ref/source/v2/index.rst +++ b/api-ref/source/v2/index.rst @@ -95,10 +95,6 @@ BGP/MPLS VPN Interconnection Logging ####### .. include:: logging.inc -############################### -Neutron-Neutron Interconnection -############################### -.. include:: interconnection.inc ################# Networking Agents ################# diff --git a/api-ref/source/v2/interconnection.inc b/api-ref/source/v2/interconnection.inc deleted file mode 100644 index 3500e2ef5..000000000 --- a/api-ref/source/v2/interconnection.inc +++ /dev/null @@ -1,237 +0,0 @@ -.. -*- rst -*- - -=============================== -Neutron-Neutron Interconnection -=============================== - -Introduces a new ``interconnection`` resource. - -When an interconnection is created by a tenant, parameters specific to the -interconnection mechanism (``local_parameters`` and ``remote_parameters``) are -only visible by the admin or users with specific role (default role: -``neutron_interconnection_peer``). - -Creates, modifies, and deletes Neutron-Neutron interconnections. - -List interconnections -===================== - -.. rest_method:: GET /v2.0/interconnection/interconnections - -Lists all interconnections belonging to the project. - -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 `__. - -Normal response codes: 200 - -Error response codes: 400, 401, 403 - -Request -------- - -.. rest_parameters:: parameters.yaml - - - fields: fields - -Response Parameters -------------------- - -.. rest_parameters:: parameters.yaml - - - interconnections: interconnections - - project_id: project_id - - id: interconnection-id-body - - name: interconnection-name-required - - type: interconnection-type-required - - state: interconnection-state - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - - remote_interconnection_id: interconnection-remote_interconnection_id - - local_parameters: interconnection-local_parameters - - remote_parameters: interconnection-remote_parameters - -Response Example ----------------- - -.. literalinclude:: samples/interconnection/interconnections-list-response.json - :language: javascript - -Create interconnection -====================== - -.. rest_method:: POST /v2.0/interconnection/interconnections - -Creates an interconnection. - -Normal response codes: 201 - -Error response codes: 400, 401, 403 - -Request -------- - -.. rest_parameters:: parameters.yaml - - - interconnection: interconnection - - project_id: project_id-request - - name: interconnection-name - - type: interconnection-type - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - -Request Example ---------------- - -.. literalinclude:: samples/interconnection/interconnection-create-request.json - :language: javascript - -Response Parameters -------------------- - -.. rest_parameters:: parameters.yaml - - - interconnection: interconnection - - project_id: project_id - - id: interconnection-id-body - - name: interconnection-name-required - - type: interconnection-type-required - - state: interconnection-state - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - - remote_interconnection_id: interconnection-remote_interconnection_id - - local_parameters: interconnection-local_parameters - - remote_parameters: interconnection-remote_parameters - -Response Example ----------------- - -.. literalinclude:: samples/interconnection/interconnection-create-response.json - :language: javascript - -Show interconnection details -============================ - -.. rest_method:: GET /v2.0/interconnection/interconnections/{interconnection_id} - -Shows an interconnection details. - -Normal response codes: 200 - -Error response codes: 401, 403, 404 - -Request -------- - -.. rest_parameters:: parameters.yaml - - - interconnection_id: interconnection-id-path - -Response Parameters -------------------- - -.. rest_parameters:: parameters.yaml - - - interconnection: interconnection - - project_id: project_id - - id: interconnection-id-body - - name: interconnection-name-required - - type: interconnection-type-required - - state: interconnection-state - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - - remote_interconnection_id: interconnection-remote_interconnection_id - - local_parameters: interconnection-local_parameters - - remote_parameters: interconnection-remote_parameters - -Response Example ----------------- - -.. literalinclude:: samples/interconnection/interconnection-show-response.json - :language: javascript - -Update an interconnection -========================= - -.. rest_method:: PUT /v2.0/interconnection/interconnections/{interconnection_id} - -Updates an interconnection. - -Normal response codes: 201 - -Error response codes: 400, 401, 403, 404 - -Request -------- -A user can only update the name parameter. - -.. rest_parameters:: parameters.yaml - - - interconnection_id: interconnection-id-path - - interconnection: interconnection - - name: interconnection-name - -Request Example ---------------- - -.. literalinclude:: samples/interconnection/interconnection-update-request.json - :language: javascript - -Response Parameters -------------------- - -.. rest_parameters:: parameters.yaml - - - interconnection: interconnection - - project_id: project_id - - id: interconnection-id-body - - name: interconnection-name-required - - type: interconnection-type-required - - state: interconnection-state - - local_resource_id: interconnection-local_resource_id - - remote_resource_id: interconnection-remote_resource_id - - remote_keystone: interconnection-remote_keystone - - remote_region: interconnection-remote_region - - remote_interconnection_id: interconnection-remote_interconnection_id - - local_parameters: interconnection-local_parameters - - remote_parameters: interconnection-remote_parameters - -Response Example ----------------- - -.. literalinclude:: samples/interconnection/interconnection-update-response.json - :language: javascript - -Delete interconnection -====================== - -.. rest_method:: DELETE /v2.0/interconnection/interconnections/{interconnection_id} - -Deletes an interconnection. - -Normal response codes: 204 - -Error response codes: 401, 403, 404 - -Request -------- - -.. rest_parameters:: parameters.yaml - - - interconnection_id: interconnection-id-path - -Response --------- - -There is no body content for the response of a successful DELETE request. diff --git a/api-ref/source/v2/parameters.yaml b/api-ref/source/v2/parameters.yaml index 82f4effff..e7e866c02 100644 --- a/api-ref/source/v2/parameters.yaml +++ b/api-ref/source/v2/parameters.yaml @@ -133,12 +133,6 @@ ikepolicy_id-path: in: path required: true type: string -interconnection-id-path: - description: | - The ID of the interconnection. - in: path - required: true - type: string ipsecpolicy_id-path: description: | The ID of the IPsec policy. @@ -3383,104 +3377,6 @@ insert_before: in: body required: false type: string -interconnection: - description: | - An ``interconnection`` object. - in: body - required: true - type: object -interconnection-id-body: - description: | - The ID of the ``interconnection``. - in: body - required: true - type: string -interconnection-local_parameters: - description: | - Parameters specific to local interconnection mechanism, represented by a - dict with a type (``bgpvpn``, ``vxlan``, etc...) key and corresponding - identifier (BGPVPN RT, VNI, etc...) value. - in: body - required: false - type: dict -interconnection-local_resource_id: - description: | - The ID of the local Neutron resource (network or router) to interconnect - with remote Neutron resource. - in: body - required: true - type: string -interconnection-name: - description: | - Name of the ``interconnection``. - in: body - required: false - type: string -interconnection-name-required: - description: | - Name of the ``interconnection``. - in: body - required: true - type: string -interconnection-remote_interconnection_id: - description: | - ID of the symmetric ``interconnection`` exchanged with remote Neutron. - in: body - required: true - type: string -interconnection-remote_keystone: - description: | - ``auth_url`` of the remote Keystone service. - in: body - required: false - type: string -interconnection-remote_parameters: - description: | - Parameters specific to remote interconnection mechanism exchanged with - remote Neutron, represented by a dict with a type (``bgpvpn``, ``vxlan``, - etc...) key and corresponding identifier (BGPVPN RT, VNI, etc...) value. - in: body - required: false - type: dict -interconnection-remote_region: - description: | - Remote region name. - in: body - required: false - type: string -interconnection-remote_resource_id: - description: | - The ID of the remote Neutron resource (network or router) to interconnect - with local Neutron resource. - in: body - required: true - type: string -interconnection-state: - description: | - Indicates the state of the ``interconnection``. - in: body - required: true - type: string -interconnection-type: - description: | - Selection of the type of interconnection. Allowed values are ``network_l2``, - ``network_l3`` or ``router``. Default is ``network_l3``. - in: body - required: false - type: string -interconnection-type-required: - description: | - Selection of the type of interconnection. Allowed values are ``network_l2``, - ``network_l3`` or ``router``. Default is ``network_l3``. - in: body - required: true - type: string -interconnections: - description: | - A list of ``interconnection`` objects. - in: body - required: true - type: array interfaces: description: | Router interfaces diff --git a/api-ref/source/v2/samples/interconnection/interconnection-create-request.json b/api-ref/source/v2/samples/interconnection/interconnection-create-request.json deleted file mode 100644 index 09be948be..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-create-request.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "interconnection": { - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "interconnection1", - "type": "network_l3", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne" - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnection-create-response.json b/api-ref/source/v2/samples/interconnection/interconnection-create-response.json deleted file mode 100644 index 2d30b6ead..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-create-response.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "interconnection": { - "id": "1bdffef1-fc49-4299-b9b5-005a2861e716", - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "interconnection1", - "type": "network_l3", - "state": "TO_VALIDATE", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne", - "remote_interconnection_id": null - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnection-show-response.json b/api-ref/source/v2/samples/interconnection/interconnection-show-response.json deleted file mode 100644 index 85874f767..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-show-response.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "interconnection": { - "id": "1bdffef1-fc49-4299-b9b5-005a2861e716", - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "interconnection1", - "type": "router", - "state": "ACTIVE", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne", - "remote_interconnection_id": "5f063750-ad6d-4bbe-8b82-aeb49d48ce2d", - "local_parameters": {"bgpvpn": "64512:10"}, - "remote_parameters": {"bgpvpn": "64512:20"} - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnection-update-request.json b/api-ref/source/v2/samples/interconnection/interconnection-update-request.json deleted file mode 100644 index 04ed9e1b5..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-update-request.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "interconnection": { - "name": "foo" - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnection-update-response.json b/api-ref/source/v2/samples/interconnection/interconnection-update-response.json deleted file mode 100644 index 9dfffbf8d..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnection-update-response.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "interconnection": { - "id": "1bdffef1-fc49-4299-b9b5-005a2861e716", - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "foo", - "type": "network_l2", - "state": "VALIDATED", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne", - "remote_interconnection_id": "5f063750-ad6d-4bbe-8b82-aeb49d48ce2d", - "local_parameters": {"bgpvpn": "64512:10"}, - "remote_parameters": {} - } -} diff --git a/api-ref/source/v2/samples/interconnection/interconnections-list-response.json b/api-ref/source/v2/samples/interconnection/interconnections-list-response.json deleted file mode 100644 index efd1e62ba..000000000 --- a/api-ref/source/v2/samples/interconnection/interconnections-list-response.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "interconnections": [ - { - "id": "1bdffef1-fc49-4299-b9b5-005a2861e716", - "project_id": "5455570dafa34c32abb69c70005a57de", - "name": "interconnection1", - "type": "router", - "state": "ACTIVE", - "local_resource_id": "5d6820bf-a528-4e0c-85df-c2e771368d55", - "remote_resource_id": "a02d408d-7493-4291-b7bc-56894d063693", - "remote_keystone": "http://10.0.0.100/identity", - "remote_region": "RegionOne", - "remote_interconnection_id": "5f063750-ad6d-4bbe-8b82-aeb49d48ce2d", - "local_parameters": {"bgpvpn": "64512:10"}, - "remote_parameters": {"bgpvpn": "64512:20"} - } - ] -} diff --git a/neutron_lib/api/definitions/__init__.py b/neutron_lib/api/definitions/__init__.py index a504a90d4..b5ba33b43 100644 --- a/neutron_lib/api/definitions/__init__.py +++ b/neutron_lib/api/definitions/__init__.py @@ -48,7 +48,6 @@ from neutron_lib.api.definitions import floating_ip_port_forwarding from neutron_lib.api.definitions import floatingip_autodelete_internal from neutron_lib.api.definitions import floatingip_pools from neutron_lib.api.definitions import flowclassifier -from neutron_lib.api.definitions import interconnection from neutron_lib.api.definitions import ip_allocation from neutron_lib.api.definitions import ip_substring_port_filtering from neutron_lib.api.definitions import l2_adjacency @@ -154,7 +153,6 @@ _ALL_API_DEFINITIONS = { floating_ip_port_forwarding, floatingip_autodelete_internal, floatingip_pools, - interconnection, ip_allocation, ip_substring_port_filtering, l2_adjacency, diff --git a/neutron_lib/api/definitions/base.py b/neutron_lib/api/definitions/base.py index 5897a3c05..a4dd0aab5 100644 --- a/neutron_lib/api/definitions/base.py +++ b/neutron_lib/api/definitions/base.py @@ -168,9 +168,6 @@ KNOWN_EXTENSIONS = ( # https://opendev.org/openstack/networking-sfc: 'flow_classifier', 'sfc', - - # https://opendev.org/openstack/neutron-interconnection: - 'interconnection', ) KNOWN_KEYWORDS = ( diff --git a/neutron_lib/api/definitions/interconnection.py b/neutron_lib/api/definitions/interconnection.py deleted file mode 100644 index 08abc7359..000000000 --- a/neutron_lib/api/definitions/interconnection.py +++ /dev/null @@ -1,125 +0,0 @@ -# All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from neutron_lib.api.definitions import l3 -from neutron_lib.db import constants as db_const - -# The alias of the extension. -ALIAS = 'interconnection' - -# Whether or not this extension is simply signaling behavior to the user -# or it actively modifies the attribute map. -IS_SHIM_EXTENSION = False - -# Whether the extension is marking the adoption of standardattr model for -# legacy resources, or introducing new standardattr attributes. False or -# None if the standardattr model is adopted since the introduction of -# resource extension. -# If this is True, the alias for the extension should be prefixed with -# 'standard-attr-'. -IS_STANDARD_ATTR_EXTENSION = False - -# The name of the extension. -NAME = 'Neutron-Neutron Interconnection' - -# The description of the extension. -DESCRIPTION = "Provides support for Neutron-Neutron Interconnections" - -# A timestamp of when the extension was introduced. -UPDATED_TIMESTAMP = "2019-01-14T16:30:00-00:00" - -API_PREFIX = 'interconnection' - -# The specific resources and/or attributes for the extension (optional). -RESOURCE_NAME = 'interconnection' -COLLECTION_NAME = 'interconnections' - -NETWORK_L2 = 'network_l2' -NETWORK_L3 = 'network_l3' -VALID_TYPES = [l3.ROUTER, NETWORK_L2, NETWORK_L3] - -# The resource attribute map for the extension. -RESOURCE_ATTRIBUTE_MAP = { - COLLECTION_NAME: { - 'id': {'allow_post': False, 'allow_put': False, - 'validate': {'type:uuid': None}, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True, - 'primary_key': True}, - 'project_id': {'allow_post': True, 'allow_put': False, - 'validate': { - 'type:string': db_const.PROJECT_ID_FIELD_SIZE}, - 'required_by_policy': True, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True}, - 'name': {'allow_post': True, 'allow_put': True, - 'default': '', - 'validate': {'type:string': db_const.NAME_FIELD_SIZE}, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True}, - 'type': {'allow_post': True, 'allow_put': False, - 'validate': {'type:values': VALID_TYPES}, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True}, - 'state': {'allow_post': False, 'allow_put': False, - 'is_filter': True, 'is_sort_key': True, - 'is_visible': True}, - 'local_resource_id': {'allow_post': True, 'allow_put': False, - 'validate': {'type:uuid': None}, - 'is_visible': True}, - 'remote_resource_id': {'allow_post': True, 'allow_put': False, - 'validate': {'type:uuid': None}, - 'is_visible': True}, - 'remote_keystone': {'allow_post': True, 'allow_put': False, - 'validate': {'type:string_or_none': None}, - 'is_visible': True}, - 'remote_region': {'allow_post': True, 'allow_put': False, - 'validate': {'type:string_or_none': None}, - 'is_visible': True}, - 'remote_interconnection_id': {'allow_post': False, 'allow_put': False, - 'validate': {'type:uuid_or_none': None}, - 'is_visible': True}, - 'local_parameters': {'allow_post': False, 'allow_put': False, - 'is_visible': True}, - 'remote_parameters': {'allow_post': False, 'allow_put': False, - 'is_visible': True} - }, -} - -# The subresource attribute map for the extension. It adds child resources -# to main extension's resource. The subresource map must have a parent and -# a parameters entry. If an extension does not need such a map, None can -# be specified (mandatory). -SUB_RESOURCE_ATTRIBUTE_MAP = None - -# The action map: it associates verbs with methods to be performed on -# the API resource. -ACTION_MAP = { - RESOURCE_NAME: { - 'refresh': 'PUT' - } -} - -# The action status. -ACTION_STATUS = { -} - -# The list of required extensions. -REQUIRED_EXTENSIONS = [ - l3.ALIAS -] - -# The list of optional extensions. -OPTIONAL_EXTENSIONS = [ -] diff --git a/neutron_lib/tests/unit/api/definitions/test_interconnection.py b/neutron_lib/tests/unit/api/definitions/test_interconnection.py deleted file mode 100644 index 7306c8656..000000000 --- a/neutron_lib/tests/unit/api/definitions/test_interconnection.py +++ /dev/null @@ -1,24 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from neutron_lib.api.definitions import interconnection -from neutron_lib.tests.unit.api.definitions import base - - -class InterconnectionDefinitionTestCase(base.DefinitionBaseTestCase): - extension_module = interconnection - extension_resources = (interconnection.COLLECTION_NAME,) - extension_attributes = ('type', 'state', - 'local_resource_id', 'remote_resource_id', - 'remote_keystone', 'remote_region', - 'remote_interconnection_id', 'local_parameters', - 'remote_parameters') diff --git a/releasenotes/notes/remove-neutron-interconnection-api-definition-4ff88c583f2fe47b.yaml b/releasenotes/notes/remove-neutron-interconnection-api-definition-4ff88c583f2fe47b.yaml new file mode 100644 index 000000000..d811116ec --- /dev/null +++ b/releasenotes/notes/remove-neutron-interconnection-api-definition-4ff88c583f2fe47b.yaml @@ -0,0 +1,8 @@ +--- +other: + - | + Removes the definition of ``interconnection`` API extension for + neutron-interconnection project. + Neutron-interconnection project was removed from Neutron stadium due to lack + of activity for long time so there is no need to keep the API definition + in the official Neutron's API definitions.