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:
@@ -1,7 +0,0 @@
|
||||
[run]
|
||||
branch = True
|
||||
source = neutron_lib
|
||||
omit = neutron_lib/tests/*
|
||||
|
||||
[report]
|
||||
ignore_errors = True
|
32
.gitignore
vendored
32
.gitignore
vendored
@@ -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
|
@@ -1,4 +0,0 @@
|
||||
[gerrit]
|
||||
host=review.openstack.org
|
||||
port=29418
|
||||
project=openstack/neutron-lib.git
|
3
.mailmap
3
.mailmap
@@ -1,3 +0,0 @@
|
||||
# Format is:
|
||||
# <preferred e-mail> <other e-mail 1>
|
||||
# <preferred e-mail> <other e-mail 2>
|
@@ -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
|
@@ -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
|
22
HACKING.rst
22
HACKING.rst
@@ -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
176
LICENSE
@@ -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
14
README
Normal 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.
|
24
README.rst
24
README.rst
@@ -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
|
@@ -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
|
@@ -1,8 +0,0 @@
|
||||
=======================
|
||||
Networking Service APIs
|
||||
=======================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
v2/index
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
||||
|
@@ -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.
|
@@ -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
|
||||
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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
|
||||
|
@@ -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.
|
@@ -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
|
@@ -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
@@ -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
|
@@ -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.
|
@@ -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.
|
@@ -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
|
||||
|
@@ -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
@@ -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
|
@@ -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.
|
||||
|
@@ -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
|
@@ -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
|
@@ -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.
|
@@ -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
|
||||
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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": []
|
||||
}
|
||||
}
|
@@ -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"
|
||||
]
|
||||
}
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bgpvpn": {
|
||||
"name": "foo",
|
||||
"route_targets": ["64512:1444"],
|
||||
"export_targets": [],
|
||||
"import_targets": []
|
||||
}
|
||||
}
|
@@ -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": []
|
||||
}
|
||||
}
|
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"network_association": {
|
||||
"network_id": "8c5d88dc-60ac-4b02-a65a-36b65888ddcd"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"router_association": {
|
||||
"router_id": "b58a6241-6e49-4b11-87c6-8e0606dde796"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"extension": {
|
||||
"updated": "2013-02-03T10:00:00-00:00",
|
||||
"name": "agent",
|
||||
"links": [],
|
||||
"alias": "agent",
|
||||
"description": "The agent management extension."
|
||||
}
|
||||
}
|
@@ -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."
|
||||
}
|
||||
]
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"firewall_group": {
|
||||
"admin_state_up": "false"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"firewall_policy": {
|
||||
"name": "test-policy",
|
||||
"firewall_rules": [
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
]
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692",
|
||||
"insert_after": "a08ef905-0ff6-4784-8374-175fffe7dade",
|
||||
"insert_before": ""
|
||||
}
|
@@ -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"
|
||||
}
|
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692"
|
||||
}
|
@@ -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"
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"firewall_policy": {
|
||||
"firewall_rules": [
|
||||
"a08ef905-0ff6-4784-8374-175fffe7dade",
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
]
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"firewall_rule": {
|
||||
"action": "allow",
|
||||
"destination_port": "80",
|
||||
"enabled": true,
|
||||
"name": "ALLOW_HTTP",
|
||||
"protocol": "tcp"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"firewall_rule": {
|
||||
"shared": true
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"firewall_log": {
|
||||
"description": "my firewall log",
|
||||
"firewall_id": "a6564146-f8b3-49c3-add1-fb213455d5a8",
|
||||
"fw_event": "DROP"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"firewall_log": {
|
||||
"description": "my firewall log 3",
|
||||
"fw_event": "ALL"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"firewall": {
|
||||
"admin_state_up": true,
|
||||
"firewall_policy_id": "c69933c1-b472-44f9-8226-30dc4ffd454c"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"firewall_policy": {
|
||||
"firewall_rules": [
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
],
|
||||
"name": "test-policy"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692",
|
||||
"insert_after": "a08ef905-0ff6-4784-8374-175fffe7dade",
|
||||
"insert_before": ""
|
||||
}
|
@@ -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"
|
||||
}
|
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"firewall_rule_id": "7bc34b8c-8d3b-4ada-a9c8-1f4c11c65692"
|
||||
}
|
@@ -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"
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"firewall_policy": {
|
||||
"firewall_rules": [
|
||||
"a08ef905-0ff6-4784-8374-175fffe7dade",
|
||||
"8722e0e0-9cc9-4490-9660-8c9a5732fbb0"
|
||||
]
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"firewall_rule": {
|
||||
"action": "allow",
|
||||
"destination_port": "80",
|
||||
"enabled": true,
|
||||
"name": "ALLOW_HTTP",
|
||||
"protocol": "tcp"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -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"
|
||||
}
|
||||
}
|
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"firewall_rule": {
|
||||
"shared": "true"
|
||||
}
|
||||
}
|
@@ -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
Reference in New Issue
Block a user