Retire Packaging Deb project repos

This commit is part of a series to retire the Packaging Deb
project. Step 2 is to remove all content from the project
repos, replacing it with a README notification where to find
ongoing work, and how to recover the repo if needed at some
future point (as in
https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project).

Change-Id: If89c706c961db8902a3b8676989789fda8bb3b94
This commit is contained in:
Tony Breeds
2017-09-12 16:03:06 -06:00
parent 90d202989c
commit b65577e5a6
680 changed files with 14 additions and 47054 deletions

View File

@@ -1,7 +0,0 @@
[run]
branch = True
source = neutron_lib
omit = neutron_lib/tests/*
[report]
ignore_errors = True

32
.gitignore vendored
View File

@@ -1,32 +0,0 @@
AUTHORS
build/*
build-stamp
ChangeLog
api-ref/build/
cover/
covhtml/
dist/
doc/build
doc/source/reference/modules/
*.DS_Store
*.pyc
neutron_lib.egg-info/
neutron_lib/vcsversion.py
neutron_lib/versioninfo
pbr*.egg/
releasenotes/build
setuptools*.egg/
*.log
*.mo
*.sw?
*~
/.*
!/.coveragerc
!/.gitignore
!/.gitreview
!/.mailmap
!/.pylintrc
!/.testr.conf
# Files created by releasenotes build
releasenotes/build

View File

@@ -1,4 +0,0 @@
[gerrit]
host=review.openstack.org
port=29418
project=openstack/neutron-lib.git

View File

@@ -1,3 +0,0 @@
# Format is:
# <preferred e-mail> <other e-mail 1>
# <preferred e-mail> <other e-mail 2>

View File

@@ -1,8 +0,0 @@
[DEFAULT]
test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \
OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \
OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \
${PYTHON:-python} -m subunit.run discover -t ./ \
${OS_TEST_PATH:-./neutron_lib/tests/unit} $LISTOPT $IDOPTION
test_id_option=--load-list $IDFILE
test_list_option=--list

View File

@@ -1,14 +0,0 @@
If you would like to contribute to the development of OpenStack, you must
follow the steps in this page:
http://docs.openstack.org/infra/manual/developers.html
If you already have a good understanding of how the system works and your
OpenStack accounts are set up, you can skip to the development workflow
section of this documentation to learn how changes to OpenStack should be
submitted for review via the Gerrit tool:
http://docs.openstack.org/infra/manual/developers.html#development-workflow
Pull requests submitted through GitHub will be ignored.
Bugs should be filed on Launchpad, not GitHub:
https://bugs.launchpad.net/neutron-lib

View File

@@ -1,22 +0,0 @@
neutron-lib Style Commandments
==============================
- Step 1: Read the OpenStack Style Commandments
https://docs.openstack.org/hacking/latest/
- Step 2: Read on
Neutron Library Specific Commandments
-------------------------------------
- [N521] Validate that jsonutils module is used instead of json
- [N524] Prevent use of deprecated contextlib.nested.
- [N525] Python 3: Do not use xrange.
- [N526] Python 3: do not use basestring.
- [N527] Python 3: do not use dict.iteritems.
- [N529] Method's default argument shouldn't be mutable
- [N530] No importing of neutron; should be ignored in neutron itself
- [N532] Validate that LOG.warning is used instead of LOG.warn. The latter is deprecated.
- [N534] Exception messages should be translated
- [N535] Usage of Python eventlet module not allowed
- [N536] Use assertIsNone/assertIsNotNone rather than assertEqual/assertIs to check None values.
- [N537] Don't translate logs.

176
LICENSE
View File

@@ -1,176 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

14
README Normal file
View File

@@ -0,0 +1,14 @@
This project is no longer maintained.
The contents of this repository are still available in the Git
source code management system. To see the contents of this
repository before it reached its end of life, please check out the
previous commit with "git checkout HEAD^1".
For ongoing work on maintaining OpenStack packages in the Debian
distribution, please see the Debian OpenStack packaging team at
https://wiki.debian.org/OpenStack/.
For any further questions, please email
openstack-dev@lists.openstack.org or join #openstack-dev on
Freenode.

View File

@@ -1,24 +0,0 @@
========================
Team and repository tags
========================
.. image:: http://governance.openstack.org/badges/neutron-lib.svg
:target: http://governance.openstack.org/reference/tags/index.html
.. Change things from this point on
===============================
neutron-lib
===============================
Neutron shared routines and utilities
* Free software: Apache license
* Documentation: https://docs.openstack.org/neutron-lib/latest/
* Source: http://git.openstack.org/cgit/openstack/neutron-lib
* Bugs: http://bugs.launchpad.net/neutron
Features
--------
* TODO

View File

@@ -1,230 +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.
#
# neutron documentation build configuration file, created by
# sphinx-quickstart on Sat May 1 15:17:47 2010.
#
# This file is execfile()d with the current directory set to
# its containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import os
import subprocess
import sys
import warnings
import openstackdocstheme
extensions = [
'os_api_ref',
]
html_theme = 'openstackdocs'
html_theme_path = [openstackdocstheme.get_html_theme_path()]
html_theme_options = {
"sidebar_mode": "toc",
}
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath('../../'))
sys.path.insert(0, os.path.abspath('../'))
sys.path.insert(0, os.path.abspath('./'))
# -- General configuration ----------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
# The suffix of source filenames.
source_suffix = '.rst'
# The encoding of source files.
#
# source_encoding = 'utf-8'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'Networking API Reference'
copyright = u'2010-present, OpenStack Foundation'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
from neutron_lib.version import version_info
# The full version, including alpha/beta/rc tags.
release = version_info.release_string()
# The short X.Y version.
version = version_info.version_string()
# Config logABug feature
# html_context allows us to pass arbitrary values into the html template
html_context = {"bug_tag": "api-ref", "bug_project": "neutron"}
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
# today = ''
# Else, today_fmt is used as the format for a strftime call.
# today_fmt = '%B %d, %Y'
# The reST default role (used for this markup: `text`) to use
# for all documents.
# default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
# add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
add_module_names = False
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# -- Options for man page output ----------------------------------------------
# Grouping the document tree for man pages.
# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual'
# -- Options for HTML output --------------------------------------------------
# The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'.
# html_theme_path = ["."]
# html_theme = '_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
# html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
# html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
# html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
# html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
# html_logo = None
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
# html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
# html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
# html_last_updated_fmt = '%b %d, %Y'
git_cmd = ["git", "log", "--pretty=format:'%ad, commit %h'", "--date=local",
"-n1"]
try:
html_last_updated_fmt = subprocess.check_output(git_cmd).decode('utf-8')
except Exception:
warnings.warn('Cannot get last updated time from git repository. '
'Not setting "html_last_updated_fmt".')
# If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities.
# html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
# html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
# html_additional_pages = {}
# If false, no module index is generated.
# html_use_modindex = True
# If false, no index is generated.
# html_use_index = True
# If true, the index is split into individual pages for each letter.
# html_split_index = False
# If true, links to the reST sources are added to the pages.
# html_show_sourcelink = True
# If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served.
# html_use_opensearch = ''
# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
# html_file_suffix = ''
# Output file base name for HTML help builder.
htmlhelp_basename = 'neutrondoc'
# -- Options for LaTeX output -------------------------------------------------
# The paper size ('letter' or 'a4').
# latex_paper_size = 'letter'
# The font size ('10pt', '11pt' or '12pt').
# latex_font_size = '10pt'
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass
# [howto/manual]).
latex_documents = [
('index', 'Neutron.tex', u'OpenStack Networking API Documentation',
u'OpenStack Foundation', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
# the title page.
# latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters.
# latex_use_parts = False
# Additional stuff for the LaTeX preamble.
# latex_preamble = ''
# Documents to append as an appendix to all manuals.
# latex_appendices = []
# If false, no module index is generated.
# latex_use_modindex = True

View File

@@ -1,8 +0,0 @@
=======================
Networking Service APIs
=======================
.. toctree::
:maxdepth: 2
v2/index

View File

@@ -1,238 +0,0 @@
.. -*- rst -*-
========
BGP VPNs
========
A new BGPVPN resource is introduced. It contains a set of parameters for a
BGP-based VPN.
A BGPVPN is created by the admin and given to a tenant who can then associate
it to Networks or Routers.
The BGP VPNs API lists, shows details for, creates, updates, and deletes
BGP VPNs.
List BGP VPNs
=============
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns
Lists BGP VPNs to which the project has access.
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: 400, 401, 403
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- bgpvpns: bgpvpns
- id: bgpvpn-id-body
- name: bgpvpn-name-required
- type: bgpvpn-type-required
- route_distinguishers: bgpvpn-route_distinguishers-required
- route_targets: bgpvpn-route_targets-required
- import_targets: bgpvpn-import_targets-required
- export_targets: bgpvpn-export_targets-required
- networks: bgpvpn-networks-required
- routers: bgpvpn-routers-required
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpns-list-response.json
:language: javascript
Create BGP VPNS
===============
.. rest_method:: POST /v2.0/bgpvpn/bgpvpns
Creates a BGP VPN.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn: bgpvpn
- name: bgpvpn-name
- route_distinguishers: bgpvpn-route_distinguishers
- route_targets: bgpvpn-route_targets
- import_targets: bgpvpn-import_targets
- export_targets: bgpvpn-export_targets
- tenant_id: tenant_id-request
- project_id: project_id-request
- type: bgpvpn-type
Request Example
---------------
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- bgpvpn: bgpvpn
- id: bgpvpn-id-body
- name: bgpvpn-name-required
- type: bgpvpn-type-required
- route_targets: bgpvpn-route_targets-required
- import_targets: bgpvpn-import_targets-required
- export_targets: bgpvpn-export_targets-required
- networks: bgpvpn-networks-required
- routers: bgpvpn-routers-required
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-create-response.json
:language: javascript
Show BGP VPN details
====================
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}
Shows details for a BGP VPN.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- bgpvpn: bgpvpn
- id: bgpvpn-id-body
- name: bgpvpn-name-required
- type: bgpvpn-type-required
- route_distinguishers: bgpvpn-route_distinguishers-required
- route_targets: bgpvpn-route_targets-required
- import_targets: bgpvpn-import_targets-required
- export_targets: bgpvpn-export_targets-required
- networks: bgpvpn-networks-required
- routers: bgpvpn-routers-required
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-show-response.json
:language: javascript
Update a BGP VPN
================
.. rest_method:: PUT /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}
Updates a BGP VPN.
Normal response codes: 201
Error response codes: 400, 401, 403, 404
Request
-------
A non-admin user can only update the name parameter. All other updates require
admin privileges.
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- bgpvpn: bgpvpn
- name: bgpvpn-name
- route_distinguishers: bgpvpn-route_distinguishers
- route_targets: bgpvpn-route_targets
- import_targets: bgpvpn-import_targets
- export_targets: bgpvpn-export_targets
Request Example
---------------
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- bgpvpn: bgpvpn
- id: bgpvpn-id-body
- name: bgpvpn-name-required
- type: bgpvpn-type-required
- route_distinguishers: bgpvpn-route_distinguishers-required
- route_targets: bgpvpn-route_targets-required
- import_targets: bgpvpn-import_targets-required
- export_targets: bgpvpn-export_targets-required
- networks: bgpvpn-networks-required
- routers: bgpvpn-routers-required
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-update-response.json
:language: javascript
Delete BGP VPN
==============
.. rest_method:: DELETE /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}
Deletes a BGP VPN and its network and/or router associations.
Normal response codes: 204
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
Response
--------
There is no body content for the response of a successful DELETE request.

View File

@@ -1,157 +0,0 @@
====================
Network Associations
====================
Associating a BGPVPN to a Network can be done for both BGPVPN of type L2 and of
type L3. For type L3, the semantic is that all Subnets bound to the Network
will be interconnected with the BGP VPN (and thus between themselves).
A given Network can be associated with multiple BGPVPNs.
Associating or disassociating a BGPVPN to a Network is done by manipulating a
Network association API resource as a sub-resource of the BGPVPN resource:
List Network Associations
=========================
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations
Lists network associations for a given BGP VPN.
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: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- network_associations: bgpvpn-network_associations
- id: bgpvpn-network_association_id
- network_id: bgpvpn-network_id
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/network_associations/network_association-list-response.json
:language: javascript
Create Network Association
==========================
.. rest_method:: POST /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations
Creates a network association for a given BGP VPN
Normal response codes: 201
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- network_association: bgpvpn-network_association
- network_id: bgpvpn-network_id
Request Example
---------------
.. literalinclude:: samples/bgpvpn/network_associations/network_association-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- network_association: bgpvpn-network_association
- id: bgpvpn-network_association_id
- network_id: bgpvpn-network_id
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/network_associations/network_association-create-response.json
:language: javascript
Show Network Association details
================================
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations/{network_association_id}
Shows details for a network association.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- network_association_id: bgpvpn-network_association_id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- network_association: bgpvpn-network_association
- id: bgpvpn-network_association_id
- network_id: bgpvpn-network_id
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/network_associations/network_association-show-response.json
:language: javascript
Delete Network Association
==========================
.. rest_method:: DELETE /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations/{network_association_id}
Deletes a network association.
Normal response codes: 204
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- network_association_id: bgpvpn-network_association_id-path
Response
--------
There is no body content for the response of a successful DELETE request.

View File

@@ -1,91 +0,0 @@
=======================
BGP - MPLS VPN Overview
=======================
The ``bgpvpn`` extension implements the BGP VPN Interconnection API
which provides the ability to associate OpenStack networks and/or
routers with Multiprotocol Label Switching (MPLS) Virtual Private
Networks (VPNs) via Border Gateway Protocol (BGP) peering. BGP-MPLS VPNs
are commonly provided by telecommunications service providers to
customers in addition to or instead of Internet connectivity for Wide
Area Networking. This API enables the interconnection with these
WAN VPNs using *Route Targets* to indicate the desired network(s).
On Route Targets
================
``route_targets``, ``import_targets``, ``export_targets`` attributes
- The set of RTs used for import is the union of ``route_targets`` and ``import_targets``.
- The set of RTs used for export is the union of ``route_targets`` and ``export_targets``.
At least one of ``route_targets``, ``import_targets`` or ``export_targets`` options will
typically be defined, but the API will not enforce that and all lists can be
empty.
For instance, in the very typical use case where the BGP VPN uses a single
Route Target for both import and export, the route_targets parameter alone is
enough and will contain one Route target.
On Route Distinguishers (RDs)
=============================
The ``route_distinguishers`` parameter is optional and provides an
indication of the RDs that shall be used for routes announced for
Neutron networks. The contract is that when a list of RDs is specified,
the backend will use, for a said advertisement of a route, one of these
RDs. The motivation for having a list rather than only one RD is to
allow the support for multihoming a VPN prefix (typically for
resiliency, load balancing or anycast). A backend may or may not
support this behavior, and should report an API error in the latter
case. When not specified, the backend will use automatically-assigned
RDs (for instance <ip>:<number> RDs derived from the Provider Edge (PE) IP).
Valid strings for Route Distinguishers and Route Targets
========================================================
Valid strings for a Route Target or a Route Distinguisher are the following:
- <2-byte AS#>:<32bit-number>
- <4-byte AS#>:<16bit-number>
- <4-byte IPv4>:<16bit-number>
======================
BGP - MPLS VPN Caveats
======================
Association constraints
=======================
A given BGP VPN can be associated to multiple networks and/or multiple
routers.
To avoid any ambiguity on semantics in particular the context of
processing associated to a router (e.g. NAT or FWaaS), if a given subnet
in a network is bound to a router, this API does not allow to both
associate the network to an L3 BGP VPN and the router to the same or to
a distinct L3 BGP VPN.
Moreover, for BGP VPNs of type L3, there are possible cases of IP prefix
overlaps that can't be detected by the service plugin before BGP routes
are received, for which the behavior is left undefined by these
specifications (i.e. which of the overlapping routes is being used) and
will depend on the backend. This applies for both router associations
and network associations in the case where traffic is forwarded by a
router and the destination IP belongs both to a prefix of a BGP VPN
associated with the router or with the network originating the traffic,
and to a prefix of a subnet bound to the router; in such a case whether
the traffic will be delivered to the subnet or to the BGP VPN is not
defined by this API.
Connectivity Impact inside Openstack Neutron
============================================
Creating two BGP VPNs with RTs resulting in both VPNs to exchange
routes, and then associating these two BGP VPNs to two networks, will
result in establishing interconnectivity between these two networks,
this simply being the result of applying BGP VPN Route Target semantics
(i.e. without making prefixes to OpenStack networks a particular case).
This similarly applies to router associations.

View File

@@ -1,159 +0,0 @@
.. -*- rst -*-
===================
Router Associations
===================
Associating a BGPVPN to a Router can be done only for BGPVPN of type L3. The
semantic is that all Subnets bound to the Router will be interconnected with
the BGPVPN.
A said Router can be associated with multiple BGPVPNs.
Associating or disassociating a BGPVPN to a Router is done by manipulating a
Router association API resource as a sub-resource of the BGPVPN resource:
List Router Associations
=========================
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations
Lists router associations for a given BGP VPN.
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: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router_associations: bgpvpn-router_associations
- id: bgpvpn-router_association_id
- router_id: bgpvpn-router_id
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-list-response.json
:language: javascript
Create Router Association
==========================
.. rest_method:: POST /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations
Creates a router association for a given BGP VPN
Normal response codes: 201
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- router_association: bgpvpn-router_association
- router_id: bgpvpn-router_id
Request Example
---------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router_association: bgpvpn-router_association
- id: bgpvpn-router_association_id
- router_id: bgpvpn-router_id
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-create-response.json
:language: javascript
Show Router Association details
================================
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{router_association_id}
Shows details for a router association.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- router_association_id: bgpvpn-router_association_id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router_association: bgpvpn-router_association
- id: bgpvpn-router_association_id
- router_id: bgpvpn-router_id
- tenant_id: project_id
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/bgpvpn/router_associations/router_association-show-response.json
:language: javascript
Delete Router Association
==========================
.. rest_method:: DELETE /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{router_association_id}
Deletes a router association.
Normal response codes: 204
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- bgpvpn_id: bgpvpn-id-path
- router_association_id: bgpvpn-router_association_id-path
Response
--------
There is no body content for the response of a successful DELETE request.

View File

@@ -1,83 +0,0 @@
.. -*- rst -*-
==========
Extensions
==========
Extensions introduce features and vendor-specific functionality to
the API.
List extensions
===============
.. rest_method:: GET /v2.0/extensions
Lists available extensions.
Lists available Networking API v2.0 extensions and shows details
for an extension.
Normal response codes: 200
Error response codes: 401
Request
-------
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- extensions: extensions
- name: extension-name
- links: extension-links
- alias: extension-alias-body
- updated: extension-updated
- description: extension-description
Response Example
----------------
.. literalinclude:: samples/extensions/extensions-list-response.json
:language: javascript
Show extension details
======================
.. rest_method:: GET /v2.0/extensions/{alias}
Shows details for an extension, by alias.
The response shows the extension name and its alias. To show
details for an extension, you specify the alias.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- alias: extensions-alias-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- extension: extension
- name: extension-name
- links: extension-links
- alias: extension-alias-body
- updated: extension-updated
- description: extension-description
Response Example
----------------
.. literalinclude:: samples/extensions/extension-show-response.json
:language: javascript

View File

@@ -1,14 +0,0 @@
.. -*- rst -*-
=====
FIP64
=====
.. note:: Currently this extension ``fip64`` is only available for networking-midonet.
This extension ``fip64`` provides
`NAT64 <https://tools.ietf.org/html/rfc6146>`__
functionality by allowing to associate IPv6 floating IPs to IPv4 fixed IPs.
(Without this extension, floating IPs are limited to IPv4.)
This extension does not introduce any resources or attributes.

View File

@@ -1,222 +0,0 @@
.. -*- rst -*-
===============
Firewall Logs
===============
.. note:: Currently this extension ``logging-resource`` is only available for networking-midonet.
Lists, shows information for, creates, updates and deletes firewall logs.
List Firewall Logs
==================
.. rest_method:: GET /v2.0/logging/logging_resources/{logging_resource_id}/firewall_logs
Lists firewall logs.
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
- logging_resource_id: logging_resource_id
- fields: fields
Response
--------
.. rest_parameters:: parameters.yaml
- firewall_logs: firewall_logs
- logging_resource_id: logging_resource_id-body
- id: firewall_log_id-body
- tenant_id: project_id
- project_id: project_id
- description: description
- fw_event: fw_event
- firewall_id: firewall_id-body
Response Example
----------------
.. literalinclude:: samples/firewall_log/firewall_logs-list-response.json
:language: javascript
Create Firewall Log
===================
.. rest_method:: POST /v2.0/logging/logging_resources/{logging_resource_id}/firewall_logs
Creates a firewall log.
Normal response codes: 200
Error response codes: 400, 401, 403
Request
-------
.. rest_parameters:: parameters.yaml
- logging_resource_id: logging_resource_id
- firewall_log: firewall_log
- tenant_id: project_id-request
- project_id: project_id-request
- description: description-request
- fw_event: fw_event-request
- firewall_id: firewall_id-body
Request Example
---------------
.. literalinclude:: samples/firewall_log/firewall_log-create-request.json
:language: javascript
Response
--------
.. rest_parameters:: parameters.yaml
- firewall_log: firewall_log
- logging_resource_id: logging_resource_id-body
- id: firewall_log_id-body
- tenant_id: project_id
- project_id: project_id
- description: description
- fw_event: fw_event
- firewall_id: firewall_id-body
Response Example
----------------
.. literalinclude:: samples/firewall_log/firewall_log-create-response.json
:language: javascript
Show Firewall Log Details
=========================
.. rest_method:: GET /v2.0/logging/logging_resources/{logging_resource_id}/firewall_logs/{firewall_log_id}
Shows details for a firewall log.
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: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- logging_resource_id: logging_resource_id
- firewall_log_id: firewall_log_id
- fields: fields
Response
--------
.. rest_parameters:: parameters.yaml
- firewall_log: firewall_log
- logging_resource_id: logging_resource_id-body
- id: firewall_log_id-body
- tenant_id: project_id
- project_id: project_id
- description: description
- fw_event: fw_event
- firewall_id: firewall_id-body
Response Example
----------------
.. literalinclude:: samples/firewall_log/firewall_log-show-response.json
:language: javascript
Update Firewall Log
===================
.. rest_method:: PUT /v2.0/logging/logging_resources/{logging_resource_id}/firewall_logs/{firewall_log_id}
Updates a firewall log.
Normal response codes: 200
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- logging_resource_id: logging_resource_id
- firewall_log_id: firewall_log_id
- firewall_log: firewall_log
- description: description-request-put
- fw_event: fw_event-request-put
Request Example
----------------
.. literalinclude:: samples/firewall_log/firewall_log-update-request.json
:language: javascript
Response
--------
.. rest_parameters:: parameters.yaml
- firewall_log: firewall_log
- logging_resource_id: logging_resource_id-body
- id: firewall_log_id-body
- tenant_id: project_id
- project_id: project_id
- description: description
- fw_event: fw_event
- firewall_id: firewall_id-body
Response Example
----------------
.. literalinclude:: samples/firewall_log/firewall_log-update-response.json
:language: javascript
Delete Firewall Log
===================
.. rest_method:: DELETE /v2.0/logging/logging_resources/{logging_resource_id}/firewall_logs/{firewall_log_id}
Deletes a firewall log.
Normal response codes: 202
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- logging_resource_id: logging_resource_id
- firewall_log_id: firewall_log_id
Response
--------
There is no body content for the response of a successful DELETE request.

View File

@@ -1,541 +0,0 @@
.. -*- rst -*-
=====================================================================
Networking Flavors Framework v2.0 (CURRENT) (flavor, service_profile)
=====================================================================
Extension that allows user selection of operator-curated flavors
during resource creation.
Users can check if flavor available by performing a GET on the
/v2.0/extensions/flavors. If it is unavailable,there is an 404 error
response (itemNotFound).
Refer `Show extension details <#show-extension-details>`__ for more details.
List flavors
============
.. rest_method:: GET /v2.0/flavors
Lists all flavors visible to the project.
The list can be empty.
Standard query parameters are supported on the URI. 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>`__. If Neutron configuration supports
pagination by overriding allow_pagination = false, the ``marker`` query
parameter can set the last element id the client has seen and ``limit``
set the maximum number of items to return. if Neutron configuration has
allow_sorting = true, ``sort_key`` and ``sort_dir`` pairs can be used
where sort direction is 'asc' or 'desc'.
Normal response codes: 200
Error response codes: 401
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- flavors: flavors
- id: flavor-id
- service_type: flavor-service_type
- name: flavor-name
- description: flavor-description
- enabled: flavor-enabled
- service_profiles: flavor-service_profiles
Response Example
----------------
.. literalinclude:: samples/flavors/flavors-list-response.json
:language: javascript
Create flavor
=============
.. rest_method:: POST /v2.0/flavors
Creates a flavor.
This operation establishes a new flavor.
The service_type to which the flavor applies is a required
parameter. The corresponding service plugin must have been
activated as part of the configuration.
Check `Service providers <#list-service-providers>`__ for how to see
currently loaded service types. Additionally the service plugin
needs to support the use of flavors. For example, the LOADBALANCERV2
service type using the LBaaSv2 API currently supports Neutron service
flavors.
Creation currently limited to administrators. Other users will
receive a ``Forbidden 403`` response code with a response body
NeutronError message expressing that creation is disallowed by
policy.
Until one or more service profiles are associated with the flavor
by the operator, attempts to use the flavor during resource
creations will currently return a ``Not Found 404`` with a response
body that indicates no service profile could be found.
If the API cannot fulfill the request due to insufficient data or
data that is not valid, the service returns the HTTP ``Bad Request
(400)`` response code with information about the failure in the
response body. Validation errors require that you correct the error
and submit the request again.
Normal response codes: 201
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- flavor: flavor
- service_type: flavor-service_type
- enabled: flavor-enabled-request
- description: flavor-description-request
- name: flavor-name-request
Request Example
---------------
.. literalinclude:: samples/flavors/flavor-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- flavor: flavor
- id: flavor-id
- service_type: flavor-service_type
- name: flavor-name
- description: flavor-description
- enabled: flavor-enabled
- service_profiles: flavor-service_profiles
Response Example
----------------
.. literalinclude:: samples/flavors/flavor-create-response.json
:language: javascript
Show flavor details
===================
.. rest_method:: GET /v2.0/flavors/{flavor_id}
Shows details for a flavor.
This operation returns a flavor object by ID. If you are not an
administrative user and the flavor object is not visible to your
project account, the service returns the HTTP ``Forbidden (403)``
response code.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- flavor_id: flavor_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- flavor: flavor
- id: flavor-id
- service_type: flavor-service_type
- name: flavor-name
- description: flavor-description
- enabled: flavor-enabled
- service_profiles: flavor-service_profiles
Response Example
----------------
.. literalinclude:: samples/flavors/flavor-show-response.json
:language: javascript
Update flavor
=============
.. rest_method:: PUT /v2.0/flavors/{flavor_id}
Updates a flavor.
The service_type cannot be updated as there may be associated
service profiles and consumers depending on the value.
Normal response codes: 200
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- flavor_id: flavor_id
- flavor: flavor
- name: flavor-name-request
- description: flavor-description-request
- enabled: flavor-enabled-request
Request Example
---------------
.. literalinclude:: samples/flavors/flavor-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- flavor: flavor
- id: flavor-id
- service_type: flavor-service_type
- name: flavor-name
- description: flavor-description
- enabled: flavor-enabled
- service_profiles: flavor-service_profiles
Response Example
----------------
.. literalinclude:: samples/flavors/flavor-update-response.json
:language: javascript
Delete flavor
=============
.. rest_method:: DELETE /v2.0/flavors/{flavor_id}
Deletes a flavor.
Normal response codes: 204
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- flavor_id: flavor_id
Response
--------
No body content is returned on a successful DELETE.
Associate flavor with a service profile
=======================================
.. rest_method:: POST /v2.0/flavors/{flavor_id}/service_profiles
Associate a flavor with a service profile.
A flavor can be associated with more than one profile.
Will return ``409 Conflict`` if association already exists.
Normal response codes: 201
Error response codes: 400, 401, 403, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- flavor_id: flavor_id
- service_profile: service_profile
- id: service_profile-id
Request Example
---------------
.. literalinclude:: samples/flavors/flavor-associate-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- service_profile: service_profile
- id: id
Response Example
----------------
.. literalinclude:: samples/flavors/flavor-associate-response.json
:language: javascript
Disassociate a flavor.
======================
.. rest_method:: DELETE /v2.0/flavors/{flavor_id}/service_profiles/{profile_id}
Disassociate a flavor from a service profile.
Normal response codes: 204
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- profile_id: profile_id
- flavor_id: flavor_id
Response
--------
No body content is returned on a successful disassociation.
List service profiles
=====================
.. rest_method:: GET /v2.0/service_profiles
Lists all service profiles visible for the tenant account.
The list can be empty.
Standard query parameters are supported on the URI.
Normal response codes: 200
Error response codes: 401
Request
-------
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- service_profiles: service_profiles
- id: service_profile-id
- enabled: service_profile-enabled
- driver: service_profile-driver
- description: service_profile-description
- metainfo: service_profile-metainfo
Response Example
----------------
.. literalinclude:: samples/flavors/service-profiles-list-response.json
:language: javascript
Create service profile
======================
.. rest_method:: POST /v2.0/service_profiles
Creates a service profile.
This operation establishes a new service profile that can be
associated with one or more flavors.
Either metadata or a driver is required.
If a driver is specified but does not exist, call will return a
``Not found 404`` error with the response body explaining that the
driver could not be found.
Creation currently limited to administrators. Other users will
receive a ``Forbidden 403`` response code with a response body
NeutronError message expressing that creation is disallowed by
policy.
If the API cannot fulfill the request due to insufficient data or
data that is not valid, the service returns the HTTP ``Bad Request
(400)`` response code with information about the failure in the
response body. Validation errors require that you correct the error
and submit the request again.
Normal response codes: 201
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- service_profile: service_profile
- description: service_profile-description-request
- metainfo: service_profile-metainfo-request
- enabled: service_profile-enabled-request
- driver: service_profile-driver-request
Request Example
---------------
.. literalinclude:: samples/flavors/service-profile-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- service_profile: service_profile
- id: service_profile-id
- enabled: service_profile-enabled
- driver: service_profile-driver
- description: service_profile-description
- metainfo: service_profile-metainfo
Response Example
----------------
.. literalinclude:: samples/flavors/service-profile-create-response.json
:language: javascript
Show service profile details
============================
.. rest_method:: GET /v2.0/service_profiles/{profile_id}
Shows details for a service profile.
This operation returns a service profile object by ID. If you are
not an administrative user and the object is not visible to your
tenant account, the service returns the HTTP ``Forbidden (403)``
response code.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- profile_id: profile_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- service_profile: service_profile
- id: service_profile-id
- enabled: service_profile-enabled
- driver: service_profile-driver
- description: service_profile-description
- metainfo: service_profile-metainfo
Response Example
----------------
.. literalinclude:: samples/flavors/service-profile-show-response.json
:language: javascript
Update service profile
======================
.. rest_method:: PUT /v2.0/service_profiles/{profile_id}
Updates a service profile.
Normal response codes: 200
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- profile_id: profile_id
- service_profile: service_profile
- enabled: service_profile-enabled-request
- driver: service_profile-driver-request
- description: service_profile-description-request
- metainfo: service_profile-metainfo-request
Request Example
---------------
.. literalinclude:: samples/flavors/service-profile-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- service_profile: service_profile
- id: service_profile-id
- enabled: service_profile-enabled
- driver: service_profile-driver
- description: service_profile-description
- metainfo: service_profile-metainfo
Response Example
----------------
.. literalinclude:: samples/flavors/service-profile-update-response.json
:language: javascript
Delete service profile
======================
.. rest_method:: DELETE /v2.0/service_profiles/{profile_id}
Deletes a service profile.
Attempting to delete a service profile that is currently associated
with a flavor will return a ``Conflict 409`` with a response body
containing an in use message.
Either metadata or a driver is required.
Normal response codes: 204
Error response codes: 401, 403, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- profile_id: profile_id
Response
--------
No body content is returned on a successful DELETE.

View File

@@ -1,328 +0,0 @@
==========================
Floating IPs (floatingips)
==========================
List floating IPs
=================
.. rest_method:: GET /v2.0/floatingips
Lists floating IPs visible to the user.
Default policy settings return only the floating IPs owned by the user's
project, unless the user has admin role.
This example request lists floating IPs in JSON format:
::
GET /v2.0/floatingips
Accept: application/json
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
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- floatingips: floatingips
- id: floatingip-id
- router_id: floatingip-router_id
- status: floatingip-status
- tenant_id: project_id
- project_id: project_id
- created_at: created_at_resource
- updated_at: updated_at_resource
- revision_number: revision_number
- description: description
- floating_network_id: floating_network_id
- fixed_ip_address: floatingip-fixed_ip_address
- floating_ip_address: floating_ip_address
- port_id: floatingip-port_id
Response Example
----------------
.. literalinclude:: samples/floatingips/floating-ips-list-response.json
:language: javascript
Create floating IP
==================
.. rest_method:: POST /v2.0/floatingips
Creates a floating IP, and, if you specify port information, associates the floating IP with an internal port.
To associate the floating IP with an internal port, specify the
port ID attribute in the request body. If you do not specify a
port ID in the request, you can issue a PUT request instead of a
POST request.
Default policy settings enable only administrative users to set
floating IP addresses and some non-administrative users might
require a floating IP address. If you do not specify a floating IP
address in the request, the operation automatically allocates one.
By default, this operation associates the floating IP address with
a single fixed IP address that is configured on an OpenStack
Networking port. If a port has multiple IP addresses, you must
specify the ``fixed_ip_address`` attribute in the request body to
associate a fixed IP address with the floating IP address.
You can create floating IPs on only external networks. When you
create a floating IP, you must specify the ID of the network on
which you want to create the floating IP. Alternatively, you can
create a floating IP on a subnet in the external network, based on
the costs and quality of that subnet.
You must configure an IP address with the internal OpenStack
Networking port that is associated with the floating IP address.
The operation returns the ``Bad Request (400)`` response code for one of
reasons:
- The network is not external, such as ``router:external=False``.
- The internal OpenStack Networking port is not associated with the
floating IP address.
- The requested floating IP address does not fall in the subnet
range for the external network.
- The fixed IP address is not valid.
If the port ID is not valid, this operation returns ``404`` response code.
The operation returns the ``Conflict (409)`` response code for one of
reasons:
- The requested floating IP address is already in use.
- The internal OpenStack Networking port and fixed IP address are
already associated with another floating IP.
Normal response codes: 201
Error response codes: 400, 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- floatingip: floatingip
- tenant_id: project_id
- project_id: project_id
- floating_network_id: floating_network_id
- fixed_ip_address: floatingip-fixed_ip_address-request
- floating_ip_address: floating_ip_address-request
- port_id: floatingip-port_id-post-request
- subnet_id: floatingip-subnet_id
- description: description-request
Request Example
---------------
.. literalinclude:: samples/floatingips/floatingip-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- floatingip: floatingip
- router_id: floatingip-router_id
- status: floatingip-status
- description: description
- tenant_id: project_id
- created_at: created_at_resource
- updated_at: updated_at_resource
- revision_number: revision_number
- project_id: project_id
- floating_network_id: floating_network_id
- fixed_ip_address: floatingip-fixed_ip_address
- floating_ip_address: floating_ip_address
- port_id: floatingip-port_id
- id: floatingip-id
Response Example
----------------
.. literalinclude:: samples/floatingips/floatingip-create-response.json
:language: javascript
Show floating IP details
========================
.. rest_method:: GET /v2.0/floatingips/{floatingip_id}
Shows details for a floating IP.
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>`__.
This example request shows details for a floating IP in JSON
format. This example also filters the result by the
``fixed_ip_address`` and ``floating_ip_address`` fields.
::
GET /v2.0/floatingips/{floatingip_id}?fields=fixed_ip_address
&
fields=floating_ip_address
Accept: application/json
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- floatingip_id: floatingip-id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- floatingip: floatingip
- router_id: floatingip-router_id
- status: floatingip-status
- description: description
- tenant_id: project_id
- created_at: created_at_resource
- updated_at: updated_at_resource
- revision_number: revision_number
- project_id: project_id
- floating_network_id: floating_network_id
- fixed_ip_address: floatingip-fixed_ip_address
- floating_ip_address: floating_ip_address
- port_id: floatingip-port_id
- id: floatingip-id
Response Example
----------------
.. literalinclude:: samples/floatingips/floatingip-show-response.json
:language: javascript
Update floating IP
==================
.. rest_method:: PUT /v2.0/floatingips/{floatingip_id}
Updates a floating IP and its association with an internal port.
The association process is the same as the process for the create
floating IP operation.
To disassociate a floating IP from a port, set the ``port_id``
attribute to null or omit it from the request body.
This example updates a floating IP:
::
PUT /v2.0/floatingips/{floatingip_id} Accept: application/json
Depending on the request body that you submit, this request
associates a port with or disassociates a port from a floating IP.
Normal response codes: 200
Error response codes: 400, 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- floatingip: floatingip
- floatingip_id: floatingip-id-path
- port_id: floatingip-port_id-put-request
- fixed_ip_address: floatingip-fixed_ip_address-request
- description: description-request
Request Example
---------------
.. literalinclude:: samples/floatingips/floatingip-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- floatingip: floatingip
- router_id: floatingip-router_id
- status: floatingip-status
- tenant_id: project_id
- project_id: project_id
- floating_network_id: floating_network_id
- fixed_ip_address: floatingip-fixed_ip_address
- floating_ip_address: floating_ip_address
- port_id: floatingip-port_id
- id: floatingip-id
- created_at: created_at_resource
- updated_at: updated_at_resource
- revision_number: revision_number
- description: description
Response Example
----------------
.. literalinclude:: samples/floatingips/floatingip-update-response.json
:language: javascript
Delete floating IP
==================
.. rest_method:: DELETE /v2.0/floatingips/{floatingip_id}
Deletes a floating IP and, if present, its associated port.
This example deletes a floating IP:
::
DELETE /v2.0/floatingips/{floatingip_id} Accept: application/json
Normal response codes: 204
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- floatingip_id: floatingip-id-path
Response
--------
There is no body content for the response of a successful DELETE request.

View File

@@ -1,848 +0,0 @@
.. -*- rst -*-
================================================================================
FWaaS v2.0 (CURRENT) (fwaas, firewall_groups, firewall_policies, firewall_rules)
================================================================================
Use the Firewall-as-a-Service (FWaaS) v2.0 extension to deploy
firewall groups to protect your networks.
The FWaaS extension enables you to:
- Apply firewall rules on traffic entering and leaving project
networks.
- Apply TCP, UDP, ICMP, or protocol-agnostic rules.
- Create and share firewall policies that hold an ordered collection
of firewall rules.
- Audit firewall rules and policies.
This extension introduces the following resources:
- ``firewall_group``. A logical firewall resource that a project can
create and manage. A firewall group can have a firewall policy for
ingress traffic and/or a firewall policy for egress traffic.
- ``firewall_policy``. An ordered collection of firewall rules. You
can share a firewall policy across projects. You can include a
firewall policy as part of an audit workflow so that an
authorized relevant entity can audit the firewall policy. This
entity can differ from the user who created, or the projects
that use, the firewall policy.
- ``firewall_rule``. A collection of attributes, such as source and
destination ports, source and destination IP addresses, protocol,
and IP version. These attributes define match criteria and an
action to take, such as allow, reject, or deny, on matched data
traffic.
List firewall groups
====================
.. rest_method:: GET /v2.0/fwaas/firewall_groups
Lists all firewall groups.
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
- firewall_groups: firewall_groups_object
- admin_state_up: firewall_group_admin_state_up-body-required
- description: firewall_group_description-body-required
- egress_firewall_policy_id: egress_firewall_policy_id-body-required
- id: firewall_group_id-body-required
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-required
- name: firewall_group_name-body-required
- ports: firewall_group_ports-body-required
- project_id: project_id-body-required
- shared: firewall_group_shared-body-required
- status: firewall_group_status-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-groups-list-response.json
:language: javascript
Show firewall group details
===========================
.. rest_method:: GET /v2.0/fwaas/firewall_groups/{firewall_group_id}
Shows details for a firewall group.
If the user is not an administrative user and the firewall group
object does not belong to the project, this call returns the
``FirewallGroupNotFound (404)`` response code.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_group_id: firewall_group_id-path-required
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_group: firewall_group_object
- admin_state_up: firewall_group_admin_state_up-body-required
- description: firewall_group_description-body-required
- egress_firewall_policy_id: egress_firewall_policy_id-body-required
- id: firewall_group_id-body-required
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-required
- name: firewall_group_name-body-required
- ports: firewall_group_ports-body-required
- project_id: project_id-body-required
- shared: firewall_group_shared-body-required
- status: firewall_group_status-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-group-show-response.json
:language: javascript
Create firewall group
=====================
.. rest_method:: POST /v2.0/fwaas/firewall_groups
Creates a firewall group.
The firewall group may be associated with an ingress firewall policy
and/or an egress firewall policy.
If ``admin_state_up`` is ``false``, the firewall group will block all
traffic.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_group: firewall_group_object
- admin_state_up: firewall_group_admin_state_up-body-optional
- description: firewall_group_description-body-optional
- egress_firewall_policy_id: egress_firewall_policy_id-body-optional
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-optional
- name: firewall_group_name-body-optional
- ports: firewall_group_ports-body-optional
- project_id: project_id-body-optional
- shared: firewall_group_shared-body-optional
- status: firewall_group_status-body-optional
- tenant_id: project_id-body-optional
Request Example
---------------
.. literalinclude:: samples/firewall-v2/firewall-group-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_group: firewall_group_object
- admin_state_up: firewall_group_admin_state_up-body-required
- description: firewall_group_description-body-required
- egress_firewall_policy_id: egress_firewall_policy_id-body-required
- id: firewall_group_id-body-required
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-required
- name: firewall_group_name-body-required
- ports: firewall_group_ports-body-required
- project_id: project_id-body-required
- shared: firewall_group_shared-body-required
- status: firewall_group_status-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-group-create-response.json
:language: javascript
Update firewall group
=====================
.. rest_method:: PUT /v2.0/fwaas/firewall_groups/{firewall_group_id}
Updates a firewall group.
The firewall group cannot be updated if its status is a PENDING_* status.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_group_id: firewall_group_id-path-required
- firewall_group: firewall_group_object
- admin_state_up: firewall_group_admin_state_up-body-optional
- description: firewall_group_description-body-optional
- egress_firewall_policy_id: egress_firewall_policy_id-body-optional
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-optional
- name: firewall_group_name-body-optional
- ports: firewall_group_ports-body-optional
- shared: firewall_group_shared-body-optional
- status: firewall_group_status-body-optional
Request Example
---------------
.. literalinclude:: samples/firewall-v2/firewall-group-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_group: firewall_group_object
- admin_state_up: firewall_group_admin_state_up-body-required
- description: firewall_group_description-body-required
- egress_firewall_policy_id: egress_firewall_policy_id-body-required
- id: firewall_group_id-body-required
- ingress_firewall_policy_id: ingress_firewall_policy_id-body-required
- name: firewall_group_name-body-required
- ports: firewall_group_ports-body-required
- project_id: project_id-body-required
- shared: firewall_group_shared-body-required
- status: firewall_group_status-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-group-update-response.json
:language: javascript
Delete firewall group
=====================
.. rest_method:: DELETE /v2.0/fwaas/firewall_groups/{firewall_group_id}
Deletes a firewall group.
Normal response codes: 204
Error response codes: 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_group_id: firewall_group_id-path-required
Response
--------
There is no body content for the response of a successful DELETE request.
List firewall policies
======================
.. rest_method:: GET /v2.0/fwaas/firewall_policies
Lists all firewall policies.
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
- firewall_policies: firewall_policies_object
- audited: firewall_policy_audited-body-required
- description: firewall_policy_description-body-required
- id: firewall_policy_id-body-required
- firewall_rules: firewall_rules-body-required
- name: firewall_policy_name-body-required
- project_id: project_id-body-required
- shared: firewall_policy_shared-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-policies-list-response.json
:language: javascript
Show firewall policy details
============================
.. rest_method:: GET /v2.0/fwaas/firewall_policies/{firewall_policy_id}
Shows details of a firewall policy.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path-required
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- audited: firewall_policy_audited-body-required
- description: firewall_policy_description-body-required
- firewall_rules: firewall_rules-body-required
- id: firewall_policy_id-body-required
- name: firewall_policy_name-body-required
- project_id: project_id-body-required
- shared: firewall_policy_shared-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-policy-show-response.json
:language: javascript
Create firewall policy
======================
.. rest_method:: POST /v2.0/fwaas/firewall_policies
Creates a firewall policy.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy: firewall_policy_object
- audited: firewall_policy_audited-body-optional
- description: firewall_policy_description-body-optional
- firewall_rules: firewall_rules-body-optional
- name: firewall_policy_name-body-optional
- project_id: project_id-body-optional
- shared: firewall_policy_shared-body-optional
- tenant_id: project_id-body-optional
Request Example
---------------
.. literalinclude:: samples/firewall-v2/firewall-policy-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_policy: firewall_policy_object
- audited: firewall_policy_audited-body-required
- description: firewall_policy_description-body-required
- firewall_rules: firewall_rules-body-required
- id: firewall_policy_id-body-required
- name: firewall_policy_name-body-required
- project_id: project_id-body-required
- shared: firewall_policy_shared-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-policy-create-response.json
:language: javascript
Update firewall policy
======================
.. rest_method:: PUT /v2.0/fwaas/firewall_policies/{firewall_policy_id}
Updates a firewall policy.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path-required
- firewall_policy: firewall_policy_object
- audited: firewall_policy_audited-body-optional
- description: firewall_policy_description-body-optional
- firewall_rules: firewall_rules-body-optional
- name: firewall_policy_name-body-optional
- project_id: project_id-body-optional
- shared: firewall_policy_shared-body-optional
- tenant_id: project_id-body-optional
Request Example
---------------
.. literalinclude:: samples/firewall-v2/firewall-policy-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_policy: firewall_policy_object
- audited: firewall_policy_audited-body-required
- description: firewall_policy_description-body-required
- firewall_rules: firewall_rules-body-required
- id: firewall_policy_id-body-required
- name: firewall_policy_name-body-required
- shared: firewall_policy_shared-body-required
- project_id: project_id-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-policy-update-response.json
:language: javascript
Delete firewall policy
======================
.. rest_method:: DELETE /v2.0/fwaas/firewall_policies/{firewall_policy_id}
Deletes a firewall policy.
Normal response codes: 204
Error response codes: 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path-required
Response
--------
There is no body content for the response of a successful DELETE request.
List firewall rules
===================
.. rest_method:: GET /v2.0/fwaas/firewall_rules
Lists all firewall rules.
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
- firewall_rules: firewall_rules_object
- action: firewall_rule_action-body-required
- description: firewall_rule_description-body-required
- destination_ip_address: firewall_rule_destination_ip_address-body-required
- destination_port: firewall_rule_destination_port-body-required
- enabled: firewall_rule_enabled-body-required
- firewall_policy_id: firewall_policy_id-body-required
- id: firewall_rule_id-body-required
- ip_version: firewall_rule_ip_version-body-required
- name: firewall_rule_name-body-required
- project_id: project_id-body-required
- protocol: firewall_rule_protocol-body-required
- shared: firewall_rule_shared-body-required
- source_ip_address: firewall_rule_source_ip_address-body-required
- source_port: firewall_rule_source_port-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-rules-list-response.json
:language: javascript
Show firewall rule details
==========================
.. rest_method:: GET /v2.0/fwaas/firewall_rules/{firewall_rule_id}
Shows details for a firewall rule.
If the user is not an administrative user and the firewall rule
object does not belong to the project, this call returns the
``Forbidden (403)`` response code.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_rule_id: firewall_rule_id-path-required
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_rule: firewall_rule_object
- action: firewall_rule_action-body-required
- description: firewall_rule_description-body-required
- destination_ip_address: firewall_rule_destination_ip_address-body-required
- destination_port: firewall_rule_destination_port-body-required
- enabled: firewall_rule_enabled-body-required
- firewall_policy_id: firewall_policy_id-body-required
- id: firewall_rule_id-body-required
- ip_version: firewall_rule_ip_version-body-required
- name: firewall_rule_name-body-required
- project_id: project_id-body-required
- protocol: firewall_rule_protocol-body-required
- shared: firewall_rule_shared-body-required
- source_ip_address: firewall_rule_source_ip_address-body-required
- source_port: firewall_rule_source_port-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-rule-show-response.json
:language: javascript
Create firewall rule
====================
.. rest_method:: POST /v2.0/fwaas/firewall_rules
Creates a firewall rule.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_rule: firewall_rule_object
- action: firewall_rule_action-body-optional
- description: firewall_rule_description-body-optional
- destination_ip_address: firewall_rule_destination_ip_address-body-optional
- destination_port: firewall_rule_destination_port-body-optional
- enabled: firewall_rule_enabled-body-optional
- ip_version: firewall_rule_ip_version-body-optional
- name: firewall_rule_name-body-optional
- project_id: project_id-body-optional
- protocol: firewall_rule_protocol-body-optional
- shared: firewall_rule_shared-body-optional
- source_ip_address: firewall_rule_source_ip_address-body-optional
- source_port: firewall_rule_source_port-body-optional
- tenant_id: project_id-body-optional
Request Example
---------------
.. literalinclude:: samples/firewall-v2/firewall-rule-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_rule: firewall_rule_object
- action: firewall_rule_action-body-required
- description: firewall_rule_description-body-required
- destination_ip_address: firewall_rule_destination_ip_address-body-required
- destination_port: firewall_rule_destination_port-body-required
- enabled: firewall_rule_enabled-body-required
- firewall_policy_id: firewall_policy_id-body-required
- id: firewall_rule_id-body-required
- ip_version: firewall_rule_ip_version-body-required
- name: firewall_rule_name-body-required
- project_id: project_id-body-required
- protocol: firewall_rule_protocol-body-required
- shared: firewall_rule_shared-body-required
- source_ip_address: firewall_rule_source_ip_address-body-required
- source_port: firewall_rule_source_port-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-rule-create-response.json
:language: javascript
Update firewall rule
====================
.. rest_method:: PUT /v2.0/fwaas/firewall_rules/{firewall_rule_id}
Updates a firewall rule.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_rule_id: firewall_rule_id-path-required
- firewall_rule: firewall_rule_object
- action: firewall_rule_action-body-optional
- description: firewall_rule_description-body-optional
- destination_ip_address: firewall_rule_destination_ip_address-body-optional
- destination_port: firewall_rule_destination_port-body-optional
- enabled: firewall_rule_enabled-body-optional
- firewall_policy_id: firewall_policy_id-body-required
- ip_version: firewall_rule_ip_version-body-optional
- name: firewall_rule_name-body-optional
- project_id: project_id-body-optional
- protocol: firewall_rule_protocol-body-optional
- shared: firewall_rule_shared-body-optional
- source_ip_address: firewall_rule_source_ip_address-body-optional
- source_port: firewall_rule_source_port-body-optional
- tenant_id: project_id-body-optional
Request Example
---------------
.. literalinclude:: samples/firewall-v2/firewall-rule-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_rule: firewall_rule_object
- action: firewall_rule_action-body-required
- description: firewall_rule_description-body-required
- destination_ip_address: firewall_rule_destination_ip_address-body-required
- destination_port: firewall_rule_destination_port-body-required
- enabled: firewall_rule_enabled-body-required
- firewall_policy_id: firewall_policy_id-body-required
- id: firewall_rule_id-body-required
- ip_version: firewall_rule_ip_version-body-required
- name: firewall_rule_name-body-required
- project_id: project_id-body-required
- protocol: firewall_rule_protocol-body-required
- shared: firewall_rule_shared-body-required
- source_ip_address: firewall_rule_source_ip_address-body-required
- source_port: firewall_rule_source_port-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-rule-update-response.json
:language: javascript
Delete firewall rule
====================
.. rest_method:: DELETE /v2.0/fwaas/firewall_rules/{firewall_rule_id}
Deletes a firewall rule.
samples/firewall-v2/firewall-policy-create-response.json
Normal response codes: 204
Error response codes: 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_rule_id: firewall_rule_id-path-required
Insert rule into a firewall policy
==================================
.. rest_method:: PUT /v2.0/fwaas/firewall_policies/{firewall_policy_id}/insert_rule
Insert firewall rule into a policy.
A firewall_rule_id is inserted relative to the position of the
firewall_rule_id set in ``insert_before`` or ``insert_after``. If
``insert_before`` is set, ``insert_after`` is ignored. If both
``insert_before`` and ``insert_after`` are not set, the new
firewall_rule_id is inserted as the first rule of the policy.
Normal response codes: 200
Error response codes: 400, 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path-required
- firewall_rule_id: firewall_rule_id-body-required
- insert_after: firewall_rule_insert_after-body-required
- insert_before: firewall_rule_insert_before-body-required
Request Example
---------------
.. literalinclude:: samples/firewall-v2/firewall-policy-insert-rule-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- audited: firewall_policy_audited-body-required
- description: firewall_policy_description-body-required
- firewall_rules: firewall_rules-body-required
- id: firewall_policy_id-body-required
- name: firewall_policy_name-body-required
- project_id: project_id-body-required
- shared: firewall_policy_shared-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-policy-insert-rule-response.json
:language: javascript
Remove rule from firewall policy
================================
.. rest_method:: PUT /v2.0/fwaas/firewall_policies/{firewall_policy_id}/remove_rule
Remove firewall rule from a policy.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path-required
- firewall_rule_id: firewall_rule_id-body-required
Request Example
---------------
.. literalinclude:: samples/firewall-v2/firewall-policy-remove-rule-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- audited: firewall_policy_audited-body-required
- description: firewall_policy_description-body-required
- firewall_rules: firewall_rules-body-required
- id: firewall_policy_id-body-required
- name: firewall_policy_name-body-required
- project_id: project_id-body-required
- shared: firewall_policy_shared-body-required
- tenant_id: project_id-body-required
Response Example
----------------
.. literalinclude:: samples/firewall-v2/firewall-policy-remove-rule-response.json
:language: javascript

View File

@@ -1,817 +0,0 @@
==========================================================================
FWaaS v1.0 (DEPRECATED) (fw, firewalls, firewall_policies, firewall_rules)
==========================================================================
.. note::
While FWaaS v1.0 is still maintained, new features will be
implemented in FWaaS v2.0 API.
Use the Firewall-as-a-Service (FWaaS) v1.0 extension to deploy
firewalls to protect your networks.
The FWaaS extension enables you to:
- Apply firewall rules on traffic entering and leaving project
networks.
- Apply TCP, UDP, ICMP, or protocol-agnostic rules.
- Create and share firewall policies that hold an ordered collection
of the firewall rules.
- Audit firewall rules and policies.
This extension introduces these resources:
- ``firewall``. A logical firewall resource that a project can
instantiate and manage. A firewall can have one firewall policy.
- ``firewall_policy``. An ordered collection of firewall rules. You
can share a firewall policy across projects. You can include a
firewall policy as part of an audit workflow so that an
authorized relevant entity can audit the firewall policy. This
entity can differ from the user who created, or the projects
that use, the firewall policy.
- ``firewall_rule``. A collection of attributes, such as ports and
IP addresses. These attributes define match criteria and an
action to take, such as allow or deny, on matched data traffic.
List firewall policies
======================
.. rest_method:: GET /v2.0/fw/firewall_policies
Lists all firewall 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
- tenant_id: project_id
- firewall_policies: firewall_policies
- audited: audited
- description: description
- firewall_rules: firewall_rules
- id: firewall_policy_id-body
- name: name
- shared: shared-response
- project_id: project_id
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-policies-list-response.json
:language: javascript
Create firewall policy
======================
.. rest_method:: POST /v2.0/fw/firewall_policies
Creates a firewall policy.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy: firewall_policy
- firewall_rules_id: firewall_rules_id
- name: name
- tenant_id: project_id-request
- project_id: project_id-request
- shared: shared
- audited: audited
- description: description-request
Request Example
---------------
.. literalinclude:: samples/firewalls/firewall-policy-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_policy: firewall_policy
- name: name
- firewall_rules: firewall_rules
- tenant_id: project_id
- project_id: project_id
- audited: audited
- shared: shared-response
- id: firewall_policy_id-body
- description: description
Show firewall policy details
============================
.. rest_method:: GET /v2.0/fw/firewall_policies/{firewall_policy_id}
Shows details for a firewall policy.
If the user is not an administrative user and the firewall policy
object does not belong to the project, this call returns the
``Forbidden (403)`` response code.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_policy: firewall_policy
- tenant_id: project_id
- project_id: project_id
- audited: audited
- description: description
- firewall_rules: firewall_rules
- id: firewall_policy_id-body
- name: name
- shared: shared-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-policy-show-response.json
:language: javascript
Update firewall policy
======================
.. rest_method:: PUT /v2.0/fw/firewall_policies/{firewall_policy_id}
Updates a firewall policy.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path
- firewall_rule: firewall_rule
- shared: shared
- audited: audited
- description: description-request
- name: name
Request Example
---------------
.. literalinclude:: samples/firewalls/firewall-policy-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_policy: firewall_policy
- project_id: project_id
- audited: audited
- description: description
- firewall_rules: firewall_rules
- id: firewall_policy_id-body
- name: name
- shared: shared-response
- tenant_id: project_id
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-policy-update-response.json
:language: javascript
Delete firewall policy
======================
.. rest_method:: DELETE /v2.0/fw/firewall_policies/{firewall_policy_id}
Deletes a firewall policy.
Normal response codes: 204
Error response codes: 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path
Response
--------
There is no body content for the response of a successful DELETE request.
Insert rule into a firewall policy
==================================
.. rest_method:: PUT /v2.0/fw/firewall_policies/{firewall_policy_id}/insert_rule
Insert firewall rule into a policy.
A firewall_rule_id is inserted relative to the position of the
firewall_rule_id set in ``insert_before`` or ``insert_after``. If
``insert_before`` is set, ``insert_after`` is ignored. If both
``insert_before`` and ``insert_after`` are not set, the new
firewall_rule_id is inserted at the top of the policy.
Normal response codes: 200
Error response codes: 400, 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path
- firewall_rule_id: firewall_rule_id-body
- insert_after: insert_after
- insert_before: insert_before
Request Example
---------------
.. literalinclude:: samples/firewalls/firewall-policy-insert-rule-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- audited: audited
- description: description
- firewall_list: firewall_list
- firewall_rules: firewall_rules
- tenant_id: project_id
- project_id: project_id
- id: firewall_policy_id-body
- name: name
- shared: shared-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-policy-insert-rule-response.json
:language: javascript
Remove rule from firewall policy
================================
.. rest_method:: PUT /v2.0/fw/firewall_policies/{firewall_policy_id}/remove_rule
Remove firewall rule from a policy.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_policy_id: firewall_policy_id-path
- firewall_rule_id: firewall_rule_id-body
Request Example
---------------
.. literalinclude:: samples/firewalls/firewall-policy-remove-rule-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- tenant_id: project_id
- project_id: project_id
- audited: audited
- description: description
- firewall_list: firewall_list
- firewall_rules: firewall_rules
- id: firewall_id-body
- name: name
- shared: shared-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-policy-remove-rule-response.json
:language: javascript
List firewall rules
===================
.. rest_method:: GET /v2.0/fw/firewall_rules
Lists all firewall rules.
The list might be empty.
Normal response codes: 200
Error response codes: 401, 403
Request
-------
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_rule: firewall_rule
- action: action-response
- description: description
- tenant_id: project_id
- project_id: project_id
- destination_ip_address: destination_ip_address-response
- destination_port: destination_port-response
- enabled: enabled-response
- firewall_policy_id: firewall_policy_id-body
- id: firewall_id-body
- ip_version: ip_version-response
- name: name
- position: position
- protocol: protocol-response
- shared: shared-response
- source_ip_address: source_ip_address
- source_port: source_port-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-rules-list-response.json
:language: javascript
Create firewall rule
====================
.. rest_method:: POST /v2.0/fw/firewall_rules
Creates a firewall rule.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_rule: firewall_rule
- action: action
- destination_port: destination_port
- enabled: enabled
- description: description-request
- tenant_id: project_id-request
- project_id: project_id-request
- enabled: enabled
- name: name
- protocol: protocol
- ip_version: ip_version
- destination_ip_address: destination_ip_address
- source_port: source_port
- shared: shared
Request Example
---------------
.. literalinclude:: samples/firewalls/firewall-rule-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_rule: firewall_rule
- action: action-response
- description: description
- tenant_id: project_id
- project_id: project_id
- destination_ip_address: destination_ip_address-response
- destination_port: destination_port-response
- enabled: enabled-response
- firewall_policy_id: firewall_policy_id-body
- id: firewall_id-body
- ip_version: ip_version-response
- name: name
- position: position
- protocol: protocol-response
- shared: shared-response
- source_ip_address: source_ip_address
- source_port: source_port-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-rule-create-response.json
:language: javascript
Show firewall rule details
==========================
.. rest_method:: GET /v2.0/fw/firewall_rules/{firewall_rule_id}
Shows details for a firewall rule.
If the user is not an administrative user and the firewall rule
object does not belong to the project, this call returns the
``Forbidden (403)`` response code.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_rule_id: firewall_rule_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_rule: firewall_rule
- action: action-response
- description: description
- tenant_id: project_id
- project_id: project_id
- destination_ip_address: destination_ip_address-response
- destination_port: destination_port-response
- enabled: enabled-response
- firewall_policy_id: firewall_policy_id
- id: firewall_rule_id-body
- ip_version: ip_version-response
- name: name
- position: position
- protocol: protocol-response
- shared: shared-response
- source_ip_address: source_ip_address
- source_port: source_port-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-rule-show-response.json
:language: javascript
Update firewall rule
====================
.. rest_method:: PUT /v2.0/fw/firewall_rules/{firewall_rule_id}
Updates a firewall rule.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_rule_id: firewall_rule_id
- firewall_rule: firewall_rule
- shared: shared
- description: description-request
- tenant_id: project_id-request
- project_id: project_id-request
- enabled: enabled
- ip_version: ip_version
- destination_ip_address: destination_ip_address
- source_port: source_port
- action: action
- protocol: protocol
- destination_port: destination_port
- name: name
Request Example
---------------
.. literalinclude:: samples/firewalls/firewall-rule-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall_rule: firewall_rule
- action: action-response
- description: description
- source_ip_address: source_ip_address
- tenant_id: project_id
- project_id: project_id
- enabled: enabled
- protocol: protocol
- source_port: source_port
- ip_version: ip_version
- destination_ip_address: destination_ip_address-response
- destination_port: destination_port-response
- enabled: enabled-response
- firewall_policy_id: firewall_policy_id
- id: firewall_rule_id-body
- ip_version: ip_version-response
- name: name
- position: position
- protocol: protocol-response
- shared: shared-response
- source_ip_address: source_ip_address
- source_port: source_port-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-rule-update-response.json
:language: javascript
Delete firewall rule
====================
.. rest_method:: DELETE /v2.0/fw/firewall_rules/{firewall_rule_id}
Deletes a firewall rule.
Normal response codes: 204
Error response codes: 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_rule_id: firewall_rule_id
Response
--------
There is no body content for the response of a successful DELETE request.
List firewalls
==============
.. rest_method:: GET /v2.0/fw/firewalls
Lists all firewalls.
The list might be empty.
Normal response codes: 200
Error response codes: 401, 403
Request
-------
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewalls: firewalls
- admin_state_up: admin_state_up
- tenant_id: project_id
- project_id: project_id
- description: description
- firewall_policy_id: firewall_policy_id-body
- id: firewall_id-body
- name: name
- status: firewall-status
Response Example
----------------
.. literalinclude:: samples/firewalls/firewalls-list-response.json
:language: javascript
Create firewall
===============
.. rest_method:: POST /v2.0/fw/firewalls
Creates a firewall.
The firewall must be associated with a firewall policy.
If ``admin_state_up`` is ``false``, the firewall would block all
traffic.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- firewall: firewall
- admin_state_up: admin_state_up
- firewall_policy_id: firewall_policy_id-body
- description: description-request
- name: name
- router_ids: router_ids
Request Example
---------------
.. literalinclude:: samples/firewalls/firewall-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall: firewall
- tenant_id: project_id
- project_id: project_id
- admin_state_up: admin_state_up
- description: description
- firewall_policy_id: firewall_policy_id-body
- id: firewall_id-body
- name: name
- status: firewall-status
- router_ids: router_ids-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-create-response.json
:language: javascript
Show firewall details
=====================
.. rest_method:: GET /v2.0/fw/firewalls/{firewall_id}
Shows details for a firewall.
If the user is not an administrative user and the firewall object
does not belong to the project, this call returns the
``Forbidden (403)`` response code.
Normal response codes: 200
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_id: firewall_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall: firewall
- tenant_id: project_id
- project_id: project_id
- admin_state_up: admin_state_up
- description: description
- status: firewall-status
- firewall_policy_id: firewall_policy_id
- id: firewall_rule_id-body
- name: name
- router_ids: router_ids-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-show-response.json
:language: javascript
Update firewall
===============
.. rest_method:: PUT /v2.0/fw/firewalls/{firewall_id}
Updates a firewall.
To update a service, the service status cannot be a ``PENDING_*``
status.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_id: firewall_id
- firewall: firewall
- admin_state_up: admin_state_up
- description: description-request
- firewall_policy_id: firewall_policy_id-body
- name: name
- router_ids: router_ids
Request Example
---------------
.. literalinclude:: samples/firewalls/firewall-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- firewall: firewall
- tenant_id: project_id
- project_id: project_id
- admin_state_up: admin_state_up
- description: description
- status: firewall-status
- firewall_policy_id: firewall_policy_id-body
- id: firewall_id-body
- name: name
- router_ids: router_ids-response
Response Example
----------------
.. literalinclude:: samples/firewalls/firewall-update-response.json
:language: javascript
Delete firewall
===============
.. rest_method:: DELETE /v2.0/fw/firewalls/{firewall_id}
Deletes a firewall.
Normal response codes: 204
Error response codes: 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- firewall_id: firewall_id
Response
--------
There is no body content for the response of a successful DELETE request.

View File

@@ -1,81 +0,0 @@
:tocdepth: 2
###################
Networking API v2.0
###################
.. rest_expand_all::
####################
General API Overview
####################
.. include:: intro.inc
.. include:: versions.inc
.. include:: extensions.inc
##################
Layer 2 Networking
##################
.. include:: networks.inc
.. include:: ports.inc
.. include:: segments.inc
.. include:: trunk.inc
.. include:: trunk-details.inc
##################
Layer 3 Networking
##################
.. include:: floatingips.inc
.. include:: routers.inc
.. include:: subnetpools.inc
.. include:: subnets.inc
########
Security
########
.. include:: fwaas.inc
.. include:: fwaas-v2.inc
.. include:: rbac-policy.inc
.. include:: security-group-rules.inc
.. include:: security-groups.inc
.. include:: vpnaas.inc
###################
Resource Management
###################
.. include:: flavors.inc
.. include:: metering.inc
.. include:: network-ip-availability.inc
.. include:: quotas.inc
.. include:: service-providers.inc
.. include:: tags.inc
##################
Quality of Service
##################
.. include:: qos.inc
##########################
Load Balancer as a Service
##########################
.. include:: lbaas-v1.inc
.. include:: lbaas-v2.inc
#####################################
Logging Resource (networking-midonet)
#####################################
.. include:: logging_resource.inc
.. include:: firewall_log.inc
#################################################
Router interface floating IP (networking-midonet)
#################################################
.. include:: router-interface-fip.inc
##########################
FIP64 (networking-midonet)
##########################
.. include:: fip64.inc
############################
BGP/MPLS VPN Interconnection
############################
.. include:: bgpvpn-overview.inc
.. include:: bgpvpn-bgpvpns.inc
.. include:: bgpvpn-network_associations.inc
.. include:: bgpvpn-router_associations.inc
#######
Logging
#######
.. include:: logging.inc

View File

@@ -1,445 +0,0 @@
.. -*- rst -*-
.. needs:method_verification
.. needs:parameter_verification
.. needs:example_verification
.. needs:body_verification
=========
API guide
=========
This section introduces readers to OpenStack Networking (v2) API, providers
guidelines on how to use it, and describes common features available to users
throughout all Networking APIs.
General information
===================
The Networking API v2.0 is a ReSTful HTTP service that uses all aspects of the
HTTP protocol including methods, URIs, media types, response codes, and so on.
Providers can use existing features of the protocol including caching,
persistent connections, and content compression. For example, providers who
employ a caching layer can respond with a 203 code instead of a 200 code when a
request is served from the cache. Additionally, providers can offer support
for conditional **GET** requests by using ETags, or they may send a redirect in
response to a **GET** request. Create clients so that these differences are
accounted for.
Authentication and authorization
================================
The Networking API v2.0 uses the `OpenStack Identity service
<https://docs.openstack.org/keystone/latest/>`_ as the default authentication
service. When Keystone is enabled, users that submit requests to the OpenStack
Networking service must provide an authentication token in **X-Auth-Token**
request header. You obtain the token by authenticating to the Keystone
endpoint.
When Keystone is enabled, the ``project_id`` attribute is not required in create
requests because the project ID is derived from the authentication token.
NOTE: Currently the Networking API accepts the deprecated ``tenant_id``
attribute for the project ID for backward compatibility.
The default authorization settings allow only administrative users to create
resources on behalf of a different project.
OpenStack Networking uses information received from Keystone to authorize user
requests. OpenStack Networking handles the following types of authorization
policies:
- **Operation-based policies** specify access criteria for specific
operations, possibly with fine-grained control over specific attributes.
- **Resource-based policies** access a specific resource. Permissions might or
might not be granted depending on the permissions configured for the
resource. Currently available for only the network resource.
The actual authorization policies enforced in OpenStack Networking might vary
from deployment to deployment.
Request and response formats
============================
The Networking API v2.0 supports JSON data serialization request and response
formats only.
Request format
--------------
The Networking API v2.0 only accepts requests with the JSON data serialization
format. The ``Content-Type`` header is ignored.
Tenant and project attributes in requests
-----------------------------------------
Starting with the Newton release of the Networking service, the Networking API
accepts the ``project_id`` attribute in addition to the ``tenant_id`` attribute
in requests. The ``tenant_id`` attribute is accepted for backward compatibility.
If both the ``project_id`` and the ``tenant_id`` attribute are provided in the
same request, their values must be identical.
To determine whether a Networking API v2.0 endpoint supports the ``project_id``
attribute in requests, check that the ``project-id`` API extension is enabled
(see Extensions_).
Response format
---------------
The Networking API v2.0 always responds with the JSON data serialization
format. The ``Accept`` header is ignored.
Query extension
A ``.json`` extension can be added to the request URI. For example, the
``.json`` extension in the following requests are equivalent:
- **GET** *publicURL*/networks
- **GET** *publicURL*/networks.json
Tenant and project attributes in responses
------------------------------------------
Starting with the Newton release of the Networking service, the Networking API
returns a ``project_id`` attribute in responses, while still returning a
``tenant_id`` attribute for backward compatibility. The values will always be
identical.
To determine whether a Networking API v2.0 endpoint returns the ``project_id``
attribute in responses, check that the ``project-id`` API extension is enabled
(see Extensions_).
.. _filtering:
Filtering and column selection
==============================
The Networking API v2.0 supports filtering based on all top level attributes of
a resource. Filters are applicable to all list requests.
For example, the following request returns all networks named ``foobar``:
.. code::
GET /v2.0/networks?name=foobar
When you specify multiple filters using different fields, the Networking API
v2.0 returns only objects that meet all filtering criteria. The operation
applies an AND condition among different filter fields.
OpenStack Networking offers an OR mechanism for filters by repeating the field
with the different OR criteria. For example, to find all networks named
``foobar`` OR ``bizbaz``:
.. code::
GET /v2.0/networks?name=foobar&name=bizbaz
ORs and ANDs can be combined. For example, if you want all networks with
admin_state_up=True and shared=True and named 'foobar' or 'bizbaz':
.. code::
GET /v2.0/networks?name=foobar&name=bizbaz&admin_state_up=True&shared=True
Note
----
By default, OpenStack Networking returns all attributes for any show or list
call. The Networking API v2.0 has a mechanism to limit the set of attributes
returned. For example, return ``id``.
You can use the ``fields`` query parameter to control the attributes returned
from the Networking API v2.0.
For example, the following request returns only ``id`` and ``name`` for each
network:
.. code::
GET /v2.0/networks.json?fields=id&fields=name
Synchronous versus asynchronous plug-in behavior
================================================
The Networking API v2.0 presents a logical model of network connectivity
consisting of networks, ports, and subnets. It is up to the OpenStack
Networking plug-in to communicate with the underlying infrastructure to ensure
packet forwarding is consistent with the logical model. A plug-in might perform
these operations asynchronously.
When an API client modifies the logical model by issuing an HTTP **POST**,
**PUT**, or **DELETE** request, the API call might return before the plug-in
modifies underlying virtual and physical switching devices. However, an API
client is guaranteed that all subsequent API calls properly reflect the changed
logical model.
For example, if a client issues an HTTP **PUT** request to set the attachment
for a port, there is no guarantee that packets sent by the interface named in
the attachment are forwarded immediately when the HTTP call returns. However,
it is guaranteed that a subsequent HTTP **GET** request to view the attachment
on that port returns the new attachment value.
You can use the ``status`` attribute with the network and port resources to
determine whether the OpenStack Networking plug-in has successfully completed
the configuration of the resource.
Bulk-create
===========
The Networking API v2.0 enables you to create several objects of the same type
in the same API request. Bulk create operations use exactly the same API syntax
as single create operations except that you specify a list of objects rather
than a single object in the request body.
Bulk operations are always performed atomically, meaning that either all or
none of the objects in the request body are created. If a particular plug-in
does not support atomic operations, the Networking API v2.0 emulates the atomic
behavior so that users can expect the same behavior regardless of the
particular plug-in running in the background.
OpenStack Networking might be deployed without support for bulk operations and
when the client attempts a bulk create operation, a 400 Bad request error is
returned.
Pagination
==========
To reduce load on the service, list operations will return a maximum number of
items at a time. To navigate the collection, the parameters limit, marker and
page\_reverse can be set in the URI. For example:
.. code::
?limit=100&marker=1234&page_reverse=False
The ``marker`` parameter is the ID of the last item in the previous list. The
``limit`` parameter sets the page size. The ``page_reverse`` parameter sets
the page direction. These parameters are optional. If the client requests a
limit beyond the maximum limit configured by the deployment, the server returns
the maximum limit number of items.
For convenience, list responses contain atom "next" links and "previous" links.
The last page in the list requested with 'page\_reverse=False' will not contain
"next" link, and the last page in the list requested with 'page\_reverse=True'
will not contain "previous" link. The following examples illustrate two pages
with three items. The first page was retrieved through:
.. code::
GET http://127.0.0.1:9696/v2.0/networks.json?limit=2
Pagination is an optional feature of OpenStack Networking API, and it might be
disabled. If pagination is disabled, the pagination parameters will be ignored
and return all the items.
If a particular plug-in does not support pagination operations, and pagination
is enabled, the Networking API v2.0 will emulate the pagination behavior so
that users can expect the same behavior regardless of the particular plug-in
running in the background.
To determine if pagination is supported, a user can check whether the
'pagination' extension API is available.
**Example Network collection, first page: JSON request**
.. code::
GET /v2.0/networks.json?limit=2 HTTP/1.1
Host: 127.0.0.1:9696
Content-Type: application/json
Accept: application/json
**Example Network collection, first page: JSON response**
.. code::
{
"networks": [
{
"admin_state_up": true,
"id": "396f12f8-521e-4b91-8e21-2e003500433a",
"name": "net3",
"provider:network_type": "vlan",
"provider:physical_network": "physnet1",
"provider:segmentation_id": 1002,
"router:external": false,
"shared": false,
"status": "ACTIVE",
"subnets": [],
"tenant_id": "20bd52ff3e1b40039c312395b04683cf"
"project_id": "20bd52ff3e1b40039c312395b04683cf"
},
{
"admin_state_up": true,
"id": "71c1e68c-171a-4aa2-aca5-50ea153a3718",
"name": "net2",
"provider:network_type": "vlan",
"provider:physical_network": "physnet1",
"provider:segmentation_id": 1001,
"router:external": false,
"shared": false,
"status": "ACTIVE",
"subnets": [],
"tenant_id": "20bd52ff3e1b40039c312395b04683cf"
"project_id": "20bd52ff3e1b40039c312395b04683cf"
}
],
"networks_links": [
{
"href": "http://127.0.0.1:9696/v2.0/networks.json?limit=2&marker=71c1e68c-171a-4aa2-aca5-50ea153a3718",
"rel": "next"
},
{
"href": "http://127.0.0.1:9696/v2.0/networks.json?limit=2&marker=396f12f8-521e-4b91-8e21-2e003500433a&page_reverse=True",
"rel": "previous"
}
]
}
The last page won't show the "next" links
**Example Network collection, last page: JSON request**
.. code::
GET /v2.0/networks.json?limit=2&marker=71c1e68c-171a-4aa2-aca5-50ea153a3718 HTTP/1.1
Host: 127.0.0.1:9696
Content-Type: application/json
Accept: application/json
**Example Network collection, last page: JSON response**
.. code::
{
"networks": [
{
"admin_state_up": true,
"id": "b3680498-03da-4691-896f-ef9ee1d856a7",
"name": "net1",
"provider:network_type": "vlan",
"provider:physical_network": "physnet1",
"provider:segmentation_id": 1000,
"router:external": false,
"shared": false,
"status": "ACTIVE",
"subnets": [],
"tenant_id": "c05140b3dc7c4555afff9fab6b58edc2"
"project_id": "c05140b3dc7c4555afff9fab6b58edc2"
}
],
"networks_links": [
{
"href": "http://127.0.0.1:9696/v2.0/networks.json?limit=2&marker=b3680498-03da-4691-896f-ef9ee1d856a7&page_reverse=True",
"rel": "previous"
}
]
}
Sorting
=======
You can use the ``sort_key`` and ``sort_dir`` parameters to sort the
results of list operations. Currently sorting does not work with extended
attributes of resource. The ``sort_key`` and ``sort_dir`` can be repeated,
and the number of ``sort_key`` and ``sort_dir`` provided must be same. The
``sort_dir`` parameter indicates in which direction to sort. Acceptable
values are ``asc`` (ascending) and ``desc`` (descending).
Sorting is optional feature of OpenStack Networking API, and it might be
disabled. If sorting is disabled, the sorting parameters are ignored.
If a particular plug-in does not support sorting operations and sorting is
enabled, the Networking API v2.0 emulates the sorting behavior so that users
can expect the same behavior regardless of the particular plug-in that runs in
the background.
To determine if sorting is supported, a user can check whether the 'sorting'
extension API is available.
.. _Extensions:
Extensions
==========
The Networking API v2.0 is extensible.
The purpose of Networking API v2.0 extensions is to:
- Introduce new features in the API without requiring a version change.
- Introduce vendor-specific niche functionality.
- Act as a proving ground for experimental functionalities that might be
included in a future version of the API.
To programmatically determine which extensions are available, issue a **GET**
request on the **v2.0/extensions** URI.
To query extensions individually by unique alias, issue a **GET** request on
the ``/v2.0/extensions/*alias_name*`` URI. Use this method to easily
determine if an extension is available. If the extension is not available, a
404 Not Found response is returned.
You can extend existing core API resources with new actions or extra
attributes. Also, you can add new resources as extensions. Extensions usually
have tags that prevent conflicts with other extensions that define attributes
or resources with the same names, and with core resources and attributes.
Because an extension might not be supported by all plug-ins, the availability
of an extension varies with deployments and the specific plug-in in use.
Faults
======
The Networking API v2.0 returns an error response if a failure occurs while
processing a request. OpenStack Networking uses only standard HTTP error codes.
4\ *nn* errors indicate problems in the particular request being sent from
the client.
+-------+--------------------------------------------------------------+
| Error | Description |
+=======+==============================================================+
| 400 | Bad request |
| | Malformed request URI or body requested admin state invalid |
| | Invalid values entered |
| | Bulk operations disallowed |
| | Validation failed |
| | Method not allowed for request body (such as trying to |
| | update attributes that can be specified at create-time only) |
+-------+--------------------------------------------------------------+
| 404 | Not Found |
| | Non existent URI |
| | Resource not found |
+-------+--------------------------------------------------------------+
| 409 | Conflict |
| | Port configured on network |
| | IP allocated on subnet |
| | Conflicting IP allocation pools for subnet |
+-------+--------------------------------------------------------------+
| 500 | Internal server error |
| | Internal OpenStack Networking error |
+-------+--------------------------------------------------------------+
| 503 | Service unavailable |
| | Failure in Mac address generation |
+-------+--------------------------------------------------------------+
Users submitting requests to the Networking API v2.0 might also receive the
following errors:
- 401 Unauthorized - If invalid credentials are provided.
- 403 Forbidden - If the user cannot access a specific resource or perform the
requested operation.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,271 +0,0 @@
.. -*- rst -*-
============
Log resource
============
The ``logging`` extension lists, creates, shows information for, and updates
log resource.
List logs
=========
.. rest_method:: GET /v2.0/log/logs
Lists all log resources associated with your 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 <https://wiki.openstack.org/wiki/Neutron/APIv2
-specification#Filtering_and_Column_Selection>`__.
The list might be empty.
Normal response codes: 200
Error response codes: 401
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- logs: logs
- id: log_id
- name: name
- description: description
- tenant_id: project_id
- project_id: project_id
- event: log_event
- resource_type: resource_log_type
- resource_id: resource_log_id
- target_id: resource_target_log_id
- enabled: log_enabled
Response Example
----------------
.. literalinclude:: samples/logs/log-list-response.json
:language: javascript
Create log
==========
.. rest_method:: POST /v2.0/log/logs
Creates a log resource.
Creates a log resource by using the configuration that you define in
the request object. A response object is returned. The object
contains a unique ID.
If the caller is not an administrative user, this call returns the
HTTP ``Forbidden (403)`` response code.
Users with an administrative role can create policies on behalf of
other projects by specifying a project ID that is different than
their own.
Normal response codes: 201
Error response codes: 400, 401, 403, 409
Request
-------
.. rest_parameters:: parameters.yaml
- log: log
- name: name-request
- description: description-request
- tenant_id: project_id-request
- project_id: project_id-request
- event: log_event-request
- resource_type: resource_log_type
- resource_id: resource_log_id-request
- target_id: resource_target_log_id-request
- enabled: log_enabled-request
Request Example
---------------
.. literalinclude:: samples/logs/log-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- log: log
- id: log_id
- name: name
- description: description
- tenant_id: project_id
- project_id: project_id
- event: log_event
- resource_type: resource_log_type
- resource_id: resource_log_id
- target_id: resource_target_log_id
- enabled: log_enabled
Request Example
---------------
.. literalinclude:: samples/logs/log-create-response.json
:language: javascript
Show log
========
.. rest_method:: GET /v2.0/log/logs/{log_id}
Shows details log resource.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- log_id: log_id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- log: log
- id: log_id
- name: name
- description: description
- tenant_id: project_id
- project_id: project_id
- event: log_event
- resource_type: resource_log_type
- resource_id: resource_log_id
- target_id: resource_target_log_id
- enabled: log_enabled
Response Example
----------------
.. literalinclude:: samples/logs/log-show-response.json
:language: javascript
Update log
==========
.. rest_method:: PUT /v2.0/log/logs/{log_id}
Updates a log resource.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- log_id: log_id-path
- log: log
- name: name-request
- description: description-request
- enabled: log_enabled-request-put
Request Example
---------------
.. literalinclude:: samples/logs/log-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- log: log
- id: log_id
- name: name
- description: description
- tenant_id: project_id
- project_id: project_id
- event: log_event
- resource_type: resource_log_type
- resource_id: resource_log_id
- target_id: resource_target_log_id
- enabled: log_enabled
Response Example
----------------
.. literalinclude:: samples/logs/log-update-response.json
:language: javascript
Delete log
==========
.. rest_method:: DELETE /v2.0/log/logs/{log_id}
Deletes a log resource.
Normal response codes: 204
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- log_id: log_id-path
Response
--------
There is no body content for the response of a successful DELETE request.
=================
Loggable resource
=================
List loggable resources
=======================
.. rest_method:: GET /v2.0/log/loggable-resources
Lists all resource log types are supporting.
Normal response codes: 200
Error response codes: 401
Request
-------
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- loggable_resources: loggable_resources
- type: resource_log_type
Response Example
----------------
.. literalinclude:: samples/logs/loggable_resources-list-response.json
:language: javascript

View File

@@ -1,218 +0,0 @@
.. -*- rst -*-
===================
Logging Resources
===================
.. note:: Currently this extension ``logging-resource`` is only available for networking-midonet.
Lists, shows information for, creates, updates and deletes logging resources.
List Logging Resources
======================
.. rest_method:: GET /v2.0/logging/logging_resources
Lists logging resources.
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
--------
.. rest_parameters:: parameters.yaml
- logging_resources: logging_resources
- id: logging_resource_id-body
- tenant_id: project_id
- project_id: project_id
- firewall_logs: firewall_logs
- name: name
- description: description
- enabled: logging_resource_enabled
Response Example
----------------
.. literalinclude:: samples/logging_resource/logging_resources-list-response.json
:language: javascript
Create Logging Resource
=======================
.. rest_method:: POST /v2.0/logging/logging_resources
Creates a logging resource.
Normal response codes: 200
Error response codes: 400, 401, 403
Request
-------
.. rest_parameters:: parameters.yaml
- logging_resource: logging_resource
- tenant_id: project_id-request
- project_id: project_id-request
- name: name-request
- description: description-request
- enabled: logging_resource_enabled-request
Request Example
---------------
.. literalinclude:: samples/logging_resource/logging_resource-create-request.json
:language: javascript
Response
--------
.. rest_parameters:: parameters.yaml
- logging_resource: logging_resource
- id: logging_resource_id-body
- tenant_id: project_id
- project_id: project_id
- firewall_logs: firewall_logs
- name: name
- description: description
- enabled: logging_resource_enabled
Response Example
----------------
.. literalinclude:: samples/logging_resource/logging_resource-create-response.json
:language: javascript
Show Logging Resource Details
=============================
.. rest_method:: GET /v2.0/logging/logging_resources/{logging_resource_id}
Shows details for a logging resource.
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: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- logging_resource_id: logging_resource_id
- fields: fields
Response
--------
.. rest_parameters:: parameters.yaml
- logging_resource: logging_resource
- id: logging_resource_id-body
- tenant_id: project_id
- project_id: project_id
- firewall_logs: firewall_logs
- name: name
- description: description
- enabled: logging_resource_enabled
Response Example
----------------
.. literalinclude:: samples/logging_resource/logging_resource-show-response.json
:language: javascript
Update Logging Resource
=======================
.. rest_method:: PUT /v2.0/logging/logging_resources/{logging_resource_id}
Updates a logging resource.
Normal response codes: 200
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- logging_resource_id: logging_resource_id
- logging_resource: logging_resource
- name: name-request-put
- description: description-request-put
- enabled: logging_resource_enabled-request-put
Request Example
----------------
.. literalinclude:: samples/logging_resource/logging_resource-update-request.json
:language: javascript
Response
--------
.. rest_parameters:: parameters.yaml
- logging_resource: logging_resource
- id: logging_resource_id-body
- tenant_id: project_id
- project_id: project_id
- firewall_logs: firewall_logs
- name: name
- description: description
- enabled: logging_resource_enabled
Response Example
----------------
.. literalinclude:: samples/logging_resource/logging_resource-update-response.json
:language: javascript
Delete Logging Resource
=======================
.. rest_method:: DELETE /v2.0/logging/logging_resources/{logging_resource_id}
Deletes a logging resource.
Normal response codes: 202
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- logging_resource_id: logging_resource_id
Response
--------
There is no body content for the response of a successful DELETE request.

View File

@@ -1,347 +0,0 @@
.. -*- rst -*-
=================================================================
Metering labels and rules (metering-labels, metering-label-rules)
=================================================================
Creates, modifies, and deletes OpenStack Layer3 metering labels and
rules.
List metering labels
====================
.. rest_method:: GET /v2.0/metering/metering-labels
Lists all L3 metering labels that belong to the project.
The list shows the ID for each metering label.
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
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- metering_labels: metering_labels
- description: description
- tenant_id: project_id
- project_id: project_id
- shared: metering_label-shared
- id: metering_label-id
- name: name
Response Example
----------------
.. literalinclude:: samples/metering/metering-labels-list-response.json
:language: javascript
Create metering label
=====================
.. rest_method:: POST /v2.0/metering/metering-labels
Creates an L3 metering label.
Normal response codes: 201
Error response codes: 400, 401, 403
Request
-------
.. rest_parameters:: parameters.yaml
- metering_label: metering_label
- shared: metering_label-shared-request
- description: description
- name: name
- tenant_id: project_id
- project_id: project_id
Request Example
---------------
.. literalinclude:: samples/metering/metering-label-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- metering_label: metering_label
- description: description
- tenant_id: project_id
- project_id: project_id
- shared: metering_label-shared
- id: metering_label-id
- name: name
Response Example
----------------
.. literalinclude:: samples/metering/metering-label-create-response.json
:language: javascript
Show metering label details
===========================
.. rest_method:: GET /v2.0/metering/metering-labels/{metering_label_id}
Shows details for a metering label.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- metering_label_id: metering_label-id-path
Request Example
---------------
.. literalinclude:: samples/metering/metering-label-show-request-json-http.txt
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- metering_label: metering_label
- description: description
- tenant_id: project_id
- project_id: project_id
- shared: metering_label-shared
- id: metering_label-id
- name: name
Response Example
----------------
.. literalinclude:: samples/metering/metering-label-show-response.json
:language: javascript
Delete metering label
=====================
.. rest_method:: DELETE /v2.0/metering/metering-labels/{metering_label_id}
Deletes an L3 metering label.
Normal response codes: 204
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- metering_label_id: metering_label-id-path
Request Example
---------------
.. literalinclude:: samples/metering/metering-label-delete-request-json-http.txt
:language: javascript
Response
--------
There is no body content for the response of a successful DELETE request.
List metering label rules
=========================
.. rest_method:: GET /v2.0/metering/metering-label-rules
Lists a summary of all L3 metering label rules that belong to the project.
The list shows the ID for each metering label rule.
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
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- metering_label_rules: metering_label_rules
- direction: direction
- remote_ip_prefix: remote_ip_prefix
- excluded : excluded
- metering_label_id: metering_label-id-response-body
- id: metering_label_rule-id
Response Example
----------------
.. literalinclude:: samples/metering/metering-label-rules-list-response.json
:language: javascript
Create metering label rule
==========================
.. rest_method:: POST /v2.0/metering/metering-label-rules
Creates an L3 metering label rule.
Normal response codes: 201
Error response codes: 400, 401, 403, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- metering_label_rule: metering_label_rule
- remote_ip_prefix: remote_ip_prefix
- direction: direction
- metering_label_id: metering_label-id-response-body
- excluded: excluded
Request Example
---------------
.. literalinclude:: samples/metering/metering-label-rule-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- metering_label_rule: metering_label_rule
- direction: direction
- remote_ip_prefix: remote_ip_prefix
- excluded : excluded
- metering_label_id: metering_label-id-response-body
- id: metering_label_rule-id
Response Example
----------------
.. literalinclude:: samples/metering/metering-label-rule-create-response.json
:language: javascript
Show metering label rule details
================================
.. rest_method:: GET /v2.0/metering/metering-label-rules/{metering_label_rule_id}
Shows details for a metering label rule.
The response body shows this information for each metering label rule:
- ``direction``. Either ingress or egress.
- ``excluded``. Either ``true`` or ``false``.
- The ID for the metering label rule.
- The remote IP prefix.
- The metering label ID for the metering label with which the rule
is associated.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- metering_label_rule_id: metering_label_rule-id-path
Request Example
---------------
.. literalinclude:: samples/metering/metering-label-rule-show-request-json-http.txt
:language: javascript
Response Paramters
------------------
.. rest_parameters:: parameters.yaml
- metering_label_rule: metering_label_rule
- direction: direction
- remote_ip_prefix: remote_ip_prefix
- excluded : excluded
- metering_label_id: metering_label-id-response-body
- id: metering_label_rule-id
Response Example
----------------
.. literalinclude:: samples/metering/metering-label-rule-show-response.json
:language: javascript
Delete metering label rule
==========================
.. rest_method:: DELETE /v2.0/metering/metering-label-rules/{metering_label_rule_id}
Deletes an L3 metering label rule.
Normal response codes: 204
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- metering_label_rule_id: metering_label_rule-id-path
Request Example
---------------
.. literalinclude:: samples/metering/metering-label-rule-delete-request-json-http.txt
:language: javascript
Response
--------
There is no body content for the response of a successful DELETE request.

View File

@@ -1,96 +0,0 @@
.. -*- rst -*-
=======================================
Network IP availability and usage stats
=======================================
The extension ``network-ip-availability`` allows users to list and show the
network IP usage stats of all networks or of a specified network.
By default policy configuration, only administrative users can use this API.
Show Network IP Availability
============================
.. rest_method:: GET /v2.0/network-ip-availabilities/{network_id}
Shows network IP availability details for a network.
By default policy configuration, only administrative users can retrieve
IP availability. Otherwise, ``Not Found (404)`` will be returned.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- network_id: network_id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- network_ip_availability: network_ip_availability
- network_id: network_ip_availability-network_id
- network_name: network-name
- tenant_id: project_id
- project_id: project_id
- total_ips: total_ips
- used_ips: used_ips
- subnet_ip_availability: subnet_ip_availability
- subnet_id: network_ip_availability-subnet_id
- subnet_name: subnet_name
- ip_version: subnet-ip_version
- cidr: cidr
Response Example
----------------
.. literalinclude:: samples/network-ip-availability/network-ip-availability-show.json
:language: javascript
List Network IP Availability
============================
.. rest_method:: GET /v2.0/network-ip-availabilities
Lists network IP availability of all networks.
By default policy configuration, only administrative users can retrieve
IP availabilities. Otherwise, an empty list will be returned.
Normal response codes: 200
Error response codes: 401
Request
-------
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- network_ip_availabilities: network_ip_availabilities
- network_id: network_ip_availability-network_id
- network_name: network-name
- tenant_id: project_id
- project_id: project_id
- total_ips: total_ips
- used_ips: used_ips
- subnet_ip_availability: subnet_ip_availability
- subnet_id: network_ip_availability-subnet_id
- subnet_name: subnet_name
- ip_version: subnet-ip_version
- cidr: cidr
Response Example
----------------
.. literalinclude:: samples/network-ip-availability/network-ip-availability-list.json
:language: javascript

View File

@@ -1,493 +0,0 @@
.. -*- rst -*-
.. needs:method_verification
.. NOTE(amotoki): method_verification will be removed after sorting methods
in the recommended order.
========
Networks
========
Lists, shows details for, creates, updates, and deletes networks.
provider extended attributes
============================
The ``provider`` extension allows administrative users to define a physical
binding of a logical network. This extension provides three additional
attributes: ``provider:network_type``, ``provider:physical_network`` and
``provider:segmentation_id``. The validation rules for these attributes
vary across ``provider:network_type``. For example, ``vlan`` and ``flat``
network types require ``provider:physical_network`` attribute, but ``vxlan``
network type does not.
Most Networking plug-ins (e.g. ML2 Plugin) and drivers do not support updating
any provider related attributes. Check your plug-in whether it supports
updating.
multiple provider extension
===========================
The ``multi-provider`` extension allows administrative users to define multiple
physical bindings for a logical network.
To define multiple physical bindings for a network, include a ``segments`` list
in the request body of network creation request. Each element in the
``segments`` list has the same structure as the provider network
attributes. These attributes are ``provider:network_type``,
``provider:physical_network``, and ``provider:segmentation_id``. The same
validation rules are applied to each element in the ``segments`` list.
Note that you cannot use the provider extension and the multiple provider
extension for a single logical network.
VLAN transparency extension
===========================
The ``vlan-transparent`` extension enables plug-ins that support VLAN
transparency to deliver VLAN transparent trunk networks.
This extension introduces ``vlan_transparent`` attribute to control
a VLAN transparecy of the network. If the service does not support VLAN
transparency and a user requests a VLAN transparent network,
the plug-in refuses to create one and returns an appropriate error to the user.
MTU extension
=============
The ``net-mtu`` extension allows plug-ins to expose the MTU that is guaranteed
to pass through the data path of the segments in the network. This extension
introduces a read-only ``mtu`` attribute.
Show network details
====================
.. rest_method:: GET /v2.0/networks/{network_id}
Shows details for a network.
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, 404
Request
-------
.. rest_parameters:: parameters.yaml
- network_id: network_id-path
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- network: network
- admin_state_up: network-admin_state_up
- availability_zone_hints: availability_zone_hints
- availability_zones: availability_zones
- created_at: created_at_resource
- id: network-id
- mtu: mtu
- name: network-name
- port_security_enabled: network-port_security_enabled
- project_id: project_id
- provider:network_type: provider:network_type
- provider:physical_network: provider:physical_network
- provider:segmentation_id: provider:segmentation_id
- qos_policy_id: qos_policy_id
- router:external: router:external
- segments: segments
- shared: network-shared
- status: network-status
- subnets: network-subnets
- tenant_id: project_id
- updated_at: updated_at_resource
- vlan_transparent: vlan_transparent
- description: description
Response Example
----------------
.. literalinclude:: samples/networks/network-show-response.json
:language: javascript
Response Example (admin user; single segment mapping)
-----------------------------------------------------
.. literalinclude:: samples/networks/network-provider-show-response.json
:language: javascript
Response Example (admin user; multiple segment mappings)
--------------------------------------------------------
.. literalinclude:: samples/networks/network-multi-show-response.json
:language: javascript
Update network
==============
.. rest_method:: PUT /v2.0/networks/{network_id}
Updates a network.
Normal response codes: 200
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- network_id: network_id-path
- network: network
- admin_state_up: network-admin_state_up-request
- name: network-name-request
- port_security_enabled: network-port_security_enabled-request
- provider:network_type: provider:network_type
- provider:physical_network: provider:physical_network
- provider:segmentation_id: provider:segmentation_id
- qos_policy_id: qos_policy_id-request
- router:external: router:external-request
- segments: segments
- shared: network-shared-request
- description: description-request
Request Example
---------------
.. literalinclude:: samples/networks/network-update-request.json
:language: javascript
Request Example (admin user; single segment mapping)
----------------------------------------------------
.. literalinclude:: samples/networks/network-provider-update-request.json
:language: javascript
Request Example (admin user; multiple segment mappings)
-------------------------------------------------------
.. literalinclude:: samples/networks/network-multi-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- network: network
- admin_state_up: network-admin_state_up
- availability_zone_hints: availability_zone_hints
- availability_zones: availability_zones
- id: network-id
- mtu: mtu
- name: network-name
- port_security_enabled: network-port_security_enabled
- project_id: project_id
- provider:network_type: provider:network_type
- provider:physical_network: provider:physical_network
- provider:segmentation_id: provider:segmentation_id
- qos_policy_id: qos_policy_id
- router:external: router:external
- segments: segments
- shared: network-shared
- status: network-status
- subnets: network-subnets
- tenant_id: project_id
- description: description
Response Example
----------------
This is an example when a regular user without administrative roles
sends a PUT request. Response examples for administrative users are
similar to responses of `Show network details <#show-network-details>`__
and `Create network <#create-network>`__. See them for details.
.. literalinclude:: samples/networks/network-update-response.json
:language: javascript
Delete network
==============
.. rest_method:: DELETE /v2.0/networks/{network_id}
Deletes a network and its associated resources.
Normal response codes: 204
Error response codes: 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- network_id: network_id-path
Response
--------
There is no body content for the response of a successful DELETE request.
List networks
=============
.. rest_method:: GET /v2.0/networks
Lists networks to which the project has access.
Default policy settings return only networks that the project who submits the
request owns, unless an administrative user submits the request. In addition,
networks shared with the project who submits the request are also returned.
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>`__.
.. TODO(amotoki): Add description on tag filtering to the general API overview.
You can also use the ``tags``, ``tags-any``, ``not-tags``, ``not-tags-any``
query parameter to filter the response with tags. For information,
see `REST API Impact <http://specs.openstack.org/openstack/neutron-
specs/specs/mitaka/add-tags-to-core-resources.html#rest-api-
impact>`__.
Normal response codes: 200
Error response codes: 401
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- networks: networks
- admin_state_up: network-admin_state_up
- availability_zone_hints: availability_zone_hints
- availability_zones: availability_zones
- id: network-id
- mtu: mtu
- name: network-name
- port_security_enabled: network-port_security_enabled
- project_id: project_id
- provider:network_type: provider:network_type
- provider:physical_network: provider:physical_network
- provider:segmentation_id: provider:segmentation_id
- qos_policy_id: qos_policy_id
- router:external: router:external
- segments: segments
- shared: network-shared
- status: network-status
- subnets: network-subnets
- tenant_id: project_id
- vlan_transparent: vlan_transparent
- description: description
Response Example
----------------
.. literalinclude:: samples/networks/networks-list-response.json
:language: javascript
Response Example (admin user)
-----------------------------
When Administrative users request to list networks,
physical segment information bound to the networks are also returned
in a response. In this example, a network ``net1`` is mapped to a single
network segment and a network ``net2`` is mapped to multiple network segments.
.. literalinclude:: samples/networks/networks-provider-list-response.json
:language: javascript
Create network
==============
.. rest_method:: POST /v2.0/networks
Creates a network.
A request body is optional. An administrative user can specify
another project ID, which is the project that owns the network, in
the request body.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- network: network
- admin_state_up: network-admin_state_up-request
- name: network-name-request
- port_security_enabled: network-port_security_enabled-request
- project_id: project_id-request
- provider:network_type: provider:network_type-request
- provider:physical_network: provider:physical_network-request
- provider:segmentation_id: provider:segmentation_id-request
- qos_policy_id: qos_policy_id-request
- router:external: router:external-request
- segments: segments-request
- shared: network-shared-request
- tenant_id: project_id-request
- vlan_transparent: vlan_transparent-request
- description: description-request
Request Example
---------------
.. literalinclude:: samples/networks/network-create-request.json
:language: javascript
Request Example (admin user; single segment mapping)
----------------------------------------------------
.. literalinclude:: samples/networks/network-provider-create-request.json
:language: javascript
Request Example (admin user; multiple segment mappings)
-------------------------------------------------------
.. literalinclude:: samples/networks/network-multi-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- network: network
- admin_state_up: network-admin_state_up
- availability_zone_hints: availability_zone_hints
- availability_zones: availability_zones
- id: network-id
- mtu: mtu
- name: network-name
- port_security_enabled: network-port_security_enabled
- project_id: project_id
- provider:network_type: provider:network_type
- provider:physical_network: provider:physical_network
- provider:segmentation_id: provider:segmentation_id
- qos_policy_id: qos_policy_id
- router:external: router:external
- segments: segments
- shared: network-shared
- status: network-status
- subnets: network-subnets
- tenant_id: project_id
- vlan_transparent: vlan_transparent
- description: description
Response Example
----------------
.. literalinclude:: samples/networks/network-create-response.json
:language: javascript
Response Example (admin user; single segment mapping)
-----------------------------------------------------
.. literalinclude:: samples/networks/network-provider-create-response.json
:language: javascript
Response Example (admin user; multiple segment mappings)
--------------------------------------------------------
.. literalinclude:: samples/networks/network-multi-create-response.json
:language: javascript
Bulk create networks
====================
.. rest_method:: POST /v2.0/networks
Creates multiple networks in a single request.
In the request body, specify a list of networks.
The bulk create operation is always atomic. Either all or no
networks in the request body are created.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- networks: networks
- admin_state_up: network-admin_state_up-request
- name: network-name-request
- port_security_enabled: network-port_security_enabled-request
- project_id: project_id-request
- provider:network_type: provider:network_type-request
- provider:physical_network: provider:physical_network-request
- provider:segmentation_id: provider:segmentation_id-request
- qos_policy_id: qos_policy_id-request
- router:external: router:external-request
- segments: segments-request
- shared: network-shared-request
- tenant_id: project_id-request
- vlan_transparent: vlan_transparent-request
- description: description-request
Request Example
---------------
.. literalinclude:: samples/networks/networks-bulk-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- networks: networks
- admin_state_up: network-admin_state_up
- availability_zone_hints: availability_zone_hints
- availability_zones: availability_zones
- id: network-id
- mtu: mtu
- name: network-name
- port_security_enabled: network-port_security_enabled
- project_id: project_id
- provider:network_type: provider:network_type
- provider:physical_network: provider:physical_network
- provider:segmentation_id: provider:segmentation_id
- qos_policy_id: qos_policy_id
- router:external: router:external
- segments: segments
- shared: network-shared
- status: network-status
- subnets: network-subnets
- tenant_id: project_id
- vlan_transparent: vlan_transparent
- description: description
Response Example
----------------
.. literalinclude:: samples/networks/networks-bulk-create-response.json
:language: javascript

File diff suppressed because it is too large Load Diff

View File

@@ -1,482 +0,0 @@
.. -*- rst -*-
=====
Ports
=====
Lists, shows details for, creates, updates, and deletes ports.
Port binding extended attributes
================================
The port binding extension (``binding``) allows administrative users
to specify and retrieve physical binding information of ports.
The extension defines several attributes whose names have a prefix
``binding:`` including ``binding:host_id``, ``binding:vnic_type``,
``binding:vif_type``, ``binding:vif_details``, and ``binding:profile``.
|
Data plane status extension
===========================
The data plane port extension (``data-plane-status``) adds a new attribute
``data_plane_status`` to represent the status of the underlying data plane.
This attribute is to be managed by entities outside of the Networking service,
while the ``status`` attribute is managed by Networking service. Both status
attributes are independent from one another.
Supported data plane status values:
- ``null``: no status being reported; default value
- ``ACTIVE``: the underlying data plane is up and running
- ``DOWN``: no traffic can flow from/to the port
Show port details
=================
.. rest_method:: GET /v2.0/ports/{port_id}
Shows details for a port.
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, 404
Request
-------
.. rest_parameters:: parameters.yaml
- port_id: port_id-path
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- port: port
- admin_state_up: admin_state_up
- allowed_address_pairs: allowed_address_pairs
- binding:host_id: binding:host_id
- binding:profile: binding:profile
- binding:vif_details: binding:vif_details
- binding:vif_type: binding:vif_type
- binding:vnic_type: binding:vnic_type
- created_at: created_at
- data_plane_status: data_plane_status
- description: description
- device_id: device_id
- device_owner: device_owner
- extra_dhcp_opts: extra_dhcp_opts
- fixed_ips: fixed_ips
- id: id
- mac_address: mac_address
- name: name
- network_id: network_id
- port_security_enabled: port_security_enabled
- project_id: project_id
- security_groups: port-security_groups
- status: port-status
- tenant_id: project_id
- updated_at: updated_at
Response Example
----------------
.. literalinclude:: samples/ports/port-show-response.json
:language: javascript
Response Example (admin user)
-----------------------------
.. literalinclude:: samples/ports/port-bind-show-response.json
:language: javascript
Update port
===========
.. rest_method:: PUT /v2.0/ports/{port_id}
Updates a port.
You can update information for a port, such as its symbolic name
and associated IPs. When you update IPs for a port, any previously
associated IPs are removed, returned to the respective subnet
allocation pools, and replaced by the IPs in the request body.
Therefore, this operation replaces the ``fixed_ip`` attribute when
you specify it in the request body. If the updated IP addresses are
not valid or are already in use, the operation fails and the
existing IP addresses are not removed from the port.
When you update security groups for a port and the operation
succeeds, any associated security groups are removed and replaced
by the security groups in the request body. Therefore, this
operation replaces the ``security_groups`` attribute when you
specify it in the request body. If the security groups are not
valid, the operation fails and the existing security groups are not
removed from the port.
Only admins and users with a specific role can update the data plane status
(default role: ``data_plane_integrator``).
Normal response codes: 200
Error response codes: 400, 401, 403, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- port_id: port_id-path
- port: port
- admin_state_up: admin_state_up-request
- allowed_address_pairs: allowed_address_pairs-request
- binding:host_id: binding:host_id-request
- binding:profile: binding:profile-request
- binding:vnic_type: binding:vnic_type-request
- data_plane_status: data_plane_status-request
- description: description-request
- device_id: device_id-request
- device_owner: device_owner-request
- extra_dhcp_opts: extra_dhcp_opts-request
- fixed_ips: fixed_ips-request
- mac_address: mac_address-request-put
- name: name-request
- port_security_enabled: port_security_enabled-request
- security_groups: port-security_groups-request
Request Example
---------------
.. literalinclude:: samples/ports/port-update-request.json
:language: javascript
Request Example (admin user)
----------------------------
.. literalinclude:: samples/ports/port-bind-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- port: port
- admin_state_up: admin_state_up
- allowed_address_pairs: allowed_address_pairs
- binding:host_id: binding:host_id
- binding:profile: binding:profile
- binding:vif_details: binding:vif_details
- binding:vif_type: binding:vif_type
- binding:vnic_type: binding:vnic_type
- created_at: created_at
- data_plane_status: data_plane_status
- description: description
- device_id: device_id
- device_owner: device_owner
- extra_dhcp_opts: extra_dhcp_opts
- fixed_ips: fixed_ips
- id: id
- mac_address: mac_address
- name: name
- network_id: network_id
- port_security_enabled: port_security_enabled
- project_id: project_id
- security_groups: port-security_groups
- status: port-status
- tenant_id: project_id
- updated_at: updated_at
Response Example
----------------
.. literalinclude:: samples/ports/port-update-response.json
:language: javascript
Response Example (admin user)
-----------------------------
.. literalinclude:: samples/ports/port-bind-update-response.json
:language: javascript
Delete port
===========
.. rest_method:: DELETE /v2.0/ports/{port_id}
Deletes a port.
Any IP addresses that are associated with the port are returned to
the respective subnets allocation pools.
Normal response codes: 204
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- port_id: port_id-path
Response
--------
There is no body content for the response of a successful DELETE request.
List ports
==========
.. rest_method:: GET /v2.0/ports
Lists ports to which the user has access.
Default policy settings return only those ports that are owned by
the project of the user who submits the request, unless the request is submitted
by a user with administrative rights.
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
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- ports: ports
- admin_state_up: admin_state_up
- allowed_address_pairs: allowed_address_pairs
- binding:host_id: binding:host_id
- binding:profile: binding:profile
- binding:vif_details: binding:vif_details
- binding:vif_type: binding:vif_type
- binding:vnic_type: binding:vnic_type
- created_at: created_at
- data_plane_status: data_plane_status
- description: description
- device_id: device_id
- device_owner: device_owner
- extra_dhcp_opts: extra_dhcp_opts
- fixed_ips: fixed_ips
- id: id
- mac_address: mac_address
- name: name
- network_id: network_id
- port_security_enabled: port_security_enabled
- project_id: project_id
- security_groups: port-security_groups
- status: port-status
- tenant_id: project_id
- updated_at: updated_at
Response Example
----------------
.. literalinclude:: samples/ports/ports-list-response.json
:language: javascript
Response Example (admin user)
-----------------------------
.. literalinclude:: samples/ports/ports-bind-list-response.json
:language: javascript
Create port
===========
.. rest_method:: POST /v2.0/ports
Creates a port on a network.
To define the network in which to create the port, specify the
``network_id`` attribute in the request body.
Normal response codes: 201
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- port: port
- admin_state_up: admin_state_up-request
- allowed_address_pairs: allowed_address_pairs-request
- binding:host_id: binding:host_id-request
- binding:profile: binding:profile-request
- binding:vnic_type: binding:vnic_type-request
- description: description-request
- device_id: device_id-request
- device_owner: device_owner-request
- extra_dhcp_opts: extra_dhcp_opts-request
- fixed_ips: fixed_ips-request
- mac_address: mac_address-request
- name: name-request
- network_id: network_id
- port_security_enabled: port_security_enabled-request
- project_id: project_id-request
- security_groups: port-security_groups-request
- tenant_id: project_id-request
Request Example
---------------
.. literalinclude:: samples/ports/port-create-request.json
:language: javascript
Request Example (admin user)
----------------------------
.. literalinclude:: samples/ports/port-bind-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- port: port
- admin_state_up: admin_state_up
- allowed_address_pairs: allowed_address_pairs
- binding:host_id: binding:host_id
- binding:profile: binding:profile
- binding:vif_details: binding:vif_details
- binding:vif_type: binding:vif_type
- binding:vnic_type: binding:vnic_type
- created_at: created_at
- data_plane_status: data_plane_status
- description: description
- device_id: device_id
- device_owner: device_owner
- extra_dhcp_opts: extra_dhcp_opts
- fixed_ips: fixed_ips
- id: id
- mac_address: mac_address
- name: name
- network_id: network_id
- port_security_enabled: port_security_enabled
- project_id: project_id
- security_groups: port-security_groups
- status: port-status
- tenant_id: project_id
- updated_at: updated_at
Response Example
----------------
.. literalinclude:: samples/ports/port-create-response.json
:language: javascript
Response Example (admin user)
-----------------------------
.. literalinclude:: samples/ports/port-bind-create-response.json
:language: javascript
Bulk create ports
=================
.. rest_method:: POST /v2.0/ports
Creates multiple ports in a single request. Specify a list of ports in the request body.
Guarantees the atomic completion of the bulk operation.
Normal response codes: 201
Error response codes: 400, 401, 403, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- ports: ports
- admin_state_up: admin_state_up-request
- allowed_address_pairs: allowed_address_pairs-request
- binding:host_id: binding:host_id-request
- binding:profile: binding:profile-request
- binding:vnic_type: binding:vnic_type-request
- description: description-request
- device_id: device_id-request
- device_owner: device_owner-request
- extra_dhcp_opts: extra_dhcp_opts-request
- fixed_ips: fixed_ips-request
- mac_address: mac_address-request
- name: name-request
- network_id: network_id
- port_security_enabled: port_security_enabled-request
- project_id: project_id-request
- security_groups: port-security_groups-request
- tenant_id: project_id-request
Request Example
---------------
.. literalinclude:: samples/ports/ports-bulk-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- ports: ports
- admin_state_up: admin_state_up
- allowed_address_pairs: allowed_address_pairs
- binding:host_id: binding:host_id
- binding:profile: binding:profile
- binding:vif_details: binding:vif_details
- binding:vif_type: binding:vif_type
- binding:vnic_type: binding:vnic_type
- created_at: created_at
- data_plane_status: data_plane_status
- description: description
- device_id: device_id
- device_owner: device_owner
- extra_dhcp_opts: extra_dhcp_opts
- fixed_ips: fixed_ips
- id: id
- mac_address: mac_address
- name: name
- network_id: network_id
- port_security_enabled: port_security_enabled
- project_id: project_id
- security_groups: port-security_groups
- status: port-status
- tenant_id: project_id
- updated_at: updated_at
Response Example
----------------
.. literalinclude:: samples/ports/ports-bulk-create-response.json
:language: javascript

View File

@@ -1,639 +0,0 @@
.. -*- rst -*-
==============
QoS rule types
==============
List QoS rule types available in current deployment.
List QoS rule types
===================
.. rest_method:: GET /v2.0/qos/rule-types
Lists available qos rule types.
Normal response codes: 200
Error response codes: 401
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- rule_types: qos-rule-types
- type: qos-rule-type
Response Example
----------------
.. literalinclude:: samples/qos/rule_types-list-response.json
:language: javascript
==================
QoS policies (qos)
==================
Lists, creates, deletes, shows information for, and updates QoS policies.
List QoS policies
=================
.. rest_method:: GET /v2.0/qos/policies
Lists all QoS policies associated with your project.
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
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- policies: policies
- description: description
- tenant_id: project_id
- project_id: project_id
- shared: qos-shared
- id: qos_policy_id
- rules: qos-rules
- name: name
Response Example
----------------
.. literalinclude:: samples/qos/policies-list-response.json
:language: javascript
Create QoS policy
=================
.. rest_method:: POST /v2.0/qos/policies
Creates a QoS policy.
Creates a QoS policy by using the configuration that you define in
the request object. A response object is returned. The object
contains a unique ID.
By the default policy configuration, if the caller is not an administrative
user, this call returns the HTTP ``Forbidden (403)`` response code.
Users with an administrative role can create policies on behalf of
other projects by specifying a project ID that is different than
their own.
Normal response codes: 201
Error response codes: 401, 403, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- policy: policy
- description: description-request
- tenant_id: project_id-request
- project_id: project_id-request
- shared: qos-shared-request
- name: qos_policy-name
Request Example
---------------
.. literalinclude:: samples/qos/policy-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- policy: policy
- description: description
- tenant_id: project_id
- project_id: project_id
- shared: qos-shared
- rules: qos-rules
- id: qos_policy_id
- name: name
Response Example
----------------
.. literalinclude:: samples/qos/policy-create-response.json
:language: javascript
Show QoS policy details
=======================
.. rest_method:: GET /v2.0/qos/policies/{policy_id}
Shows details for a QoS policy.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- policy: policy
- description: description
- tenant_id: project_id
- project_id: project_id
- shared: qos-shared
- rules: qos-rules
- id: qos_policy_id
- name: name
Response Example
----------------
.. literalinclude:: samples/qos/policy-show-response.json
:language: javascript
Update QoS policy
=================
.. rest_method:: PUT /v2.0/qos/policies/{policy_id}
Updates a QoS policy.
If the request is valid, the service returns the ``Accepted (202)``
response code.
Normal response codes: 202
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
- policy: policy
- description: description-request
- shared: qos-shared-request
- name: qos_policy-name
Request Example
---------------
.. literalinclude:: samples/qos/policy-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- policy: policy
- description: description
- tenant_id: project_id
- project_id: project_id
- shared: qos-shared
- id: qos_policy_id
- rules: qos-rules
- name: name
Response Example
----------------
.. literalinclude:: samples/qos/policy-update-response.json
:language: javascript
Delete QoS policy
=================
.. rest_method:: DELETE /v2.0/qos/policies/{policy_id}
Deletes a QoS policy.
Normal response codes: 204
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
Response
--------
There is no body content for the response of a successful DELETE request.
=========================
QoS bandwidth limit rules
=========================
Lists, creates, deletes, shows information for, and updates QoS bandwidth limit rules.
List bandwidth limit rules for QoS policy
=========================================
.. rest_method:: GET /v2.0/qos/policies/{policy_id}/bandwidth_limit_rules
Lists all bandwidth limit rules for a QoS policy.
The list might be empty.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- bandwidth_limit_rules: bandwidth_limit_rules
- max_kbps: max_kbps-response
- id: qos_bandwidth_limit_rule-id
- max_burst_kbps: max_burst_kbps-response
- direction: qos-rule-direction-response
Response Example
----------------
.. literalinclude:: samples/qos/bandwidth_limit_rules-list-response.json
:language: javascript
Create bandwidth limit rule
===========================
.. rest_method:: POST /v2.0/qos/policies/{policy_id}/bandwidth_limit_rules
Creates a bandwidth limit rule for a QoS policy.
Normal response codes: 201
Error response codes: 400, 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
- bandwidth_limit_rule: bandwidth_limit_rule
- max_kbps: max_kbps
- max_burst_kbps: max_burst_kbps
- direction: qos-rule-direction
Request Example
---------------
.. literalinclude:: samples/qos/bandwidth_limit_rule-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- bandwidth_limit_rule: bandwidth_limit_rule
- max_kbps: max_kbps-response
- id: qos_bandwidth_limit_rule-id
- max_burst_kbps: max_burst_kbps-response
- direction: qos-rule-direction-response
Response Example
----------------
.. literalinclude:: samples/qos/bandwidth_limit_rule-create-response.json
:language: javascript
Show bandwidth limit rule details
=================================
.. rest_method:: GET /v2.0/qos/policies/{policy_id}/bandwidth_limit_rules/{rule_id}
Shows details for a bandwidth limit rule for a QoS policy.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
- rule_id: qos-rule_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- bandwidth_limit_rule: bandwidth_limit_rule
- max_kbps: max_kbps-response
- id: qos_bandwidth_limit_rule-id
- max_burst_kbps: max_burst_kbps-response
- direction: qos-rule-direction-response
Response Example
----------------
.. literalinclude:: samples/qos/bandwidth_limit_rule-show-response.json
:language: javascript
Update bandwidth limit rule
===========================
.. rest_method:: PUT /v2.0/qos/policies/{policy_id}/bandwidth_limit_rules/{rule_id}
Updates a bandwidth limit rule for a QoS policy.
If the request is valid, the service returns the ``Accepted (202)``
response code.
Normal response codes: 202
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
- rule_id: qos-rule_id
- bandwidth_limit_rule: bandwidth_limit_rule
- max_kbps: max_kbps
- max_burst_kbps: max_burst_kbps
- direction: qos-rule-direction-update
Request Example
---------------
.. literalinclude:: samples/qos/bandwidth_limit_rule-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- bandwidth_limit_rule: bandwidth_limit_rule
- max_kbps: max_kbps-response
- id: qos_bandwidth_limit_rule-id
- max_burst_kbps: max_burst_kbps-response
- direction: qos-rule-direction-update-response
Response Example
----------------
.. literalinclude:: samples/qos/bandwidth_limit_rule-update-response.json
:language: javascript
Delete bandwidth limit rule
===========================
.. rest_method:: DELETE /v2.0/qos/policies/{policy_id}/bandwidth_limit_rules/{rule_id}
Deletes a bandwidth limit rule for a QoS policy.
Normal response codes: 204
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
- rule_id: qos-rule_id
Response
--------
There is no body content for the response of a successful DELETE request.
======================
QoS DSCP marking rules
======================
Lists, creates, deletes, shows information for, and updates QoS DSCP marking rules.
List DSCP marking rules for QoS policy
======================================
.. rest_method:: GET /v2.0/qos/policies/{policy_id}/dscp_marking_rules
Lists all DSCP marking rules for a QoS policy.
The list may be empty.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- dscp_marking_rules: dscp_marking_rules
- dscp_mark: dscp_mark-response
- id: qos_dscp_marking_rule-id
Response Example
----------------
.. literalinclude:: samples/qos/dscp_marking_rules-list-response.json
:language: javascript
Create DSCP marking rule
========================
.. rest_method:: POST /v2.0/qos/policies/{policy_id}/dscp_marking_rules
Creates a DSCP marking rule for a QoS policy.
Normal response codes: 201
Error response codes: 400, 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
- dscp_marking_rule: dscp_marking_rule
- dscp_mark: dscp_mark
Request Example
---------------
.. literalinclude:: samples/qos/dscp_marking_rule-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- dscp_marking_rule: dscp_marking_rule
- dscp_mark: dscp_mark-response
- id: qos_dscp_marking_rule-id
Response Example
----------------
.. literalinclude:: samples/qos/dscp_marking_rule-create-response.json
:language: javascript
Show DSCP marking rule details
==============================
.. rest_method:: GET /v2.0/qos/policies/{policy_id}/dscp_marking_rules/{dscp_rule_id}
Shows details for a DSCP marking rule for a QoS policy.
Normal response codes: 200
Error response codes: 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
- dscp_rule_id: dscp_rule_id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- dscp_marking_rule: dscp_marking_rule
- dscp_mark: dscp_mark
- id: qos_dscp_marking_rule-id
Response Example
----------------
.. literalinclude:: samples/qos/dscp_marking_rule-show-response.json
:language: javascript
Update DSCP marking rule
========================
.. rest_method:: PUT /v2.0/qos/policies/{policy_id}/dscp_marking_rules/{dscp_rule_id}
Updates a DSCP marking rule for a QoS policy.
If the request is valid, the service returns the ``Accepted (202)``
response code.
Normal response codes: 202
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
- dscp_rule_id: dscp_rule_id
- dscp_marking_rule: dscp_marking_rule
- dscp_mark: dscp_mark
Request Example
---------------
.. literalinclude:: samples/qos/dscp_marking_rule-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- dscp_marking_rule: dscp_marking_rule
- dscp_mark: dscp_mark-response
- id: qos_dscp_marking_rule-id
Response Example
----------------
.. literalinclude:: samples/qos/dscp_marking_rule-update-response.json
:language: javascript
Delete DSCP marking rule
========================
.. rest_method:: DELETE /v2.0/qos/policies/{policy_id}/dscp_marking_rules/{dscp_rule_id}
Deletes a DSCP marking rule for a QoS policy.
Normal response codes: 204
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- policy_id: qos-policy-id-path
- dscp_rule_id: dscp_rule_id
Response
--------
There is no body content for the response of a successful DELETE request.

View File

@@ -1,207 +0,0 @@
.. -*- rst -*-
=========================
Quotas extension (quotas)
=========================
Lists default quotas, current quotas for projects with non-default quota
values, and shows, updates, and resets quotas for a project.
A quota value of ``-1`` means that quota has no limit.
List quotas for projects with non-default quota values
======================================================
.. rest_method:: GET /v2.0/quotas
Lists quotas for projects with non-default quota values.
Normal response codes: 200
Error response codes: 401, 403
Request
-------
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- quotas: quotas
- floatingip: quota-floatingip
- network: quota-network
- port: quota-port
- project_id: project_id
- rbac_policy: quota-rbac_policy
- router: quota-router
- security_group: quota-security_group
- security_group_rule: quota-security_group_rule
- subnet: quota-subnet
- subnetpool: quota-subnetpool
- tenant_id: project_id
Response Example
----------------
.. literalinclude:: samples/quotas/quotas-list-response.json
:language: javascript
List quotas for a project
=========================
.. rest_method:: GET /v2.0/quotas/{project_id}
Lists quotas for a project.
Normal response codes: 200
Error response codes: 401, 403
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- quota: quota
- floatingip: quota-floatingip
- network: quota-network
- port: quota-port
- rbac_policy: quota-rbac_policy
- router: quota-router
- security_group: quota-security_group
- security_group_rule: quota-security_group_rule
- subnet: quota-subnet
- subnetpool: quota-subnetpool
Response Example
----------------
.. literalinclude:: samples/quotas/quotas-list-for-project-response.json
:language: javascript
Update quota for a project
==========================
.. rest_method:: PUT /v2.0/quotas/{project_id}
Updates quotas for a project. Use when non-default quotas are desired.
Normal response codes: 200
Error response codes: 401, 403
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id-path
- quota: quota
- floatingip: quota-floatingip-request
- network: quota-network-request
- port: quota-port-request
- rbac_policy: quota-rbac_policy-request
- router: quota-router-request
- security_group: quota-security_group-request
- security_group_rule: quota-security_group_rule-request
- subnet: quota-subnet-request
- subnetpool: quota-subnetpool-request
Request Example
---------------
.. literalinclude:: samples/quotas/quotas-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- quota: quota
- floatingip: quota-floatingip
- network: quota-network
- port: quota-port
- rbac_policy: quota-rbac_policy
- router: quota-router
- security_group: quota-security_group
- security_group_rule: quota-security_group_rule
- subnet: quota-subnet
- subnetpool: quota-subnetpool
Response Example
----------------
.. literalinclude:: samples/quotas/quotas-update-response.json
:language: javascript
Reset quota for a project
=========================
.. rest_method:: DELETE /v2.0/quotas/{project_id}
Resets quotas to default values for a project.
Normal response codes: 204
Error response codes: 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id-path
Response
--------
There is no body content for the response of a successful DELETE request.
List default quotas for a project
=================================
.. rest_method:: GET /v2.0/quotas/{project_id}/default
Lists default quotas for a project.
Normal response codes: 200
Error response codes: 401, 403
Request
-------
.. rest_parameters:: parameters.yaml
- project_id: project_id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- quota: quota
- floatingip: quota-floatingip
- network: quota-network
- port: quota-port
- rbac_policy: quota-rbac_policy
- router: quota-router
- security_group: quota-security_group
- security_group_rule: quota-security_group_rule
- subnet: quota-subnet
- subnetpool: quota-subnetpool
Response Example
----------------
.. literalinclude:: samples/quotas/quotas-list-for-project-response.json
:language: javascript

View File

@@ -1,206 +0,0 @@
.. -*- rst -*-
=============
RBAC Policies
=============
Lists, shows details for, creates, updates, and deletes RBAC policies.
Show RBAC policy details
========================
.. rest_method:: GET /v2.0/rbac-policies/{rbac_policy_id}
Show details for a given RBAC policy.
You can control which response parameters are returned by using the
fields query parameter. 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, 404
Request
-------
.. rest_parameters:: parameters.yaml
- rbac_policy_id: rbac_policy_id-path
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- target_tenant: target_tenant
- tenant_id: tenant_id
- object_type: object_type
- object_id: object_id
- action: rbac_action
- project_id: project_id
- id: rbac_policy_id
Response Example
----------------
.. literalinclude:: samples/rbac_policy/rbac-policy-show-response.json
:language: javascript
Update RBAC policy
==================
.. rest_method:: PUT /v2.0/rbac-policies/{rbac_policy_id}
Update RBAC policy for given tenant.
Normal response codes: 200
Error response codes: 400, 401, 403, 404
Request
-------
.. rest_parameters:: parameters.yaml
- rbac_policy_id: rbac_policy_id-path
- target_tenant: target_tenant
Request Example
---------------
.. literalinclude:: samples/rbac_policy/rbac-policy-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- target_tenant: target_tenant
- tenant_id: tenant_id
- object_type: object_type
- object_id: object_id
- action: rbac_action
- project_id: project_id
- id: rbac_policy_id
Response Example
----------------
.. literalinclude:: samples/rbac_policy/rbac-policy-update-response.json
:language: javascript
Delete RBAC policy
==================
.. rest_method:: DELETE /v2.0/rbac-policies/{rbac_policy_id}
Delete an RBAC policy.
Normal response codes: 204
Error response codes: 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- rbac_policy_id: rbac_policy_id-path
Response
--------
There is no body content for the response of a successful DELETE request.
List RBAC policies
==================
.. rest_method:: GET /v2.0/rbac-policies
List RBAC policies that belong to a given tenant.
Use the ``fields`` query parameter to filter the response. For
information, see `Filtering and Column Selection <https://wiki.open
stack.org/wiki/Neutron/APIv2-specification#Filtering_and_Column_Sel
ection>`__.
Normal response codes: 200
Error response codes: 401
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- target_tenant: target_tenant
- tenant_id: tenant_id
- object_type: object_type
- object_id: object_id
- action: rbac_action
- project_id: project_id
- id: rbac_policy_id
Response Example
----------------
.. literalinclude:: samples/rbac_policy/rbac-policies-list-response.json
:language: javascript
Create RBAC policy
==================
.. rest_method:: POST /v2.0/rbac-policies
Create RBAC policy for given tenant.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- rbac_policy_id: rbac_policy_id-path
- target_tenant: target_tenant
- object_type: object_type
- object_id: object_id
- action: rbac_action
Request Example
---------------
.. literalinclude:: samples/rbac_policy/rbac-policy-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- target_tenant: target_tenant
- tenant_id: tenant_id
- object_type: object_type
- object_id: object_id
- action: rbac_action
- project_id: project_id
- id: rbac_policy_id
Response Example
----------------
.. literalinclude:: samples/rbac_policy/rbac-policy-create-response.json
:language: javascript

View File

@@ -1,14 +0,0 @@
.. -*- rst -*-
============================
Router Interface floating IP
============================
.. note:: Currently this extension ``router-interface-fip`` is only available for networking-midonet.
This extension ``router-interface-fip`` indicates the ability to
associate floating IPs to internal interfaces of a router.
(Without this extension, floating IPs can be associated only to
the gateway interface of a router.)
This extension does not introduce any resources or attributes.

View File

@@ -1,466 +0,0 @@
.. -*- rst -*-
=================
Routers (routers)
=================
A ``router`` is a logical entity for forwarding packets across
internal subnets and NATting them on external networks through an
appropriate external gateway.
This resource is provided when ``router`` extension is enabled.
List routers
============
.. rest_method:: GET /v2.0/routers
Lists logical routers that the project who submits the request can access.
Default policy settings return only those routers that the project
who submits the request owns, unless an administrative user submits
the request.
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
Request
-------
.. rest_parameters:: parameters.yaml
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- routers: routers
- id: router-id-body
- tenant_id: project_id
- project_id: project_id
- name: name
- description: description
- admin_state_up: admin_state_up
- status: router-status
- external_gateway_info: router-external_gateway_info
- network_id: router-network_id
- enable_snat: router-enable_snat
- external_fixed_ips: router-external_fixed_ips
- routes: router-routes
- destination: router-destination
- nexthop: router-nexthop
- distributed: router-distributed
- ha: router-ha
- availability_zone_hints: router-availability_zone_hints
- availability_zones: router-availability_zones
Response Example
----------------
.. literalinclude:: samples/routers/routers-list-response.json
:language: javascript
Create router
=============
.. rest_method:: POST /v2.0/routers
Creates a logical router.
This operation creates a logical router. The logical router does
not have any internal interface and it is not associated with any
subnet. You can optionally specify an external gateway for a router
at create time. The external gateway for the router must be plugged
into an external network. An external network has its
``router:external`` extended field set to ``true``. To specify an
external gateway, the ID of the external network must be passed
in the ``network_id`` parameter of the ``external_gateway_info``
attribute in the request body.
Normal response codes: 201
Error response codes: 400, 401
Request
-------
.. rest_parameters:: parameters.yaml
- router: router
- tenant_id: project_id-request
- project_id: project_id-request
- name: name-request
- description: description-request
- admin_state_up: admin_state_up-request
- external_gateway_info: router-external_gateway_info-request
- network_id: router-network_id
- enable_snat: router-enable_snat-request
- external_fixed_ips: router-external_fixed_ips-request
- distributed: router-distributed-request
- ha: router-ha-request
- availability_zone_hints: router-availability_zone_hints-request
Request Example
---------------
.. literalinclude:: samples/routers/router-create-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router: router
- id: router-id-body
- tenant_id: project_id
- project_id: project_id
- name: name
- description: description
- admin_state_up: admin_state_up
- status: router-status
- external_gateway_info: router-external_gateway_info
- network_id: router-network_id
- enable_snat: router-enable_snat
- external_fixed_ips: router-external_fixed_ips
- routes: router-routes
- destination: router-destination
- nexthop: router-nexthop
- distributed: router-distributed
- ha: router-ha
- availability_zone_hints: router-availability_zone_hints
- availability_zones: router-availability_zones
Response Example
----------------
.. literalinclude:: samples/routers/router-create-response.json
:language: javascript
Show router details
===================
.. rest_method:: GET /v2.0/routers/{router_id}
Shows details for a router.
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, 404
Request
-------
.. rest_parameters:: parameters.yaml
- router_id: router_id
- fields: fields
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router: router
- id: router-id-body
- tenant_id: project_id
- project_id: project_id
- name: name
- description: description
- admin_state_up: admin_state_up
- status: router-status
- external_gateway_info: router-external_gateway_info
- network_id: router-network_id
- enable_snat: router-enable_snat
- external_fixed_ips: router-external_fixed_ips
- routes: router-routes
- destination: router-destination
- nexthop: router-nexthop
- distributed: router-distributed
- ha: router-ha
- availability_zone_hints: router-availability_zone_hints
- availability_zones: router-availability_zones
Response Example
----------------
.. literalinclude:: samples/routers/router-show-response.json
:language: javascript
Update router
=============
.. rest_method:: PUT /v2.0/routers/{router_id}
Updates a logical router.
This operation does not enable the update of router interfaces.
To update a router intreface, use the add router interface and
remove router interface operations.
Normal response codes: 200
Error response codes: 400, 401, 404
Request
-------
.. rest_parameters:: parameters.yaml
- router: router
- external_gateway_info: router-external_gateway_info
- enable_snat: router-enable_snat
- name: name
- admin_state_up: admin_state_up
- external_fixed_ips: router-external_fixed_ips
- router_id: router_id
- description: description-request
Request Example
---------------
.. literalinclude:: samples/routers/router-update-request.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- router: router
- id: router-id-body
- tenant_id: project_id
- project_id: project_id
- name: name
- description: description
- admin_state_up: admin_state_up
- status: router-status
- external_gateway_info: router-external_gateway_info
- network_id: router-network_id
- enable_snat: router-enable_snat
- external_fixed_ips: router-external_fixed_ips
- routes: router-routes
- destination: router-destination
- nexthop: router-nexthop
- distributed: router-distributed
- ha: router-ha
- availability_zone_hints: router-availability_zone_hints
- availability_zones: router-availability_zones
Response Example
----------------
.. literalinclude:: samples/routers/router-update-response.json
:language: javascript
Delete router
=============
.. rest_method:: DELETE /v2.0/routers/{router_id}
Deletes a logical router and, if present, its external gateway interface.
This operation fails if the router has attached interfaces.
Use the remove router interface operation to remove all router
interfaces before you delete the router.
Normal response codes: 204
Error response codes: 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- router_id: router_id
Response
--------
There is no body content for the response of a successful DELETE request.
Add interface to router
=======================
.. rest_method:: PUT /v2.0/routers/{router_id}/add_router_interface
Adds an internal interface to a logical router.
This means a specified subnet is attached to a router
as an internal router interface.
Specify the ID of a subnet or port in the request body:
- Subnet ID. The gateway IP address for the subnet is used as
an IP address of the created router interface.
- Port ID. The IP address associated with the port is used as
an IP address of the created router interface.
When you specify an IPv6 subnet, this operation adds the subnet to
an existing internal port with same network ID, on the router. If
a port with the same network ID does not exist, this operation
creates a port on the router for that subnet.
The limitation of one IPv4 subnet per router port remains, though a
port can contain any number of IPv6 subnets that belong to the same
network ID.
When you use the ``port-create`` command to add a port and then
call ``router-interface-add`` with this port ID, this operation
adds the port to the router if the following conditions are met:
- The port has no more than one IPv4 subnet.
- The IPv6 subnets, if any, on the port do not have same network
ID as the network ID of IPv6 subnets on any other ports.
If you specify both subnet ID and port ID,
this operation returns the ``Bad Request (400)`` response code.
If the port is already in use, this operation returns the
``Conflict (409)`` response code.
This operation returns a port ID that is either:
- The same ID that is passed in the request body
when a port is specified.
- The ID of a port that this operation creates to attach the
subnet to the router.
After you run this operation, the operation sets:
- The ``device_id`` attribute of this port to the router ID
- The ``device_owner`` attribute to ``network:router_interface``
Normal response codes: 200
Error response codes: 400, 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- router_id: router_id
- subnet_id: router-subnet_id-request
- port_id: router-port_id-request
Request Example
---------------
.. literalinclude:: samples/routers/router-add-interface-request.json
:language: javascript
or
.. literalinclude:: samples/routers/router-add-interface-request-with-port.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: router-id-body
- subnet_id: router-subnet_id
- subnet_ids: router-subnet_ids
- tenant_id: router-project_id-interface
- project_id: router-project_id-interface
- port_id: router-port_id
- network_id: router-network_id-interface
Response Example
----------------
.. literalinclude:: samples/routers/router-add-interface-response.json
:language: javascript
Remove interface from router
============================
.. rest_method:: PUT /v2.0/routers/{router_id}/remove_router_interface
Deletes an internal interface from a logical router.
This operation deletes an internal router interface, which detaches
a subnet from the router. If this subnet ID is the last subnet on
the port, this operation deletes the port itself. You must specify
either a subnet ID or port ID in the request body; the
operation uses this value to identify which router interface to
deletes.
You can also specify both a subnet ID and port ID. If you
specify both IDs, the subnet ID must correspond to the subnet
ID of the first IP address on the port. Otherwise, this operation
returns the ``Conflict (409)`` response code with information about
the affected router and interface.
If you try to delete the router interface for subnets that are used
by one or more ``routes``, this operation returns the ``Conflict (409)``
response. In this case, you first need to delete such routes from
the router.
If the router or the subnet and port do not exist or are not
visible to you, this operation returns the ``Not Found (404)``
response code. As a consequence of this operation, the operation
removes the port connecting the router with the subnet from the
subnet for the network.
Normal response codes: 200
Error response codes: 400, 401, 404, 409
Request
-------
.. rest_parameters:: parameters.yaml
- router_id: router_id
- subnet_id: router-subnet_id-request
- port_id: router-port_id-request
Request Example
---------------
.. literalinclude:: samples/routers/router-remove-interface-request.json
:language: javascript
or
.. literalinclude:: samples/routers/router-remove-interface-request-with-port.json
:language: javascript
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- id: router-id-body
- subnet_id: router-subnet_id
- subnet_ids: router-subnet_ids
- tenant_id: router-project_id-interface
- project_id: router-project_id-interface
- port_id: router-port_id
- network_id: router-network_id-interface
Response Example
----------------
.. literalinclude:: samples/routers/router-remove-interface-response.json
:language: javascript

View File

@@ -1,10 +0,0 @@
{
"bgpvpn": {
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"route_targets": "64512:1444",
"import_targets": "64512:1555",
"export_targets": "64512:1666",
"route_distinguishers": ["64512:1777", "64512:1888", "64512:1999"],
"type": "l3"
}
}

View File

@@ -1,25 +0,0 @@
{
"bgpvpn": {
"export_targets": [
"64512:1666"
],
"name": "",
"routers": [],
"route_distinguishers": [
"64512:1777",
"64512:1888",
"64512:1999"
],
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"project_id": "b7549121395844bea941bb92feb3fad9",
"import_targets": [
"64512:1555"
],
"route_targets": [
"64512:1444"
],
"type": "l3",
"id": "0f9d472a-908f-40f5-8574-b4e8a63ccbf0",
"networks": []
}
}

View File

@@ -1,17 +0,0 @@
{
"bgpvpn": {
"id": "460ac411-3dfb-45bb-8116-ed1a7233d143",
"name": "foo",
"route_targets": ["64512:1444"],
"export_targets": [],
"import_targets": [],
"type": "l3",
"tenant_id": "f94ea398564d49dfb0d542f086c68ce7",
"project_id": "f94ea398564d49dfb0d542f086c68ce7",
"routers": [],
"route_distinguishers": [],
"networks": [
"a4f2b8df-cb42-4893-a333-d0b5c36ade17"
]
}
}

View File

@@ -1,8 +0,0 @@
{
"bgpvpn": {
"name": "foo",
"route_targets": ["64512:1444"],
"export_targets": [],
"import_targets": []
}
}

View File

@@ -1,16 +0,0 @@
{
"bgpvpn": {
"export_targets": [],
"name": "",
"routers": [],
"route_distinguishers": [
"12345:1234"
],
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"import_targets": [],
"route_targets": ["64512:1444"],
"type": "l3",
"id": "4d627abf-06dd-45ab-920b-8e61422bb984",
"networks": []
}
}

View File

@@ -1,27 +0,0 @@
{
"bgpvpns": [
{
"export_targets": [
"64512:1666"
],
"name": "",
"routers": [],
"route_distinguishers": [
"64512:1777",
"64512:1888",
"64512:1999"
],
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"project_id": "b7549121395844bea941bb92feb3fad9",
"import_targets": [
"64512:1555"
],
"route_targets": [
"64512:1444"
],
"type": "l3",
"id": "0f9d472a-908f-40f5-8574-b4e8a63ccbf0",
"networks": []
}
]
}

View File

@@ -1,5 +0,0 @@
{
"network_association": {
"network_id": "8c5d88dc-60ac-4b02-a65a-36b65888ddcd"
}
}

View File

@@ -1,8 +0,0 @@
{
"network_association": {
"network_id": "8c5d88dc-60ac-4b02-a65a-36b65888ddcd",
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"project_id": "b7549121395844bea941bb92feb3fad9",
"id": "73238ca1-e05d-4c7a-b4d4-70407b4b8730"
}
}

View File

@@ -1,16 +0,0 @@
{
"network_associations": [
{
"network_id": "8c5d88dc-60ac-4b02-a65a-36b65888ddcd",
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"project_id": "b7549121395844bea941bb92feb3fad9",
"id": "96227c78-6a0c-4d9d-b441-c4b8f6fb6c4a"
},
{
"network_id": "a4f2b8df-cb42-4893-a333-d0b5c36ade17",
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"project_id": "b7549121395844bea941bb92feb3fad9",
"id": "1b09fd12-c769-4be7-9c26-dececa474acf"
}
]
}

View File

@@ -1,9 +0,0 @@
{
"network_association":
{
"id": "1b09fd12-c769-4be7-9c26-dececa474acf",
"network_id": "a4f2b8df-cb42-4893-a333-d0b5c36ade17",
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"project_id": "b7549121395844bea941bb92feb3fad9"
}
}

View File

@@ -1,5 +0,0 @@
{
"router_association": {
"router_id": "b58a6241-6e49-4b11-87c6-8e0606dde796"
}
}

View File

@@ -1,8 +0,0 @@
{
"router_association": {
"router_id": "46a1a80b-7c42-4c45-88fd-b531e636969f",
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"project_id": "b7549121395844bea941bb92feb3fad9",
"id": "c63149a0-a0b3-4ca7-aba4-9aaa1b39d7f3"
}
}

View File

@@ -1,10 +0,0 @@
{
"router_associations": [
{
"router_id": "61222227-49eb-4dcc-b2d6-66bbfb2fdd7a",
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"project_id": "b7549121395844bea941bb92feb3fad9",
"id": "95277be7-a231-4e96-9625-8f9fe41de9d6"
}
]
}

View File

@@ -1,8 +0,0 @@
{
"router_association": {
"id": "c63149a0-a0b3-4ca7-aba4-9aaa1b39d7f3",
"router_id": "46a1a80b-7c42-4c45-88fd-b531e636969f",
"tenant_id": "b7549121395844bea941bb92feb3fad9",
"project_id": "b7549121395844bea941bb92feb3fad9"
}
}

View File

@@ -1,9 +0,0 @@
{
"extension": {
"updated": "2013-02-03T10:00:00-00:00",
"name": "agent",
"links": [],
"alias": "agent",
"description": "The agent management extension."
}
}

View File

@@ -1,130 +0,0 @@
{
"extensions": [
{
"updated": "2013-01-20T00:00:00-00:00",
"name": "Neutron Service Type Management",
"links": [],
"alias": "service-type",
"description": "API for retrieving service providers for Neutron advanced services"
},
{
"updated": "2012-10-05T10:00:00-00:00",
"name": "security-group",
"links": [],
"alias": "security-group",
"description": "The security groups extension."
},
{
"updated": "2013-02-07T10:00:00-00:00",
"name": "L3 Agent Scheduler",
"links": [],
"alias": "l3_agent_scheduler",
"description": "Schedule routers among l3 agents"
},
{
"updated": "2013-02-07T10:00:00-00:00",
"name": "Loadbalancer Agent Scheduler",
"links": [],
"alias": "lbaas_agent_scheduler",
"description": "Schedule pools among lbaas agents"
},
{
"updated": "2013-03-28T10:00:00-00:00",
"name": "Neutron L3 Configurable external gateway mode",
"links": [],
"alias": "ext-gw-mode",
"description": "Extension of the router abstraction for specifying whether SNAT should occur on the external gateway"
},
{
"updated": "2014-02-03T10:00:00-00:00",
"name": "Port Binding",
"links": [],
"alias": "binding",
"description": "Expose port bindings of a virtual port to external application"
},
{
"updated": "2012-09-07T10:00:00-00:00",
"name": "Provider Network",
"links": [],
"alias": "provider",
"description": "Expose mapping of virtual networks to physical networks"
},
{
"updated": "2013-02-03T10:00:00-00:00",
"name": "agent",
"links": [],
"alias": "agent",
"description": "The agent management extension."
},
{
"updated": "2012-07-29T10:00:00-00:00",
"name": "Quota management support",
"links": [],
"alias": "quotas",
"description": "Expose functions for quotas management per tenant"
},
{
"updated": "2013-02-07T10:00:00-00:00",
"name": "DHCP Agent Scheduler",
"links": [],
"alias": "dhcp_agent_scheduler",
"description": "Schedule networks among dhcp agents"
},
{
"updated": "2013-06-27T10:00:00-00:00",
"name": "Multi Provider Network",
"links": [],
"alias": "multi-provider",
"description": "Expose mapping of virtual networks to multiple physical networks"
},
{
"updated": "2013-01-14T10:00:00-00:00",
"name": "Neutron external network",
"links": [],
"alias": "external-net",
"description": "Adds external network attribute to network resource."
},
{
"updated": "2012-07-20T10:00:00-00:00",
"name": "Neutron L3 Router",
"links": [],
"alias": "router",
"description": "Router abstraction for basic L3 forwarding between L2 Neutron networks and access to external networks via a NAT gateway."
},
{
"updated": "2013-07-23T10:00:00-00:00",
"name": "Allowed Address Pairs",
"links": [],
"alias": "allowed-address-pairs",
"description": "Provides allowed address pairs"
},
{
"updated": "2013-03-17T12:00:00-00:00",
"name": "Neutron Extra DHCP opts",
"links": [],
"alias": "extra_dhcp_opt",
"description": "Extra options configuration for DHCP. For example PXE boot options to DHCP clients can be specified (e.g. tftp-server, server-ip-address, bootfile-name)"
},
{
"updated": "2012-10-07T10:00:00-00:00",
"name": "LoadBalancing service",
"links": [],
"alias": "lbaas",
"description": "Extension for LoadBalancing service"
},
{
"updated": "2013-02-01T10:00:00-00:00",
"name": "Neutron Extra Route",
"links": [],
"alias": "extraroute",
"description": "Extra routes configuration for L3 router"
},
{
"updated": "2016-01-24T10:00:00-00:00",
"name": "Neutron Port Data Plane Status",
"links": [],
"alias": "data-plane-status",
"description": "Status of the underlying data plane."
}
]
}

View File

@@ -1,7 +0,0 @@
{
"firewall_group": {
"admin_state_up": false,
"egress_firewall_policy_id": "14c9d3c1-b472-44f9-8226-30dc4ffd454c",
"ingress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c"
}
}

View File

@@ -1,17 +0,0 @@
{
"firewall_group": {
"admin_state_up": true,
"description": "",
"egress_firewall_policy_id": "1244ed87-b472-44f9-8226-30dc4ffd454c",
"ingress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"id": "3b0ef8f4-82c7-44d4-a4fb-6177f9a21977",
"name": "",
"ports": [
"650bfd2f-7766-4a0d-839f-218f33e16998"
],
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"shared": true,
"status": "PENDING_CREATE",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,14 +0,0 @@
{
"firewall_group": {
"admin_state_up": true,
"description": "",
"egress_firewall_policy_id": null,
"id": "07411bda-0147-418b-af05-c8665630d937",
"ingress_firewall_policy_id": null,
"name": "",
"project_id": "96108b04417b416e9b9bc788c11c42c9",
"shared": false,
"status": "INACTIVE",
"tenant_id": "96108b04417b416e9b9bc788c11c42c9"
}
}

View File

@@ -1,5 +0,0 @@
{
"firewall_group": {
"admin_state_up": "false"
}
}

View File

@@ -1,17 +0,0 @@
{
"firewall_group": {
"admin_state_up": false,
"description": "",
"egress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"ingress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"id": "3b0ef8f4-82c7-44d4-a4fb-6177f9a21977",
"name": "",
"ports": [
"650bfd2f-7766-4a0d-839f-218f33e16998"
],
"shared": true,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"status": "PENDING_UPDATE",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,19 +0,0 @@
{
"firewall_groups": [
{
"admin_state_up": true,
"description": "",
"egress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"id": "3b0ef8f4-82c7-44d4-a4fb-6177f9a21977",
"ingress_firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "",
"ports": [
"650bfd2f-7766-4a0d-839f-218f33e16998"
],
"shared": true,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"status": "ACTIVE",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
]
}

View File

@@ -1,16 +0,0 @@
{
"firewall_policies": [
{
"audited": false,
"description": "",
"firewall_rules": [
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"shared": false,
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
]
}

View File

@@ -1,8 +0,0 @@
{
"firewall_policy": {
"name": "test-policy",
"firewall_rules": [
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
]
}
}

View File

@@ -1,14 +0,0 @@
{
"firewall_policy": {
"audited": false,
"description": "",
"firewall_rules": [
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"shared": false,
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,5 +0,0 @@
{
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692",
"insert_after": "a08ef905-0ff6-4784-8374-175fffe7dade",
"insert_before": ""
}

View File

@@ -1,12 +0,0 @@
{
"audited": false,
"description": "",
"firewall_rules": [
"acbdfead-eca2-4456-838c-8b531e47b9c7"
],
"id": "c9e15d6e-b6ba-4ef4-8715-985d1f100467",
"name": "policy2",
"shared": false,
"project_id": "95573613ec554b4b8df9f2679c64557b",
"tenant_id": "95573613ec554b4b8df9f2679c64557b"
}

View File

@@ -1,3 +0,0 @@
{
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692"
}

View File

@@ -1,10 +0,0 @@
{
"audited": false,
"description": "",
"firewall_rules": [],
"id": "c9e15d6e-b6ba-4ef4-8715-985d1f100467",
"name": "policy2",
"project_id": "95573613ec554b4b8df9f2679c64557b",
"shared": false,
"tenant_id": "95573613ec554b4b8df9f2679c64557b"
}

View File

@@ -1,14 +0,0 @@
{
"firewall_policy": {
"audited": false,
"description": "",
"firewall_rules": [
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"shared": false,
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,8 +0,0 @@
{
"firewall_policy": {
"firewall_rules": [
"a08ef905-0ff6-4784-8374-175fffe7dade",
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
]
}
}

View File

@@ -1,15 +0,0 @@
{
"firewall_policy": {
"audited": false,
"description": "",
"firewall_rules": [
"a08ef905-0ff6-4784-8374-175fffe7dade",
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"shared": false,
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,9 +0,0 @@
{
"firewall_rule": {
"action": "allow",
"destination_port": "80",
"enabled": true,
"name": "ALLOW_HTTP",
"protocol": "tcp"
}
}

View File

@@ -1,18 +0,0 @@
{
"firewall_rule": {
"action": "deny",
"description": "",
"destination_ip_address": null,
"destination_port": null,
"enabled": true,
"id": "1fd59b2f-cc87-435f-a244-1df2c0cc3f70",
"ip_version": 4,
"name": "rule3",
"project_id": "95573613ec554b4b8df9f2679c64557b",
"protocol": null,
"shared": false,
"source_ip_address": null,
"source_port": null,
"tenant_id": "95573613ec554b4b8df9f2679c64557b"
}
}

View File

@@ -1,20 +0,0 @@
{
"firewall_rule": {
"action": "allow",
"description": "",
"destination_ip_address": null,
"destination_port": "80",
"enabled": true,
"firewall_policy_id": null,
"id": "8722e0e0-9cc9-4490-9660-8c9a5732fbb0",
"ip_version": 4,
"name": "ALLOW_HTTP",
"position": null,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"protocol": "tcp",
"shared": false,
"source_ip_address": null,
"source_port": null,
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,5 +0,0 @@
{
"firewall_rule": {
"shared": true
}
}

View File

@@ -1,20 +0,0 @@
{
"firewall_rule": {
"action": "allow",
"description": "",
"destination_ip_address": null,
"destination_port": "80",
"enabled": true,
"firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"id": "8722e0e0-9cc9-4490-9660-8c9a5732fbb0",
"ip_version": 4,
"name": "ALLOW_HTTP",
"position": 1,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"protocol": "tcp",
"shared": true,
"source_ip_address": null,
"source_port": null,
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,22 +0,0 @@
{
"firewall_rules": [
{
"action": "allow",
"description": "",
"destination_ip_address": null,
"destination_port": "80",
"enabled": true,
"firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"id": "8722e0e0-9cc9-4490-9660-8c9a5732fbb0",
"ip_version": 4,
"name": "ALLOW_HTTP",
"position": 1,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"protocol": "tcp",
"shared": false,
"source_ip_address": null,
"source_port": null,
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
]
}

View File

@@ -1,7 +0,0 @@
{
"firewall_log": {
"description": "my firewall log",
"firewall_id": "a6564146-f8b3-49c3-add1-fb213455d5a8",
"fw_event": "DROP"
}
}

View File

@@ -1,11 +0,0 @@
{
"firewall_log": {
"description": "my firewall log",
"firewall_id": "a6564146-f8b3-49c3-add1-fb213455d5a8",
"fw_event": "DROP",
"id": "deb19331-e5d5-4a80-a37f-5e5ad407b353",
"logging_resource_id": "13b64f3c-20af-4741-b230-658ab7d5b257",
"project_id": "8d018258316e4f22890561e8780c85bb",
"tenant_id": "8d018258316e4f22890561e8780c85bb"
}
}

View File

@@ -1,11 +0,0 @@
{
"firewall_log": {
"description": "my firewall log 3",
"firewall_id": "a6564146-f8b3-49c3-add1-fb213455d5a8",
"fw_event": "ALL",
"id": "3969b708-d600-4343-93b9-01645f8e9a8a",
"logging_resource_id": "13b64f3c-20af-4741-b230-658ab7d5b257",
"project_id": "8d018258316e4f22890561e8780c85bb",
"tenant_id": "8d018258316e4f22890561e8780c85bb"
}
}

View File

@@ -1,6 +0,0 @@
{
"firewall_log": {
"description": "my firewall log 3",
"fw_event": "ALL"
}
}

View File

@@ -1,11 +0,0 @@
{
"firewall_log": {
"description": "my firewall log 3",
"firewall_id": "a6564146-f8b3-49c3-add1-fb213455d5a8",
"fw_event": "ALL",
"id": "3969b708-d600-4343-93b9-01645f8e9a8a",
"logging_resource_id": "13b64f3c-20af-4741-b230-658ab7d5b257",
"project_id": "8d018258316e4f22890561e8780c85bb",
"tenant_id": "8d018258316e4f22890561e8780c85bb"
}
}

View File

@@ -1,22 +0,0 @@
{
"firewall_logs": [
{
"description": "my firewall log 2",
"firewall_id": "a6564146-f8b3-49c3-add1-fb213455d5a8",
"fw_event": "ACCEPT",
"id": "3969b708-d600-4343-93b9-01645f8e9a8a",
"logging_resource_id": "13b64f3c-20af-4741-b230-658ab7d5b257",
"project_id": "8d018258316e4f22890561e8780c85bb",
"tenant_id": "8d018258316e4f22890561e8780c85bb"
},
{
"description": "my firewall log",
"firewall_id": "a6564146-f8b3-49c3-add1-fb213455d5a8",
"fw_event": "DROP",
"id": "deb19331-e5d5-4a80-a37f-5e5ad407b353",
"logging_resource_id": "13b64f3c-20af-4741-b230-658ab7d5b257",
"project_id": "8d018258316e4f22890561e8780c85bb",
"tenant_id": "8d018258316e4f22890561e8780c85bb"
}
]
}

View File

@@ -1,6 +0,0 @@
{
"firewall": {
"admin_state_up": true,
"firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c"
}
}

View File

@@ -1,15 +0,0 @@
{
"firewall": {
"admin_state_up": true,
"description": "",
"firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"id": "3b0ef8f4-82c7-44d4-a4fb-6177f9a21977",
"name": "",
"status": "PENDING_CREATE",
"router_ids": [
"650bfd2f-7766-4a0d-839f-218f33e16998"
],
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,16 +0,0 @@
{
"firewall_policies": [
{
"audited": false,
"description": "",
"firewall_rules": [
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"shared": false,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
]
}

View File

@@ -1,8 +0,0 @@
{
"firewall_policy": {
"firewall_rules": [
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"name": "test-policy"
}
}

View File

@@ -1,14 +0,0 @@
{
"firewall_policy": {
"audited": false,
"description": "",
"firewall_rules": [
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"shared": false,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,5 +0,0 @@
{
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692",
"insert_after": "a08ef905-0ff6-4784-8374-175fffe7dade",
"insert_before": ""
}

View File

@@ -1,15 +0,0 @@
{
"audited": false,
"description": "",
"firewall_list": [],
"firewall_rules": [
"a08ef905-0ff6-4784-8374-175fffe7dade",
"7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692",
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"shared": false,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}

View File

@@ -1,3 +0,0 @@
{
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692"
}

View File

@@ -1,14 +0,0 @@
{
"audited": false,
"description": "",
"firewall_list": [],
"firewall_rules": [
"a08ef905-0ff6-4784-8374-175fffe7dade",
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"shared": false,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}

View File

@@ -1,14 +0,0 @@
{
"firewall_policy": {
"audited": false,
"description": "",
"firewall_rules": [
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"shared": false,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,8 +0,0 @@
{
"firewall_policy": {
"firewall_rules": [
"a08ef905-0ff6-4784-8374-175fffe7dade",
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
]
}
}

View File

@@ -1,15 +0,0 @@
{
"firewall_policy": {
"audited": false,
"description": "",
"firewall_rules": [
"a08ef905-0ff6-4784-8374-175fffe7dade",
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
],
"id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"name": "test-policy",
"shared": false,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,9 +0,0 @@
{
"firewall_rule": {
"action": "allow",
"destination_port": "80",
"enabled": true,
"name": "ALLOW_HTTP",
"protocol": "tcp"
}
}

View File

@@ -1,20 +0,0 @@
{
"firewall_rule": {
"action": "allow",
"description": "",
"destination_ip_address": null,
"destination_port": "80",
"enabled": true,
"firewall_policy_id": null,
"id": "8722e0e0-9cc9-4490-9660-8c9a5732fbb0",
"ip_version": 4,
"name": "ALLOW_HTTP",
"position": null,
"protocol": "tcp",
"shared": false,
"source_ip_address": null,
"source_port": null,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,20 +0,0 @@
{
"firewall_rule": {
"action": "allow",
"description": "",
"destination_ip_address": null,
"destination_port": "80",
"enabled": true,
"firewall_policy_id": null,
"id": "8722e0e0-9cc9-4490-9660-8c9a5732fbb0",
"ip_version": 4,
"name": "ALLOW_HTTP",
"position": null,
"protocol": "tcp",
"shared": false,
"source_ip_address": null,
"source_port": null,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

View File

@@ -1,5 +0,0 @@
{
"firewall_rule": {
"shared": "true"
}
}

View File

@@ -1,20 +0,0 @@
{
"firewall_rule": {
"action": "allow",
"description": "",
"destination_ip_address": null,
"destination_port": "80",
"enabled": true,
"firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c",
"id": "8722e0e0-9cc9-4490-9660-8c9a5732fbb0",
"ip_version": 4,
"name": "ALLOW_HTTP",
"position": 1,
"protocol": "tcp",
"shared": true,
"source_ip_address": null,
"source_port": null,
"project_id": "45977fa2dbd7482098dd68d0d8970117",
"tenant_id": "45977fa2dbd7482098dd68d0d8970117"
}
}

Some files were not shown because too many files have changed in this diff Show More